CN106815134A - 一种app测试方法和装置 - Google Patents
一种app测试方法和装置 Download PDFInfo
- Publication number
- CN106815134A CN106815134A CN201510850275.9A CN201510850275A CN106815134A CN 106815134 A CN106815134 A CN 106815134A CN 201510850275 A CN201510850275 A CN 201510850275A CN 106815134 A CN106815134 A CN 106815134A
- Authority
- CN
- China
- Prior art keywords
- interface elements
- test
- activity
- 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.)
- Pending
Links
- 238000010998 test method Methods 0.000 title claims abstract description 16
- 238000012360 testing method Methods 0.000 claims abstract description 398
- 230000000694 effects Effects 0.000 claims abstract description 250
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000001960 triggered effect Effects 0.000 claims description 48
- 230000009471 action Effects 0.000 claims description 24
- 230000000875 corresponding effect Effects 0.000 description 89
- 230000008569 process Effects 0.000 description 12
- 241000282693 Cercopithecidae Species 0.000 description 8
- 230000004913 activation Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000705930 Broussonetia papyrifera Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例提供了一种APP测试方法及装置,所述方法包括:针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;在待测试应用启动后,获取当前激活的Activity中的UI界面元素从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;将各Activity的各UI界面元素的测试结果输出。取得了可以精确的控制对哪些UI界面元素进行点击,降低无效点击次数,提高了UI界面的测试效率的效果。
Description
技术领域
本发明涉及软件技术领域,特别是涉及一种APP测试方法和一种APP测试装置。
背景技术
APP(Application,应用程序)是指智能手机的第三方应用程序,是目前被人们广泛使用的一种工具。
在一款APP的使用过程中,该APP的开发商需要不断对APP的各UI界面进行测试,以测试系统的稳定性。目前常用测试方法是monkey测试,monkey(monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中)测试是Android系统自带的一种命令行测试工具,可以运行在模拟器里或实际设备中,monkey测试的原理是:利用socket(套接字)通讯的方式模拟用户触摸屏幕、滑动Trackball、按键等操作对APP程序进行稳定性的测试,向系统发送伪随机的事件流、数据流,实现对正在开发的应用程序进行测试。
但是,由于monkey测试时使用的事件流、数据流是完全随机的,不受人工控制的,例如,monkey程序在模拟用户操作对多个页面点击测试的过程中,其中,各页面含有多个UI(User Interface,用户界面)界面元素,如果对于某个页面,只需要测试其中的一个UI界面元素时,而由于monkey在对该页面的点击过程总是完全随机的,可能需要很多次点击操作才能点击到上述UI界面元素从而获取到测试数据,或者根本获取相应UI界面元素的测试数据。因此在先技术中,无效点击次数多,并且可能漏测关键的UI界面元素,测试效率低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的APP测试方法和相应的APP测试装置。
依据本发明的一个方面,提供了一种APP测试方法,包括:
针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
将各Activity的各UI界面元素的测试结果输出。
优选地,在所述针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略的步骤之前,还包括:
获取待测试应用的各个Activity的view布局结构所对应的结构树;
接收对结构树的各个节点所配置的测试策略;
根据所述对结构树的各个节点所配置的测试策略,生成针对所述应用的测试模板配置信息。
可选地,所述获取待测试应用的各个Activity的view布局结构所对应的结构树的步骤包括:
通过调用Hierarchy Viewer工具的各布局结构获取API,获取待测试应用的各个Activity的view布局结构所对应的结构树。
可选地,所述从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试的步骤包括:
将当前激活的Activity中的UI界面元素,与测试模板配置信息中的各Activity中的UI界面元素进行匹配,确定允许触发的UI界面元素;
对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试。
可选地,所述对所述应用的各个Activity的各UI界面元素的测试策略包括:
各Activity中允许触发的UI界面元素、各UI界面元素的触发位置、各UI界面元素的触发操作类型、各UI界面元素的触发顺序。
可选地,所述对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试的步骤包括:
对于存在触发顺序的UI界面元素,按照所述触发顺序触发所述UI界面元素进行测试;
对于相互之间不存在触发顺序的UI界面元素,随机触发各UI界面元素进行测试。
可选地,所述对所述应用的各个Activity的各UI界面元素的测试策略,还包括:
对各Activity的触发比例,和/或对各UI界面元素的触发次数。
可选地,所述对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试的步骤,还包括:
记录所述UI界面元素所在的Activity的被触发数量;和/或记录所述UI界面元素被触发的数量。
根据本发明的另一个方面,还提供了一种APP测试装置,包括:
测试模板配置信息加载模块,适于针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
UI界面元素获取模块,适于在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
测试模块,适于从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
输出模块,适于将各Activity的各UI界面元素的测试结果输出。
优选地,在所述测试模板配置信息加载模块之前,还包括:
结构树获取模块,适于获取待测试应用的各个Activity的view布局结构所对应的结构树;
测试策略接收模块,适于接收对结构树的各个节点所配置的测试策略;
测试模板配置信息生成模块,适于根据所述对结构树的各个节点所配置的测试策略,生成针对所述应用的测试模板配置信息。
优选地,所述结构树获取模块包括:
结构树获取子模块,适于通过调用Hierarchy Viewer工具的各布局结构获取API,获取待测试应用的各个Activity的view布局结构所对应的结构树。
优选地,所述测试模块包括:
UI界面元素触发确定子模块,适于将当前激活的Activity中的UI界面元素,与测试模板配置信息中的各Activity中的UI界面元素进行匹配,确定允许触发的UI界面元素;
UI界面元素测试子模块,适于对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试。
优选地,所述对所述应用的各个Activity的各UI界面元素的测试策略包括:
各Activity中允许触发的UI界面元素、各UI界面元素的触发位置、各UI界面元素的触发操作类型、各UI界面元素的触发顺序。
优选地,所述UI界面元素测试子模块包括:
UI界面元素顺序测试子模块,适于对于存在触发顺序的UI界面元素,按照所述触发顺序触发所述UI界面元素进行测试;
UI界面元素随机测试子模块,适于对于相互之间不存在触发顺序的UI界面元素,随机触发各UI界面元素进行测试。
优选地,所述对所述应用的各个Activity的各UI界面元素的测试策略,还包括:
对各Activity的触发比例,和/或对各UI界面元素的触发次数。
优选地,所述UI界面元素测试子模块还包括:
界面元素触发数量记录子模块,适于记录所述UI界面元素所在的Activity的被触发数量;和/或记录所述UI界面元素被触发的数量。
根据本发明的另一个方面,还提供了一种APP测试设备,包括:
存储器,加载有多条可执行指令;
处理器,执行所述多条可执行指令;所述多条指令包括执行以下步骤的方法:
针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
将各Activity的各UI界面元素的测试结果输出。
本发明实施例可以对待测试的应用加载相应的测试模版配置信息,该测试模版配置信息中包括了对该应用的各个Activity的各UI界面元素的测试策略,并在待测试应用启动后,获取当前激活的Activity中的UI界面元素,提取测试模版配置信息中对当前Activity中UI界面元素的测试策略,并依据各UI界面元素的测试逻辑对各UI界面元素进行测试。解决了在先技术中,无效点击次数多,并且可能漏测关键的UI界面元素,测试效率低的问题,取得了可以精确的控制对哪些UI界面元素进行点击,降低无效点击次数,提高了UI界面的测试效率的效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种APP测试方法的步骤流程图;
图2是本发明实施例提供的一种APP测试方法的步骤流程图;
图3是本发明实施例提供的一种APP测试方法的步骤流程图;
图4是本发明实施例提供的一种APP测试装置的结构框图;
图5是本发明实施例提供的一种APP测试装置的结构框图;
图6是本发明实施例提供的一种APP测试装置的结构框图;及
图7是本发明实施例提供的一种APP测试设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
参照图1,示出了根据本发明一个实施例的一种APP测试方法实施例的步骤流程图,具体可以包括如下步骤:
步骤S110:针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略。
本发明实施例可以应用于针对各种类型APP的UI界面元素被点击时的稳定性进行测试。针对APP的测试是基于UI层面的自动化测试,也即基于APP显示界面的控件层面,主要是通过获取当前显示窗口的视图信息,然后在当前视图内查找目标控件,并根据控件属性信息来实现对应用的自动化测试。Instrumentation是目前常用的测试方法,其是通过将测试APK(Android Package,应用程序包文件)和被测APK运行在同一进程中,通过Java的反射机制,来获取当前窗口中的所有视图,并根据视图信息查找到目标控件的属性信息,并计算出目标控件中心点坐标,然后利用Instrumentation内部API(Application Programming Interface,应用程序编程接口),实现对目标控件的点击操作,并由此产生一个输入事件。Instrumentation测试方法常见的应用模式可以包括:Hierachyview+monkey、uiautomator等等。
在应用程序中,Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。Activity可以用于处理应用程序的整体性工作,为用户显示指定的页面。在各Activity都有相应的UI(User Interface)界面,UI界面即向用户所能看到的APP显示页面。本发明实施例中的UI界面元素是指UI界面中相应的控件(如点击按钮)。
针对待测试的APP应用程序,可以预先针对该APP应用程序预先设置对应的测试模版配置信息,该测试模版配置信息可以包括对该应用的各个Activity中的各UI界面的测试策略,该测试策略如,针对各Activity,设定允许触发的UI界面元素,设定UI界面元素的触发位置,设定对UI界面元素的触发操作类型、设定不同Activity的UI界面元素之间的测试顺序等等,对于测试模版配置信息中包含的对待测试应用的各个Activity的各UI界面的测试策略示例将在实施例三中进行详细说明。
在实际应用中,本发明实施例可设置一个测试策略配置窗口,该测试策略窗口中可以展示各Activity、该Activity中的UI界面元素的信息,Activity以及UI界面元素之间的层级关系。
在实际应用中,本领域技术人员可以根据实际需要自行设置针对待测试应用的各个Activity的各UI界面元素的测试策略,本发明对此不加以限制。
在配置了对于一个APP的测试模板配置信息之后,本发明实施例在对APP的UI界面元素测试之前,先加载相应的测试模板配置信息。
步骤S120:在待测试应用启动后,获取当前激活的Activity中的UI界面元素。
本发明实施例中,在启动的待测试应用后,激活APP的主页面的Activity,那么可以获取该Activity中的UI界面元素,按照测试模板配置信息包括的该Activity的各UI界面元素的测试策略,对相应的UI界面元素进行测试。当点击了某个UI界面元素,进入到其他页面,则激活相应页面的Activity,然后可以获取该Activity中的UI界面元素,测试模板配置信息包括的该Activity的各UI界面元素的测试策略,对相应的UI界面元素进行测试。
步骤S130:从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试。
本发明实施例中,各UI界面元素的测试逻辑可以是针对UI界面元素预先设置相应的点击次数,例如,针对某UI界面元素M设置触发次数为10次,在对APP进行一次测试的整个过程中,当对该UI界面元素M的触发次数达到10次时,则对APP的当前UI界面元素M不再执行触发操作。各UI界面元素的测试逻辑也可以是针对UI界面元素预先设置针对APP的UI界面中不同元素的触发顺序,例如,针对某UI界面元素M,首先对该UI界面元素M执行触发操作,然后针对点击该UI界面元素M对应的第二层次UI界面中的界面元素再设置相应的触发顺序,进而根据该触发顺序对该第二层次UI界面中的UI界面元素执行相应地触发操作等等。
在实际应用中,本领域技术人员可以根据实际需要自行设置针对各UI界面元素的测试逻辑,本发明对此不加以限制。
步骤S140:将各Activity的各UI界面元素的测试结果输出。
本发明实施例中,在对待测试应用的激活的Activity中的UI界面元素测试依据测试策略测试完成之后,对于测试过程中各UI界面元素的触发次数以及相应的测试信息在各对应的Activity中都有相应地信息记录,将各Activity中针对各UI界面元素的测试信息进行分析,并依据分析结果查找该APP所对应的系统的稳定性是否存在问题。
在本发明实施例中,如果对于APP启动后,对某个UI界面元素测试时,APP崩溃,则重启该APP,继续按照测试模板配置信息进行测试。
本发明实施例通过对待测试的应用加载相应的测试模版配置信息,该测试模版配置信息中包括了对该应用的各个Activity的各UI界面元素的测试策略,并在待测试应用启动后,获取当前激活的Activity中的UI界面元素,提取测试模版配置信息中对当前Activity中UI界面元素的测试策略,并依据各UI界面元素的测试逻辑对各UI界面元素进行测试。解决了在先技术中,无效点击次数多,并且可能漏测关键的UI界面元素,测试效率低的问题,可以精确的控制对哪些UI界面元素进行点击,降低无效点击次数,提高了UI界面的测试效率。
实施例二
参照图2,示出了根据本发明一个实施例的一种APP测试方法实施例的步骤流程图,具体可以包括如下步骤:
步骤S210:获取待测试应用的各个Activity的view布局结构所对应的结构树。
在本发明实施例中,可以为用户提供一个测试模板配置信息的配置界面,然后获取待测试应用的各个Activity的view布局结构所对应的结构树展示在该配置界面中,那么用即可在该配置界面中,基于结构树对各个节点进行配置。
本发明实施例中,view即各Activity中对应的显示界面,每个Activity都有对应的view,Activity用于控制view中的事件响应,例如,针对页面控件的点击事件等等可以在Activity中实现,将控件显示给用户,则用view实现。也即view是具体的显示页面布局,各个应用中的Activity的布局结构是由相应的结构树(view tree)构成的。以360手机助手APP为例,在其启动后,激活的Activity渲染的view中,包含有控件“推荐”、“游戏”、“软件”等控件,这些控件即为本发明实施例的UI界面元素。
而在当前view结构的控件下对应有相应的子view,则当前显示页面为父view。例如,触发控件“软件”时,激活下一级Activity,该Activity渲染的显示界面即为子view,在该子view中也可以有相应的控件,如“特权福利”、“首发”、等控件。相应地,在触发该子view的控件后,则激活再下一级Activity,该Activity渲染的页面为该子view的子view,以此类推。从而,各个Activity即是按照这种view结构树构成了view布局结构所对应的结构树。
优选地,所述步骤S210可以包括:
子步骤S2102:通过调用Hierarchy Viewer工具的各布局结构获取API,获取待测试应用的各个Activity的view布局结构所对应的结构树。
本发明实施例中,Hierarchy Viewer是一种可视化的布局优化工具,可以用于调试和调整显示界面。在APP启动之后,可以从android SDK工具包中,通过命令行的方式启动Hierarchy Viewer。具体的,可以在android SDK工具包下的tools目录下,在命令行方式下运行Hierarchy Viewer,进而可以通过Load View Hierarchy查看界面的控件层次。其中,该Load View Hierarchy即为一个布局结构获取API。在主窗口中,点击每一个控件时,将可以看到关于这个控件的详细信息,相应的,在该空间的上方弹出一个窗口,该窗口中除了可以显示该控件的实际效果图外,还可以显示该控件的属性信息,及与该控件对应的子控件的数目等,相应地,本领域技术人员可以根据实际需要将所需的与控件关联的信息在窗口中进行展现,本发明对此不加以限制。
因此,通过Hierarchy Viewer工具,调用相应布局结构获取API,可以获取到APP的各个Activity的view布局结构所对应的结构树。在本发明实施例中,将Hierarchy Viewer的调整显示界面进行了改进,增加了对结构树进行配置的输入框、按钮等功能。
步骤S220:接收对结构树的各个节点所配置的测试策略。
本发明实施例中,在展示前述结构树的界面中,结构树的各个节点包括了UI界面元素,Activity等。可以为用户提供测试策略配置工具,用户可以通过测试策略配置工具对每个Activity的UI界面元素的测试策略进行配置。比如勾选哪些UI界面元素允许被测试,各个UI界面元素的测试次数或者测试比例,各个Activity中UI界面元素的测试总比例、各层级的UI界面元素的测试顺序等。
步骤S230:根据所述对结构树的各个节点所配置的测试策略,生成针对所述应用的测试模板配置信息。
在用户配置完毕后,点击配置界面中的保存按钮,则可以基于步骤S220的配置生成针对该APP的测试模板配置信息,该测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略。
步骤S240:针对待测试的应用,加载相应的测试模板配置信息。
步骤S250:在待测试应用启动后,获取当前激活的Activity中的UI界面元素。
步骤S260:从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试。
步骤S270:将各Activity的各UI界面元素的测试结果输出。
本发明实施例中,在启动待测试应用之后,可以根据待测试应用中当前激活的Activity中的UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对UI界面元素进行相应地测试,并返回各Activity中的各UI界面元素的测试结果。
本发明实施例通过获取待测试应用的各个Activity的view布局结构对应的结构树,为结构树的各个节点配置对应的测试策略,并通过对待测试的应用加载相应的测试模版配置信息,该测试模版配置信息中包括了对该应用的各个Activity的各UI界面元素的测试策略,并在待测试应用启动后,获取当前激活的Activity中的UI界面元素,提取测试模版配置信息中对当前Activity中UI界面元素的测试策略,并依据各UI界面元素的测试逻辑对各UI界面元素进行测试。解决了在先技术中,无效点击次数多,并且可能漏测关键的UI界面元素,测试效率低的问题,可以精确的控制对哪些UI界面元素进行点击,降低无效点击次数,提高了UI界面的测试效率。并且,可以给用户提供配置界面,让用户能够可视化的基于Activity的view布局结构所对应的结构树,对应用的各个Activity的各UI界面元素配置测试策略,操作方便。
实施例三
参照图3,示出了根据本发明一个实施例的一种APP测试方法实施例的步骤流程图,具体可以包括如下步骤:
步骤S310:针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略。
步骤S320:在待测试应用启动后,获取当前激活的Activity中的UI界面元素。
本发明实施例中,针对待测试的应用加载相应的测试模版配置信息,该测试模版配置信息可以包括对所述应用的各个Activity的各UI界面元素的测试策略,并在待测试应用启动之后,获取该应用中当前激活的Activity的UI界面元素,然后进入步骤S330。
在实际应用中,APP启动后,激活主页面的Activity,当根据测试模板配置信息对该Activity的某个UI界面元素进行测试时,如果激活了下一层的Activity,则根据测试模板配置信息对该下一层的Activity中的UI界面元素进行测试,以此类推。
步骤S330:将当前激活的Activity中的UI界面元素,与测试模板配置信息中的各Activity中的UI界面元素进行匹配,确定允许触发的UI界面元素。
本发明实施例中,可以预先对待测试的应用加载相应的测试模版配置信息,该测试模版配置信息中可以包括针对各Activity中具体的UI界面元素,在待测试应用启动之后,将当前激活的Activity中的UI界面元素与待测试应用中加载的测试模版配置信息中各Activity中的UI界面元素进行匹配,以选择出匹配上的UI界面元素用于进行触发操作。例如,对待测试应用加载的测试模版配置信息中针对一个Activity的某UI界面的UI界面元素包含:A、B、C,而该UI界面中的UI界面元素包含A、B、C、D、E、F六个,则从该UI界面元素中只对UI界面元素A、B、C进行触发操作。当然如果对UI界面元素A、B、C的某个进行触发操作时,激活了另一个Activity,则继续匹配该Activity中允许测试的UI界面元素,对匹配上的进行测试。
在本发明实施例中,可以限定触发操作的点击区域只在允许测试的UI界面元素的区域之上,因此可以避免触发不允许测试的UI界面元素。
步骤S340:对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试。
本发明实施例中,在选取与待测试应用的测试模版配置信息中相匹配的UI界面元素之后,根据其它相应的针对各UI界面元素的测试策略对相应的UI界面元素进行测试,具体情况可以包括如下优选实施例的方式。
优选地,所述对所述应用的各个Activity的各UI界面元素的测试策略可以包括:
各Activity中允许触发的UI界面元素、各UI界面元素的触发位置、各UI界面元素的触发操作类型、各UI界面元素的触发顺序。
本发明实施例中,待测试应用的各个Activity的各UI界面元素的测试策略可以包括:各Activity中允许触发的UI界面元素,例如,某Activity中包含有两个UI界面,分别为:UI界面1、UI界面2,在UI界面1中允许被触发的UI界面元素为UI界面元素A和UI界面元素B,在UI界面2中允许被触发的UI界面元素为UI界面元素C和UI界面元素D等等。
待测试应用的各个Activity的各UI界面元素的测试策略还可以包括:各UI界面元素的触发位置,各UI界面元素在显示界面都有相应的位置坐标,通过获取可以被触发UI界面元素的在当前界面的中心点坐标,并依据该中心点坐标设置对应的针对UI界面元素的触发策略,例如,某个可以被触发的UI界面元素在当前界面的中心点坐标为:(25,25),则设置在触发到该中心点坐标时,即为触发该UI界面元素。各UI界面元素的触发位置,也可以是各UI界面元素在显示界面相应的区域范围,则可以通过获取各区域的对应的顶点坐标,设置各UI界面元素可被触发的位置,例如,某个UI界面元素可被触发的UI界面元素在当前界面的可被触发的区域顶点坐标为:(10,15)(10,20)(20,15)(20,20),则设置在触发到这些顶点坐标时,即为触发该UI界面元素等等。
待测试应用的各个Activity的各UI界面元素的测试策略还可以包括:各UI界面元素的触发操作类型,可以设置可被触发的UI界面元素的触发操作为点击操作,也可以设置可被触发的UI界面元素的触发操作为滑动操作等等。待测试应用的各个Activity的各UI界面元素的测试策略还可以包括:各UI界面元素的触发顺序,例如,针对某个UI界面中可被触发的UI界面元素A和UI界面元素B,可以设置先对UI界面元素A执行触发操作,然后再对UI界面元素B执行操作。
相应地,在实际应用中,本领域技术人员可以根据实际需要自行设置针对UI界面元素的测试策略,本发明对此不加以限制。
优选地,所述步骤S340可以包括:
子步骤S3402:对于存在触发顺序的UI界面元素,按照所述触发顺序触发所述UI界面元素进行测试;
本发明实施例中,针对各UI界面元素设置对应的触发顺序,在触发该UI界面元素后,激活下一层的Activity,而在该Activity中包含了该层Activity的UI界面元素,相应的,可以对这些UI界面元素设置对应的触发顺序,并按照触发顺序对这些UI界面元素进行测试,其他情况以此类推。例如,Activity1中包含有可被触发的UI界面元素A和UI界面元素B,触发UI界面元素A后对应有Activity1下一层的Activity1-1,Activity1-1中包含有UI界面元素C和UI界面元素D,可以设置UI界面元素A和UI界面元素B的触发顺序是先触发UI界面元素A,而UI界面元素C和UI界面元素D的触发顺序是先触发UI界面元素C,则在进行测试的过程中,先触发Activity1中的UI界面元素A,在触发UI界面元素A之后,则激活Activity 1-1,再对Activity1-1中的UI界面元素C执行触发操作,然后再对UI界面元素D执行触发操作,之后,触发Activity1-1中用于返回的UI界面元素以激活Activity1,对Activity1的UI界面元素B执行相应的触发操作,然后对UI界面元素B对应的Activity中的UI界面元素按照相应的触发顺序执行对应的触发操作,以完成对UI界面元素的测试。可以理解的,对于存在触发顺序的UI界面元素,是按照对应的顺序执行UI界面元素的测试,在最底层的Activity中的UI界面元素测试完成后,返回,执行倒数第二层Activity中UI界面元素的测试,以此类推,直至对所有UI界面元素的测试完成。
子步骤S3404:对于相互之间不存在触发顺序的UI界面元素,随机触发各UI界面元素进行测试。
本发明实施例中,对于不存在触发顺序的各UI界面元素,则可以依据系统随机的选择UI界面元素进行测试。
优选地,所述对所述应用的各个Activity的各UI界面元素的测试策略,还可以包括:
对各Activity的触发比例,和/或对各UI界面元素的触发次数。
本发明实施例中,对各Activity的触发比例是指在预先设置了对应用中的所有的Activity的触发总数之后,针对各个Activity可以对各Activity触发的数量所占触发总数的比例。待测试应用中的各个Activity的各UI界面元素的测试策略可以包括如下三种情况:
第一种情况是:待测试应用中的各个Activity的各UI界面元素的测试策略只包括:对各Activity的触发比例,例如,待测试应用中有三个Activity,分别是:ActivityM、ActivityN和ActivityP,在一次测试时,对该待测试应用预先设置的触发次数为100次,可以预先对上述三个Activity分别配置对应的触发比例,如触发ActivityM的比例为50%,触发ActivityN的比例为40%,触发ActivityP的比例为10%,则在该次的测试过程中,触发ActivityM中的UI界面元素的次数为50次,触发ActivityN中的UI界面元素的次数为40次,触发ActivityP中的UI界面元素的次数为10次。
第二种情况是:待测试应用的各个Activity的各UI界面元素的测试策略只包括:对各UI界面元素的触发次数,例如,针对某个UI界面中的三个UI界面元素,为UI界面元素A配置10次的最大触发次数,为UI界面元素B配置20次的最大触发次数,为UI界面元素C配置35次的最大触发次数,则在整个测试的过程中,针对UI界面元素测试的整个过程中,对每个UI界面元素的触发次数可以少于或者等于所配置的最大触发次数,但不会大于所配置的最大触发次数。
第三种情况是:待测试应用的各个Activity的各UI界面元素的测试策略同时包括:对各Activity的触发比例及对各UI界面元素的触发次数,此种情况下,为所有的Activity配置了触发总数,并按照触发总数为各UI界面元素分别配置了对应的触发次数,在一次测试完成时,对各UI界面元素的触发次数与预先配置的各UI界面元素的触发次数相同,例如,待测试应用中有三个Activity,分别是:ActivityM、ActivityN和ActivityP,ActivityM中包含有UI界面元素A、UI界面元素B,ActivityN中包含有UI界面元素C,ActivityP中包含有UI界面元素D,在一次测试时,对该待测试应用预先设置的触发次数为100次,可以预先对上述三个Activity分别配置对应的触发比例,如触发ActivityM的比例为50%,触发ActivityN的比例为40%,触发ActivityP的比例为10%,则在该次的测试过程中,触发ActivityM中的UI界面元素的次数为50次,触发ActivityN中的UI界面元素的次数为40次,触发ActivityP中的UI界面元素的次数为10次,相应的,可以设置UI界面元素A的触发次数为10次,UI界面元素的触发次数则为40次,UI界面元素C的触发次数为40次,UI界面元素D的触发次数为10次,则在一次测试的整个过程中,对各UI界面元素的触发次数与预先设置的针对各UI界面元素的触发次数相同。
优选地,所述步骤S340还可以包括:
子步骤S3406:记录所述UI界面元素所在的Activity的被触发数量;和/或记录所述UI界面元素被触发的数量。
本发明实施例中,对待测试应用的各UI界面元素的测试过程中,可以针对各UI界面元素所在的Activity的被触发数量进行记录,还可以对各UI界面元素被触发的数量进行记录,还可以同时对UI界面元素所在的Activity的被触发数量和各UI界面元素被触发的数量进行记录。
在只对各UI界面元素所在的Activity的被触发数量进行记录的情况下,在测试完成时,可以根据该记录中的触发Activity的信息与预先配置的测试策略进行匹配,当对部分Activity的触发数量小于预先配置的触发数量时,则对这些Activity执行再次的测试工作,当对Activity的触发数量等于预先配置的触发数量时,则测试工作完成。例如,对ActivityM预先配置了30次的触发数量,在一次测试完成时,根据记录中的信息,发现对该ActivityM的触发数量为20次,则对该ActivityM配置对应的测试策略,即对该ActivityM配置10次的触发数量,并执行再次的测试。
在只对UI界面元素被触发的数量进行就的情况下,在测试完成时,可以根据该记录中的触发UI界面元素的信息与预先配置的测试策略进行匹配,当对部分UI界面元素的触发数量小于预先配置的触发数量时,则对这些UI元素界面执行再次的测试工作。例如,对UI界面元素A预先配置的触发数量是10次,在一次测试完成时,根据记录中的信息,发现对该UI界面元素A的触发数量为8次,则对该UI界面元素配置2次的触发数量,并执行再次的测试。
在同时对UI界面元素所在的Activity的被触发数量和UI界面元素被触发的数量进行记录的情况下,在一次测试过程中,只要在记录的信息中,存在对Activity和UI界面元素的两个或者其中之一的测试数量少于预先配置的测试策略中设置的触发数量时,则对这部分的Activity及UI界面元素再分配对应的测试策略,并执行再次的测试。
步骤S350:将各Activity的各UI界面元素的测试结果输出。
本发明实施例中,依据上述测试策略对各Activity的各UI界面元素的测试完成之后,将各Activity的各UI界面元素的测试结果输出,并对测试结果进行分析,以确定是否存在系统不稳定的问题。
在一次测试完成之后,还可以针对各Activity及各UI界面元素的被触发数量与预先配置的测试策略中的针对相应的Activity及UI界面元素的被触发数量是否相等,如果其中存在部分Activity及部分UI界面元素的被触发数量少于预先配置的测试策略中的触发数量时,则挑选出这部分的Activity及UI界面元素,并为这部分的Activity及UI界面元素再重新配置对应的测试策略,进行再次的测试,再次测试的方式与上述实施例中的测试方式相同,本发明实施例在此不加加以赘述。
本发明实施例通过对待测试的应用加载相应的测试模版配置信息,该测试模版配置信息中包括了对该应用的各个Activity的各UI界面元素的测试策略,并在待测试应用启动后,获取当前激活的Activity中的UI界面元素,提取测试模版配置信息中对当前Activity中UI界面元素的测试策略,并依据各UI界面元素的测试逻辑对各UI界面元素进行测试。解决了在先技术中,无效点击次数多,并且可能漏测关键的UI界面元素,测试效率低的问题,取得了可以精确的控制对哪些UI界面元素进行点击,降低无效点击次数,提高了UI界面的测试效率的效果。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例四
参照图4,示出了根据本发明一个实施例的一种APP测试装置实施例的结构框图,具体可以包括如下模块:
测试模板配置信息加载模块410,适于针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
UI界面元素获取模块420,适于在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
测试模块430,适于从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
输出模块440,适于将各Activity的各UI界面元素的测试结果输出。
实施例五
参照图5,示出了根据本发明一个实施例的一种APP测试装置实施例的结构框图,具体可以包括如下模块:
结构树获取模块510,适于获取待测试应用的各个Activity的view布局结构所对应的结构树。
优选地,所述结构树获取模块510可以包括:
结构树获取子模块5102,适于通过调用Hierarchy Viewer工具的各布局结构获取API,获取待测试应用的各个Activity的view布局结构所对应的结构树。
测试策略接收模块520,适于接收对结构树的各个节点所配置的测试策略。
测试模板配置信息生成模块530,适于根据所述对结构树的各个节点所配置的测试策略,生成针对所述应用的测试模板配置信息。
测试模板配置信息加载模块540,适于针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略。
UI界面元素获取模块550,适于在待测试应用启动后,获取当前激活的Activity中的UI界面元素。
测试模块560,适于从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试。
输出模块570,适于将各Activity的各UI界面元素的测试结果输出。
实施例六
参照图6,示出了根据本发明一个实施例的一种APP测试装置实施例的结构框图,具体可以包括如下模块:
测试模板配置信息加载模块610,适于针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略。
UI界面元素获取模块620,适于在待测试应用启动后,获取当前激活的Activity中的UI界面元素。
测试模块630,适于从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试。
优选地,所述测试模块630可以包括:
UI界面元素触发确定子模块6302,适于将当前激活的Activity中的UI界面元素,与测试模板配置信息中的各Activity中的UI界面元素进行匹配,确定允许触发的UI界面元素;
UI界面元素测试子模块6304,适于对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试。
优选地,所述对所述应用的各个Activity的各UI界面元素的测试策略包括:
各Activity中允许触发的UI界面元素、各UI界面元素的触发位置、各UI界面元素的触发操作类型、各UI界面元素的触发顺序。
优选地,所述UI界面元素测试子模块6304包括:
UI界面元素顺序测试子模块63042,适于对于存在触发顺序的UI界面元素,按照所述触发顺序触发所述UI界面元素进行测试;
UI界面元素随机测试子模块63044,适于对于相互之间不存在触发顺序的UI界面元素,随机触发各UI界面元素进行测试。
优选地,所述对所述应用的各个Activity的各UI界面元素的测试策略,还可以包括:
对各Activity的触发比例,和/或对各UI界面元素的触发次数。
优选地,所述UI界面元素测试子模块6304还可以包括:
界面元素触发数量记录子模块63046,适于记录所述UI界面元素所在的Activity的被触发数量;和/或记录所述UI界面元素被触发的数量。
输出模块640,适于将各Activity的各UI界面元素的测试结果输出。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
实施例七
参照图7,示出了根据本发明一个实施例的一种APP测试设备700实施例的结构框图,具体可以包括:
存储器710,加载有多条可执行指令;
处理器720,执行所述多条可执行指令;所述多条指令包括执行以下步骤的方法:
针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
将各Activity的各UI界面元素的测试结果输出。
优选地,本发明实施例的多条可执行指令还可包括前述各个步骤的方法,本发明实施例不对其加以限定。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的APP测试设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种APP测试方法,包括:
针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
将各Activity的各UI界面元素的测试结果输出。
A2、如A1所述的方法,在所述针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略的步骤之前,还包括:
获取待测试应用的各个Activity的view布局结构所对应的结构树;
接收对结构树的各个节点所配置的测试策略;
根据所述对结构树的各个节点所配置的测试策略,生成针对所述应用的测试模板配置信息。
A3、如A2所述的方法,所述获取待测试应用的各个Activity的view布局结构所对应的结构树的步骤包括:
通过调用Hierarchy Viewer工具的各布局结构获取API,获取待测试应用的各个Activity的view布局结构所对应的结构树。
A4、如A1所述的方法,所述从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试的步骤包括:
将当前激活的Activity中的UI界面元素,与测试模板配置信息中的各Activity中的UI界面元素进行匹配,确定允许触发的UI界面元素;
对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试。
A5、如A4所述的方法,所述对所述应用的各个Activity的各UI界面元素的测试策略包括:
各Activity中允许触发的UI界面元素、各UI界面元素的触发位置、各UI界面元素的触发操作类型、各UI界面元素的触发顺序。
A6、如A5所述的方法,所述对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试的步骤包括:
对于存在触发顺序的UI界面元素,按照所述触发顺序触发所述UI界面元素进行测试;
对于相互之间不存在触发顺序的UI界面元素,随机触发各UI界面元素进行测试。
A7、如A5所述的方法,所述对所述应用的各个Activity的各UI界面元素的测试策略,还包括:
对各Activity的触发比例,和/或对各UI界面元素的触发次数。
A8、如A7所述的方法,所述对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试的步骤,还包括:
记录所述UI界面元素所在的Activity的被触发数量;和/或记录所述UI界面元素被触发的数量。
本发明还公开了B9、一种APP测试装置,包括:
测试模板配置信息加载模块,适于针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
UI界面元素获取模块,适于在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
测试模块,适于从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
输出模块,适于将各Activity的各UI界面元素的测试结果输出。
B10、如B9所述的装置,在所述测试模板配置信息加载模块之前,还包括:
结构树获取模块,适于获取待测试应用的各个Activity的view布局结构所对应的结构树;
测试策略接收模块,适于接收对结构树的各个节点所配置的测试策略;
测试模板配置信息生成模块,适于根据所述对结构树的各个节点所配置的测试策略,生成针对所述应用的测试模板配置信息。
B11、如B10所述的装置,所述结构树获取模块包括:
结构树获取子模块,适于通过调用Hierarchy Viewer工具的各布局结构获取API,获取待测试应用的各个Activity的view布局结构所对应的结构树。
B12、如B9所述的装置,所述测试模块包括:
UI界面元素触发确定子模块,适于将当前激活的Activity中的UI界面元素,与测试模板配置信息中的各Activity中的UI界面元素进行匹配,确定允许触发的UI界面元素;
UI界面元素测试子模块,适于对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试。
B13、如B12所述的装置,所述对所述应用的各个Activity的各UI界面元素的测试策略包括:
各Activity中允许触发的UI界面元素、各UI界面元素的触发位置、各UI界面元素的触发操作类型、各UI界面元素的触发顺序。
B14、如B13所述的装置,所述UI界面元素测试子模块包括:
UI界面元素顺序测试子模块,适于对于存在触发顺序的UI界面元素,按照所述触发顺序触发所述UI界面元素进行测试;
UI界面元素随机测试子模块,适于对于相互之间不存在触发顺序的UI界面元素,随机触发各UI界面元素进行测试。
B15、如B13所述的装置,所述对所述应用的各个Activity的各UI界面元素的测试策略,还包括:
对各Activity的触发比例,和/或对各UI界面元素的触发次数。
B16、如B15所述的装置,所述UI界面元素测试子模块还包括:
界面元素触发数量记录子模块,适于记录所述UI界面元素所在的Activity的被触发数量;和/或记录所述UI界面元素被触发的数量。
本发明还公开了C17、一种APP测试设备,包括:
存储器,加载有多条可执行指令;
处理器,执行所述多条可执行指令;所述多条指令包括执行以下步骤的方法:
针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
将各Activity的各UI界面元素的测试结果输出。
Claims (10)
1.一种APP测试方法,包括:
针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
将各Activity的各UI界面元素的测试结果输出。
2.根据权利要求1所述的方法,其特征在于,在所述针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略的步骤之前,还包括:
获取待测试应用的各个Activity的view布局结构所对应的结构树;
接收对结构树的各个节点所配置的测试策略;
根据所述对结构树的各个节点所配置的测试策略,生成针对所述应用的测试模板配置信息。
3.根据权利要求2所述的方法,其特征在于,所述获取待测试应用的各个Activity的view布局结构所对应的结构树的步骤包括:
通过调用Hierarchy Viewer工具的各布局结构获取API,获取待测试应用的各个Activity的view布局结构所对应的结构树。
4.根据权利要求1所述的方法,其特征在于,所述从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试的步骤包括:
将当前激活的Activity中的UI界面元素,与测试模板配置信息中的各Activity中的UI界面元素进行匹配,确定允许触发的UI界面元素;
对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试。
5.根据权利要求4所述的方法,其特征在于,所述对所述应用的各个Activity的各UI界面元素的测试策略包括:
各Activity中允许触发的UI界面元素、各UI界面元素的触发位置、各UI界面元素的触发操作类型、各UI界面元素的触发顺序。
6.根据权利要求5所述的方法,其特征在于,所述对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试的步骤包括:
对于存在触发顺序的UI界面元素,按照所述触发顺序触发所述UI界面元素进行测试;
对于相互之间不存在触发顺序的UI界面元素,随机触发各UI界面元素进行测试。
7.根据权利要求5所述的方法,其特征在于,所述对所述应用的各个Activity的各UI界面元素的测试策略,还包括:
对各Activity的触发比例,和/或对各UI界面元素的触发次数。
8.根据权利要求7所述的方法,其特征在于,所述对各UI界面元素,按照相应的测试策略触发所述UI界面元素进行测试的步骤,还包括:
记录所述UI界面元素所在的Activity的被触发数量;和/或记录所述UI界面元素被触发的数量。
9.一种APP测试装置,包括:
测试模板配置信息加载模块,适于针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
UI界面元素获取模块,适于在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
测试模块,适于从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
输出模块,适于将各Activity的各UI界面元素的测试结果输出。
10.一种APP测试设备,包括:
存储器,加载有多条可执行指令;
处理器,执行所述多条可执行指令;所述多条指令包括执行以下步骤的方法:
针对待测试的应用,加载相应的测试模板配置信息;所述测试模板配置信息包括对所述应用的各个Activity的各UI界面元素的测试策略;
在待测试应用启动后,获取当前激活的Activity中的UI界面元素;
从所述测试模板配置信息中提取对当前Activity中UI界面元素的测试策略,并根据各UI界面元素的测试逻辑对所述UI界面元素进行测试;
将各Activity的各UI界面元素的测试结果输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510850275.9A CN106815134A (zh) | 2015-11-27 | 2015-11-27 | 一种app测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510850275.9A CN106815134A (zh) | 2015-11-27 | 2015-11-27 | 一种app测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106815134A true CN106815134A (zh) | 2017-06-09 |
Family
ID=59155400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510850275.9A Pending CN106815134A (zh) | 2015-11-27 | 2015-11-27 | 一种app测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106815134A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572913A (zh) * | 2018-02-26 | 2018-09-25 | 挖财网络技术有限公司 | 在安卓客户端UI自动化过程中定位App首页的方法、装置和应用 |
CN108845930A (zh) * | 2018-05-23 | 2018-11-20 | 深圳市腾讯网络信息技术有限公司 | 界面操作测试方法和装置、存储介质及电子装置 |
CN109165332A (zh) * | 2018-09-13 | 2019-01-08 | 郑州云海信息技术有限公司 | 一种网页信息获取方法、装置以及设备 |
CN109697154A (zh) * | 2017-10-20 | 2019-04-30 | 阿里巴巴集团控股有限公司 | 一种渲染性能可视化方法及装置 |
WO2019090691A1 (zh) * | 2017-11-10 | 2019-05-16 | 华为技术有限公司 | Monkey测试方法及终端 |
CN110334014A (zh) * | 2019-06-12 | 2019-10-15 | 北京大米科技有限公司 | 用于用户界面自动化测试方法、系统、服务器及存储介质 |
CN110851050A (zh) * | 2019-10-17 | 2020-02-28 | 稿定(厦门)科技有限公司 | 页面元素点击测试的方法及装置 |
CN115587352A (zh) * | 2022-10-10 | 2023-01-10 | 奇安信科技集团股份有限公司 | 一种隐私安全监测方法、装置、电子设备及存储介质 |
-
2015
- 2015-11-27 CN CN201510850275.9A patent/CN106815134A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697154A (zh) * | 2017-10-20 | 2019-04-30 | 阿里巴巴集团控股有限公司 | 一种渲染性能可视化方法及装置 |
WO2019090691A1 (zh) * | 2017-11-10 | 2019-05-16 | 华为技术有限公司 | Monkey测试方法及终端 |
CN110914810A (zh) * | 2017-11-10 | 2020-03-24 | 华为技术有限公司 | Monkey测试方法及终端 |
CN110914810B (zh) * | 2017-11-10 | 2022-02-01 | 华为技术有限公司 | Monkey测试方法及终端 |
CN108572913A (zh) * | 2018-02-26 | 2018-09-25 | 挖财网络技术有限公司 | 在安卓客户端UI自动化过程中定位App首页的方法、装置和应用 |
CN108845930A (zh) * | 2018-05-23 | 2018-11-20 | 深圳市腾讯网络信息技术有限公司 | 界面操作测试方法和装置、存储介质及电子装置 |
CN108845930B (zh) * | 2018-05-23 | 2022-12-30 | 深圳市腾讯网络信息技术有限公司 | 界面操作测试方法和装置、存储介质及电子装置 |
CN109165332A (zh) * | 2018-09-13 | 2019-01-08 | 郑州云海信息技术有限公司 | 一种网页信息获取方法、装置以及设备 |
CN110334014A (zh) * | 2019-06-12 | 2019-10-15 | 北京大米科技有限公司 | 用于用户界面自动化测试方法、系统、服务器及存储介质 |
CN110851050A (zh) * | 2019-10-17 | 2020-02-28 | 稿定(厦门)科技有限公司 | 页面元素点击测试的方法及装置 |
CN110851050B (zh) * | 2019-10-17 | 2022-03-01 | 稿定(厦门)科技有限公司 | 页面元素点击测试的方法及装置 |
CN115587352A (zh) * | 2022-10-10 | 2023-01-10 | 奇安信科技集团股份有限公司 | 一种隐私安全监测方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106815134A (zh) | 一种app测试方法和装置 | |
Amalfitano et al. | A gui crawling-based technique for android mobile application testing | |
CN105512023B (zh) | 一种Monkey测试方法及装置 | |
CN105843734A (zh) | 一种自动化测试方法、装置及计算设备 | |
US8887138B2 (en) | Debugging in a dataflow programming environment | |
JP2019501446A (ja) | 試験方法、試験システム、試験装置及び読み取り可能な記録媒体 | |
CN106095666A (zh) | 游戏自动化测试方法及相关装置 | |
CN104899046B (zh) | 一种多功能脚本运行方法和系统 | |
US10810113B2 (en) | Method and apparatus for creating reference images for an automated test of software with a graphical user interface | |
CN106681919A (zh) | 一种用户界面自动化测试方法及系统 | |
US9053241B2 (en) | Scripting application with role identification | |
CN106874208A (zh) | 测试脚本的处理方法、装置及电子设备 | |
CN109710506A (zh) | 一种基于树遍历的终端app覆盖性测试方法和装置 | |
CN106021101B (zh) | 对移动终端进行测试的方法及装置 | |
CN106648864B (zh) | 打开和/或切换多个应用的方法及装置 | |
CN105988931A (zh) | 测试方法及装置 | |
CN110879777A (zh) | 应用界面的控件测试方法、装置、计算机设备及存储介质 | |
CN103984626A (zh) | 一种生成测试用例脚本的方法及装置 | |
US20150082207A1 (en) | Extracting a deterministic finite-state machine model of a gui based application | |
CN102999419A (zh) | 一种Android测试事件记录回放方法及装置 | |
US10042638B2 (en) | Evaluating documentation coverage | |
CN106227667B (zh) | 一种基于扩展的ifml的移动应用的测试用例生成方法 | |
CN108958873A (zh) | 状态栏沉浸式效果的配置方法、装置、介质和计算机设备 | |
CN106021004B (zh) | 用户行为模拟单元、测试系统、以及测试方法 | |
CN106126213B (zh) | 一种基于IFML的Android开发建模方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170609 |