CN111475394B - 一种应用测试方法及装置 - Google Patents
一种应用测试方法及装置 Download PDFInfo
- Publication number
- CN111475394B CN111475394B CN201910067278.3A CN201910067278A CN111475394B CN 111475394 B CN111475394 B CN 111475394B CN 201910067278 A CN201910067278 A CN 201910067278A CN 111475394 B CN111475394 B CN 111475394B
- Authority
- CN
- China
- Prior art keywords
- application
- testing
- test
- tested
- tested application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种应用测试方法及装置,涉及应用自动化测试技术领域,主要目的在于针对WebView控件展示页面内容的应用同时进行自动化地性能测试和功能测试。本发明主要的技术方案为:通过注入被测应用的测试工具获取被测应用的页面元素,所述页面元素包括所述被测应用中由网页视图控件展示的页面内容;解析所述页面元素,得到元素属性信息;根据所述元素属性信息测试所述被测应用的功能;利用预置指令分别获取所述被测应用的整体性能以及所述测试工具的执行性能;确定所述整体性能与所述执行性能的差值为所述被测应用的实际性能。本发明用于自动化应用测试。
Description
技术领域
本发明涉及应用自动化测试技术领域,尤其涉及一种应用测试方法及装置。
背景技术
随着Android移动端应用的发展,越来越多的APP选择使用WebView(网页视图控件)作为内容展示与交互的承载控件,而在对APP进行自动化测试时,对WebView选择一款高效可用的自动化执行策略也因此变得越来越重要。
目前,使用较多的能够获取WebView内容的自动化测试框架(如Robotium),在进行测试时需要将其注入被测应用,以获取WebView中的具体内容,然而Robotium只适用于对应用的WebView内容的功能性测试,即应用页面中各个工件所实现的功能是否完整,但是对于应用的性能测试(如CPU占用率、内存消耗等),由于Robotium注入被测应用,使得被测应用的性能结果中含有Robotium执行所产生的性能开销,从而无法准确测试出被测应用自身的性能开销。而能够对被测应用的性能进行较好测试的自动化测试框架(如UIAutomator),其能够区分测试框架的性能开销与被测应用的性能开销,并且能够仿真用户在应用页面中的点击、滑动、输入文本等操作,可以大幅提高对反复进行的操作测试的效率,然而,在UIAutomator中,并不能对WebView中的控件元素进行识别,使得其无法针对被测应用中WebView的具体内容进行有效的功能性测试。可见,目前还没有一款同时可以对被测应用的WebView内容的功能以及应用性能进行自动化测试的解决方案。
发明内容
鉴于上述问题,本发明提出了一种应用测试方法及装置,主要目的在于针对WebView控件展示页面内容的应用同时进行自动化地性能测试和功能测试。
为达到上述目的,本发明主要提供如下技术方案:
一方面,本发明提供一种应用测试方法,具体包括:
通过注入被测应用的测试工具获取被测应用的页面元素,所述页面元素包括所述被测应用中由网页视图控件展示的页面内容;
解析所述页面元素,得到元素属性信息;
根据所述元素属性信息测试所述被测应用的功能;
利用预置指令分别获取所述被测应用的整体性能以及所述测试工具的执行性能;
确定所述整体性能与所述执行性能的差值为所述被测应用的实际性能。
另一方面,本发明提供一种应用测试装置,具体包括:
元素获取单元,用于通过注入被测应用的测试工具获取被测应用的页面元素,所述页面元素包括所述被测应用中由网页视图控件展示的页面内容;
解析单元,用于解析所述元素获取单元得到的页面元素,得到元素属性信息;
功能测试单元,用于根据所述解析单元得到的元素属性信息测试所述被测应用的功能;
性能监控单元,利用预置指令分别获取所述被测应用的整体性能以及所述测试工具的执行性能;
性能计算单元,用于确定所述性能监控单元得到的整体性能与执行性能的差值为所述被测应用的实际性能。
另一方面,本发明提供一种存储介质,所述存储介质用于存储的计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行上述的应用测试方法。
另一方面,本发明提供一种处理器,所述处理器用于运行计算机程序,其中,所述计算机程序运行时执行上述的应用测试方法。
借由上述技术方案,本发明提供的一种应用测试方法及装置,是针对使用WebView控件的应用进行自动化测试,该测试通过在被测应用中注入可提取WebView中的页面元素的测试工具,以获取被测应用中的页面元素,进而根据页面元素中的属性信息进行功能测试,同时,利用注入的测试工具获取在被测应用运行过程中该测试工具所占用的性能,再将测试该被测应用的整体性能除去测试工具所占用的性能,从而得到被测应用自身运行实际所占用的性能。相对现有的应用测试需要将功能测试与性能测试分别使用独立的测试框架进行测试,本发明所采用的测试方法则可以同时对被测应用的功能与性能进行测试,并得到准确的测试结果。可见,本发明在对应用进行测试时简化了测试的流程,提高了应用的测试效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提出的一种应用测试方法的流程图;
图2示出了本发明实施例提出的另一种应用测试方法的流程图;
图3示出了本发明实施例提出的一种应用测试装置的组成框图;
图4示出了本发明实施例提出的另一种应用测试装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种应用测试方法,用于测试使用WebView控件的应用,提升应用的测试效率。具体步骤如图1所示,该方法包括:
步骤101、通过注入被测应用的测试工具获取被测应用的页面元素。
其中,该页面元素是指被测应用中通过WebView控件展示的页面内容。
具体的,被测应用由于被注入了测试工具,在该被测应用启动后,测试工具将自动提取通过WebView控件所展示的页面内容,并且将该页面内容处理后,以页面元素的形式发出。而本发明就是采集由被测应用中的测试工具所发出的页面元素,其中,该页面元素中所包含的页面内容是根据所进行的功能测试而确定的元素属性信息,其至少包括有元素所在页面的坐标位置,元素的功能(如点击、文本输入、链接等)等。
步骤102、解析该页面元素,得到元素属性信息。
根据功能测试的具体内容,将接收到的页面元素按照预定的数据结构解析出对应该页面元素的元素属性信息,以供后续功能测试时调用。
步骤103、根据元素属性信息测试被测应用的功能。
具体的功能测试方式与现有自动化测试框架基于元素属性信息的测试方式相同,比如UIAutomator测试框架,也能够对应用页面中的页面元素进行功能测试,但本发明与UIAutomator测试框架的区别在于,UIAutomator对于页面中的页面元素不做区分而进行预置逻辑的功能测试,而本发明实施例中,则是预先获取到页面元素的相关信息,再进行有针对性的功能测试。可见,本发明中在对页面元素进行功能测试时更具有针对性,从而提高功能测试的测试效率。
步骤104、利用预置指令分别获取被测应用的整体性能以及测试工具的执行性能。
本步骤是对被测应用在运行过程中所消耗的处理资源进行的监控测试,并通过预置指令获取相应的性能测试结果。常规的性能测试如CPU占用、内存占用等。
一般地,被测应用在运行时,会在运行终端的CPU中创建一个进程,通过对该进程的性能测试获取被测应用的具体性能参数。而在本发明中,由于在被测应用中注入了测试工具,在被测应用运行过程中,测试工具也在同时执行相关测试,导致该被测应用对应性能中有一部分为测试工具所消耗的性能,而通过监测被测应用对应进程所得到的性能结果也是被测应用与测试工具共同运行所得到的。为此,本发明实施例,是采用预置指令分别获取被测应用的整体性能,即被测应用与测试工具共同运行所消耗的性能,以及获取测试工具自身运行所消耗的执行性能。
需要说明的是,为了获取测试工具自身运行所消耗的执行性能,本发明中注入被测应用的测试工具能够以独立的线程执行,即在被测应用运行创建的进程下,创建独立的线程运行测试工具。以此,实现对测试工具运行性能的独立监测。
步骤105、确定整体性能与执行性能的差值为被测应用的实际性能。
需要说明的是,所获取的整体性能与执行性能是针对同一性能参数监控得到。两者的差值即为被测应用自身在运行过程中实际消耗的性能。
此外,需要强调的是,上述步骤104与步骤105在执行过程中,与步骤101至步骤103的执行过程不存在逻辑上的顺序关系,这个两部分分别是对被测应用进行的性能测试与功能测试。
通过上述实施例中的具体实现方式可以看出,本发明提出的应用测试方法,属于一种非注入式的自动化测试框架,通过在被测应用中注入测试工具而获取被测应用中通过WebView控件展示的页面元素,进行被测应用的功能测试,同时,利用测试工具能够在被测应用中实现以独立线程运行的特点,通过预置指令获取被测应用的整体性能与测试工具的执行性能,通过差值计算,确定被测应用在运行过程中所实际消耗的性能。由此可见,本发明提出的自动化测试框架在针对使用WebView控件的应用进行测试时,实现功能测试与性能测试的同步实现,无需再采用不同的测试框架进行分别测试,大大减少了应用测试步骤,从而提升应用测试的测试效率。
为了进一步详细的阐明应用测试方法,特别是要说明注入到被测应用中的测试工具如何实现在被测应用的进程中创建独立线程并运行,以及将提取并发送出被测应用中的页面元素。通过下面实施例,并结合实际应用中的自动化测试框架加以说明,具体的,本发明中的应用测试方法,是以UIAutomator2.0测试框架为基础改进得到的,其中的测试工具以Robotium测试框架为例说明,在实际使用中,也可以使用Expresso测试框架代替Robotium测试框架注入被测应用中。具体步骤如图2所示,包括:
步骤201、在被测应用中注入测试工具。
本发明实施例中所使用的测试工具为Robotium测试框架,要将Robotium注入被测应用,需要获取被测应用的APK(AndroidPackage,Android安装包),以及APK签名,或重签名,或者是获取应用的工程源码,其注入的具体方式与现有使用Robotium测试框架对应用测试的方式相同,其相关的测试文件需要根据实际需求进行配置,此处不做详细说明。
将Robotium注入被测应用,使其可以在被测应用运行时获取被测应用中的页面元素,并且通过广播的方式向外发送所提取到的页面元素。
步骤202、在测试工具注入成功后,在被测应用中加载单元测试框架。
其中,本发明实施例中的单元测试框架为一段基于AndroidJUnit4框架的自动化用例代码,该段代码可以调用Robotium所提供的各种功能,而AndroidJUnit4框架则默认在被测应用的进程下的单独线程中执行。也就是说,通过在被测应用中加载单元测试框架,并通过该单元测试框架来调用测试工具的相关测试功能来实现获取被测应用中的页面元素,而该单元测试框架又默认在被测应用执行的进程中创建独立测试线程来执行所调用的测试工具的测试功能。
需要说明的是,AndroidJUnit4框架在被测应用的进程下创建单独线程时,为了实现后续对该单独线程的性能监控,就需要对该线程标注标识,以便后续识别监控。具体的,该标识可以是通过预置标识的方式标注,即预先约定好线程标识,或者是由AndroidJUnit4框架自定义一个线程标识,在标注完成后,将该线程标识随测试工具提取的页面元素一同广播出去。
一般地,通过Robotium框架中的“solo.getCurrentWebElements()”可获取被测应用的WebView中元素的全部信息,并且通过“am broadcast”***指令广播所获取的页面元素的信息。
步骤203、根据测试工具的标识信息过滤出该测试工具广播的页面元素。
由于页面元素通过Robotium进行广播,而在***中的广播不仅仅是由被测应用中的Robotium生成的,可能是该被测应用中的其他功能向***发送的广播,也可能是由其他应用所生成的广播,设置是Android***自身生成的***广播。为了准确地识别获取到Robotium广播的内容,本发明实施例中通过设置UIAutomator2.0中的IntentFilter过滤广播,具体的,可以是在IntentFilter中以测试工具的标识信息作为过滤条件进行设置,也可以是设置预设标识为过滤条件,而该预设标识是在Robotium进行广播时将其标注在广播内容上的信息。
步骤204、解析该页面元素,得到元素属性信息。
元素属性信息是指对于一个页面元素的相关信息,由于Robotium是将WebView中元素的全部信息进行获取并广播的,因此,本步骤是根据实际需求解析出功能测试所需的部分信息,并按照预置的结构生成元素属性信息。其中,元素属性信息在本实施例中至少包含元素的执行功能以及坐标位置,执行功能是说明该元素能够实现哪些功能,如按钮可以实现点击操作,文本框可以实现文字录入操作等,而坐标位置是指元素在页面中的实际坐标,该坐标位置可以是具体坐标点,也可以是表示一个区域的坐标集合。
步骤205、根据元素属性信息测试被测应用的功能。
具体的,根据得到的元素属性信息,提取其中页面元素的执行功能以及坐标位置,以此确定元素在页面中的位置,以及该元素需要测试的具体内容,进而,调用对应的测试方法对该元素进行测试,以判断该页面元素是否具有相应的执行功能。其中,对于页面元素的功能测试的具体实现方式与现有UIAutomator2.0中测试页面元素的方式相同,此处不再详细说明。
步骤206、利用预置指令分别获取被测应用的整体性能以及测试工具的执行性能。
具体的,可通过第一预置指令获取被测应用的进程消耗的处理资源,即获取被测应用(注入有测试工具)的整体性能,其中,处理资源具体包括CPU占用率、内存使用情况等参数。该监控数据的获取可以通过现有的UIAutomator2.0中的测试监控指令实现。
再通过第二预置指令以及独立测试线程的预置标识获取测试工具消耗的处理资源。其中,独立测试线程为上述步骤202中的基于AndroidJUnit4框架的自动化用例代码实现的在被测应用的进行中创建的单独执行Robotium的线程,而预置标识则是指该线程的标识信息。例如,“top–s cpu–t|grep threadName”指令,为监控线程占用CPU情况的指令,其中,“threadName”为线程名或线程的标识信息。
步骤207、确定整体性能与执行性能的差值为被测应用的实际性能。
基于上述图2所示的应用测试方法可以看出,本发明在实际应用中的一个实现方案是基于UIAutomator2.0测试框架的改进测试方法,其结合了Robotium测试框架,在对使用WebView控件的应用进行测试时,先注入Robotium,并将其执行在独立的线程中获取页面元素,再广播出所获取的页面元素,由UIAutomator2.0接收其广播的内容,并基于页面元素执行有针对性的功能测试,同时,由UIAutomator2.0监控被测应用的整体性能,以及Robotium所在线程的执行性能,计算两者的差值得到被测应用自身的实际性能,实现对被测应用的功能与性能的双向测试效果,提升应用测试的效率。
进一步的,作为对上述图1与图2所示方法的实现,本发明实施例提供了一种应用测试装置,该装置能够向被测应用注入测试工具,并根据测试工具对被测应用同时进行功能测试与性能测试。为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置如图3所示,具体包括:
元素获取单元31,用于通过注入被测应用的测试工具获取被测应用的页面元素,所述页面元素包括所述被测应用中由网页视图控件展示的页面内容;
解析单元32,用于解析所述元素获取单元31得到的页面元素,得到元素属性信息;
功能测试单元33,用于根据所述解析单元32得到的元素属性信息测试所述被测应用的功能;
性能监控单元34,利用预置指令分别获取所述被测应用的整体性能以及所述测试工具的执行性能;
性能计算单元35,用于确定所述性能监控单元34得到的整体性能与执行性能的差值为所述被测应用的实际性能。
进一步的,如图4所示,所述装置还包括:
注入单元36,用于在被测应用中注入测试工具,所述测试工具用于提取并广播被测应用中的页面元素;
加载单元37,用于在所述注入单元36成功注入测试工具后,在所述被测应用中加载单元测试框架,所述单元测试框架用于在被测应用执行的进程中创建具有预置标识的独立测试线程,以执行所述测试工具,所述性能监控单元34监控该单元测试框架创建的独立测试线程。
进一步的,所述元素获取单元31还用于,根据所述注入单元36注入的测试工具的标识信息过滤出所述测试工具广播的页面元素。
进一步的,如图4所示,所述功能测试单元33包括:
提取模块331,用于提取所述元素属性信息中元素的执行功能以及坐标位置;
测试模块332,用于根据所述提取模块331提取的坐标位置测试所述被测应用的页面是否具有所述执行功能。
进一步的,如图4所示,所述性能监控单元34包括:
第一监控模块341,用于通过第一预置指令获取所述被测应用的进程消耗的处理资源;
第二监控模块342,用于通过第二预置指令以及独立测试线程的预置标识获取所述测试工具消耗的处理资源。
综上所述,本发明实施例所采用的应用测试方法及装置,是结合现有的自动测试框架构建的一个新的自动化测试框架,能够实现对被测应用的功能与性能的同步测试。具体通过在被测应用中注入测试工具而获取被测应用中通过WebView控件展示的页面元素,进行被测应用的功能测试,同时,利用测试工具能够在被测应用中实现以独立线程运行的特点,通过预置指令获取被测应用的整体性能与测试工具的执行性能,通过差值计算,确定被测应用在运行过程中所实际消耗的性能。由此可见,本发明提出的自动化测试框架在针对使用WebView控件的应用进行测试时,实现功能测试与性能测试的同步实现,无需再采用不同的测试框架进行分别测试,大大减少了应用测试步骤,从而提升应用测试的测试效率。
进一步的,本发明实施例还提供了一种存储介质,该存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行上述的应用测试方法。
另外,本发明实施例还提供了一种处理器,所述处理器用于运行计算机程序,其中,所述计算机程序运行时执行上述的应用测试方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存
(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种应用测试方法,其特征在于,所述方法包括:
通过注入被测应用的测试工具获取被测应用的页面元素,所述页面元素包括所述被测应用中由网页视图控件展示的页面内容;
解析所述页面元素,得到元素属性信息;
根据所述元素属性信息测试所述被测应用的功能;
利用预置指令分别获取所述被测应用的整体性能以及所述测试工具的执行性能,包括通过第一预置指令获取所述被测应用的进程消耗的处理资源;通过第二预置指令以及独立测试线程的预置标识获取所述测试工具消耗的处理资源;
确定所述整体性能与所述执行性能的差值为所述被测应用的实际性能;
所述方法还包括:
在所述测试工具成功注入所述被测应用后,在所述被测应用中加载单元测试框架,所述单元测试框架用于在所述被测应用执行的进程中创建具有预置标识的独立测试线程,以执行所述测试工具。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在被测应用中注入测试工具,所述测试工具用于提取并广播被测应用中的页面元素。
3.根据权利要求1所述的方法,其特征在于,所述获取被测应用的页面元素包括:
根据测试工具的标识信息过滤出所述测试工具广播的页面元素。
4.根据权利要求1所述的方法,其特征在于,所述根据所述元素属性信息测试所述被测应用的功能包括:
提取所述元素属性信息中元素的执行功能以及坐标位置;
根据所述坐标位置测试所述被测应用的页面是否具有所述执行功能。
5.一种应用测试装置,其特征在于,所述装置包括:
元素获取单元,用于通过注入被测应用的测试工具获取被测应用的页面元素,所述页面元素包括所述被测应用中由网页视图控件展示的页面内容;
解析单元,用于解析所述元素获取单元得到的页面元素,得到元素属性信息;
功能测试单元,用于根据所述解析单元得到的元素属性信息测试所述被测应用的功能;
性能监控单元,利用预置指令分别获取所述被测应用的整体性能以及所述测试工具的执行性能,包括通过第一预置指令获取所述被测应用的进程消耗的处理资源;通过第二预置指令以及独立测试线程的预置标识获取所述测试工具消耗的处理资源;
性能计算单元,用于确定所述性能监控单元得到的整体性能与执行性能的差值为所述被测应用的实际性能;
所述装置还包括:
加载单元,用于在所述测试工具成功注入所述被测应用后,在所述被测应用中加载单元测试框架,所述单元测试框架用于在所述被测应用执行的进程中创建具有预置标识的独立测试线程,以执行所述测试工具。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
注入单元,用于在被测应用中注入测试工具,所述测试工具用于提取并广播被测应用中的页面元素。
7.根据权利要求5所述的装置,其特征在于,所述元素获取单元还用于,根据测试工具的标识信息过滤出所述测试工具广播的页面元素。
8.根据权利要求5所述的装置,其特征在于,所述功能测试单元包括:
提取模块,用于提取所述元素属性信息中元素的执行功能以及坐标位置;
测试模块,用于根据所述提取模块提取的坐标位置测试所述被测应用的页面是否具有所述执行功能。
9.一种存储介质,其特征在于,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行权利要求1-4中任意一项所述的应用测试方法。
10.一种处理器,其特征在于,所述处理器用于运行计算机程序,其中,所述计算机程序运行时执行权利要求1-4中任意一项所述的应用测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910067278.3A CN111475394B (zh) | 2019-01-24 | 2019-01-24 | 一种应用测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910067278.3A CN111475394B (zh) | 2019-01-24 | 2019-01-24 | 一种应用测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475394A CN111475394A (zh) | 2020-07-31 |
CN111475394B true CN111475394B (zh) | 2023-06-20 |
Family
ID=71743513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910067278.3A Active CN111475394B (zh) | 2019-01-24 | 2019-01-24 | 一种应用测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475394B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149033B (zh) * | 2020-09-14 | 2024-07-16 | 京东科技控股股份有限公司 | H5页面控件的获取方法、装置、电子设备和存储介质 |
CN112650659B (zh) * | 2020-12-22 | 2023-02-07 | 平安普惠企业管理有限公司 | 埋点设置方法、装置、计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544103A (zh) * | 2013-09-02 | 2014-01-29 | 烟台中科网络技术研究所 | 一种软件性能测试模拟并发方法及*** |
US8788885B1 (en) * | 2011-09-23 | 2014-07-22 | Amazon Technologies, Inc. | Intermediary for testing content and applications |
CN104978261A (zh) * | 2014-04-03 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置及*** |
CN106959921A (zh) * | 2017-02-20 | 2017-07-18 | 百度在线网络技术(北京)有限公司 | 自动测试方法、终端、平台及*** |
CN107122301A (zh) * | 2017-04-27 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 界面测试方法及装置 |
CN107622008A (zh) * | 2016-07-14 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 一种应用页面的遍历方法和装置 |
CN108536588A (zh) * | 2018-03-21 | 2018-09-14 | 四川斐讯信息技术有限公司 | 一种测试app程序的方法和*** |
CN108845929A (zh) * | 2018-05-07 | 2018-11-20 | 北京三快在线科技有限公司 | 页面性能测试方法和装置 |
-
2019
- 2019-01-24 CN CN201910067278.3A patent/CN111475394B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8788885B1 (en) * | 2011-09-23 | 2014-07-22 | Amazon Technologies, Inc. | Intermediary for testing content and applications |
CN103544103A (zh) * | 2013-09-02 | 2014-01-29 | 烟台中科网络技术研究所 | 一种软件性能测试模拟并发方法及*** |
CN104978261A (zh) * | 2014-04-03 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置及*** |
CN107622008A (zh) * | 2016-07-14 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 一种应用页面的遍历方法和装置 |
CN106959921A (zh) * | 2017-02-20 | 2017-07-18 | 百度在线网络技术(北京)有限公司 | 自动测试方法、终端、平台及*** |
CN107122301A (zh) * | 2017-04-27 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 界面测试方法及装置 |
CN108536588A (zh) * | 2018-03-21 | 2018-09-14 | 四川斐讯信息技术有限公司 | 一种测试app程序的方法和*** |
CN108845929A (zh) * | 2018-05-07 | 2018-11-20 | 北京三快在线科技有限公司 | 页面性能测试方法和装置 |
Non-Patent Citations (1)
Title |
---|
秦斌,陶锐.Web应用的自动测试方法.深圳大学学报(理工版).2004,(第02期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111475394A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107193750B (zh) | 一种脚本录制方法和装置 | |
CN111241073B (zh) | 一种数据质量检查方法及装置 | |
CN107622015B (zh) | 一种数据流分析方法、装置、设备及介质 | |
CN104035863B (zh) | 一种浏览器测试方法及装置 | |
CN110020339B (zh) | 基于无埋点的网页数据采集方法及装置 | |
CN111475394B (zh) | 一种应用测试方法及装置 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN103246566A (zh) | 应用程序的资源监控方法及装置 | |
CA3127343A1 (en) | Test data acquisition method and device, computer equipment and storage medium | |
CN108650507B (zh) | 终端设备的测试方法、装置、终端设备和存储介质 | |
CN112269746A (zh) | 自动化测试方法及相关设备 | |
CN109871307A (zh) | 一种精确定位启动时间问题的自动化测试方法 | |
CN107656849B (zh) | 一种软件***性能问题定位方法以及装置 | |
CN113919683A (zh) | 工艺工时的计算方法、装置、存储介质及处理器 | |
CN113641592A (zh) | 测试序列的生成方法及装置 | |
CN112162908A (zh) | 基于字节码注入技术的程序调用链路监控实现方法及装置 | |
CN109271323A (zh) | 页面元素的处理方法、装置、测试设备及存储介质 | |
CN112612697A (zh) | 一种基于字节码技术的软件缺陷测试定位方法及*** | |
CN112346981A (zh) | 联调测试覆盖率检测方法及*** | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
CN112579066A (zh) | 图表展示方法、装置、存储介质及设备 | |
CN115757138A (zh) | 脚本异常原因的确定方法、装置、存储介质以及电子设备 | |
CN110908876B (zh) | 一种硬件性能数据的获取方法及装置 | |
CN112346761B (zh) | 前端资源上线方法、设备、***及存储介质 | |
CN109561121B (zh) | 监控部署的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |