CN108920384A - 应用的测试方法和装置 - Google Patents
应用的测试方法和装置 Download PDFInfo
- Publication number
- CN108920384A CN108920384A CN201810953611.6A CN201810953611A CN108920384A CN 108920384 A CN108920384 A CN 108920384A CN 201810953611 A CN201810953611 A CN 201810953611A CN 108920384 A CN108920384 A CN 108920384A
- Authority
- CN
- China
- Prior art keywords
- test
- component
- screen
- current screen
- target elements
- 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 10
- 238000012360 testing method Methods 0.000 claims abstract description 168
- 238000000034 method Methods 0.000 claims abstract description 85
- 230000006870 function Effects 0.000 claims description 24
- 238000010586 diagram Methods 0.000 description 8
- 238000013475 authorization Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
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
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
本发明公开了应用的测试方法和装置。所述方法包括:在获取到屏幕上的界面变化事件时,基于系统的辅助功能获取在当前屏幕中显示的至少部分组件;从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;根据测试指令对所述若干个目标组件执行相应的操作以完成测试。该技术方案能够通过系统的辅助功能获取到组件,并进一步通过测试配置文件中的组件信息筛选出目标组件,能够实现对有用的组件进行点击等测试,对干扰的组件进行消除,避免了意外事件的干扰,提高了测试效率。
Description
技术领域
本发明涉及应用测试领域,具体涉及应用的测试方法和装置。
背景技术
应用测试包括多个维度的测试,例如按测试方式可以分为手工测试和自动化测试,按测试目标可以分为功能测试、性能测试等等。以一个自动化测试为例,需要点击应用中的某些组件,但是可能在测试过程中出现广告等弹窗干扰测试,十分不便,影响自动化测试流程。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用的测试方法和装置。
依据本发明的一个方面,提供了一种应用的测试方法,包括:
在获取到屏幕上的界面变化事件时,基于系统的辅助功能获取在当前屏幕中显示的至少部分组件;
从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;
根据测试指令对所述若干个目标组件执行相应的操作以完成测试。
可选地,所述获取在当前屏幕中显示的至少部分组件包括:
直接调用系统辅助服务中的指定方法,获取在当前屏幕中显示的至少部分组件。
可选地,所述系统为安卓系统,所述直接调用系统辅助服务中的指定方法包括:
基于测试框架UiAutomator,调用系统辅助服务Accessibility提供的getUiAutomationBrige()方法。
可选地,所述方法还包括:
与控制终端建立安卓调试桥ADB连接,通过所述ADB连接接收所述测试指令。
可选地,所述从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件包括:
从所述测试配置文件中读取出XML格式或JSON格式的组件信息,将读取的组件信息转换为对象集合;
遍历所述对象集合,选取出与所述对象集合中的各对象分别匹配的目标组件。
可选地,所述目标组件对应于弹窗,所述根据测试指令对所述若干个目标组件执行相应的操作以完成测试包括:消除所述弹窗。
可选地,所述根据测试指令对所述若干个目标组件执行相应的操作以完成测试包括:
从所述测试指令中解析出方法名和/或参数列表,根据解析结果对所述若干个目标组件执行相应的操作以完成测试。
可选地,所述方法由测试构件实现。
可选地,所述测试构件为Jar包。
依据本发明的另一方面,提供了一种应用的测试装置,包括:
组件获取单元,适于在获取到屏幕上的界面变化事件时,基于系统的辅助功能获取在当前屏幕中显示的至少部分组件;
组件选取单元,适于从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;
测试单元,适于根据测试指令对所述若干个目标组件执行相应的操作以完成测试。
可选地,所述组件获取单元,适于直接调用系统辅助服务中的指定方法,获取在当前屏幕中显示的至少部分组件。
可选地,所述系统为安卓系统,
所述组件获取单元,适于基于测试框架UiAutomator,调用系统辅助服务Accessibility提供的getUiAutomationBrige()方法。
可选地,所述装置还包括:
连接单元,适于与控制终端建立安卓调试桥ADB连接,通过所述ADB连接接收所述测试指令。
可选地,所述组件选取单元,适于从所述测试配置文件中读取出XML格式或JSON格式的组件信息,将读取的组件信息转换为对象集合;遍历所述对象集合,选取出与所述对象集合中的各对象分别匹配的目标组件。
可选地,所述目标组件对应于弹窗,所述测试单元,适于消除所述弹窗。
可选地,所述测试单元,适于从所述测试指令中解析出方法名和/或参数列表,根据解析结果对所述若干个目标组件执行相应的操作以完成测试。
可选地,所述装置由测试构件实现。
可选地,所述测试构件为Jar包。
依据本发明的又一方面,提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述任一所述的方法。
依据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一所述的方法。
由上述可知,本发明的技术方案,在获取到屏幕上的界面变化事件时,获取在当前屏幕中显示的至少部分组件;从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;根据测试指令对所述若干个目标组件执行相应的操作以完成测试。该技术方案能够通过系统的辅助功能获取到组件,并进一步通过测试配置文件中的组件信息筛选出目标组件,能够实现对有用的组件进行点击等测试,对干扰的组件进行消除,避免了意外事件的干扰,提高了测试效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种应用的测试方法的流程示意图;
图2示出了根据本发明一个实施例的一种应用的测试装置的结构示意图;
图3示出了根据本发明一个实施例的电子设备的结构示意图;
图4示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种应用的测试方法的流程示意图。如图1所示,该方法包括:
步骤S110,在获取到屏幕上的界面变化事件时,基于系统的辅助功能获取在当前屏幕中显示的至少部分组件。
界面变化事件可以是应用界面的切换,也可以是展示了推送或广告等等。一般而言,当界面变化时,当前显示的组件也发生了变化,因此在本实施例中将获取组件的时机设置为获取到屏幕上的界面变化事件时,为实现这一点,可以监听获取屏幕上的界面变化事件。
步骤S120,从测试配置文件中读取组件信息,从组件中选取出与组件信息匹配的若干个目标组件。
测试配置文件可以是预先配置好保存在本地的,也可以是在测试过程中下发或是直接传递其中的内容的,其中保存有组件信息,实际上也就是描述需要对哪些组件进行处理。例如,当前屏幕上显示的应用界面包括多个控件,实际上每个控件可以对应于一个View组件,根据测试需求,可以选择将其中的一些组件作为目标组件。
步骤S130,根据测试指令对所述若干个目标组件执行相应的操作以完成测试。
可见,图1所示的方法,在获取到屏幕上的界面变化事件时,获取在当前屏幕中显示的至少部分组件;从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;根据测试指令对所述若干个目标组件执行相应的操作以完成测试。该技术方案能够通过系统的辅助功能获取到组件,并进一步通过测试配置文件中的组件信息筛选出目标组件,能够实现对有用的组件进行点击等测试,对干扰的组件进行消除,避免了意外事件的干扰,提高了测试效率。
在本发明的一个实施例中,上述方法中,在获取到屏幕上的界面变化事件时,基于系统的辅助功能获取在当前屏幕中显示的至少部分组件包括:直接调用系统辅助服务中的指定方法,获取在当前屏幕中显示的至少部分组件。
在本实施例中,仅需要调用指定方法即可,不需要获取全部辅助功能,区别于现有技术中需要安装一个APK并获得授权的方式,非常方便。可以实现利用系统的辅助功能来获取到这些组件,但仍然存在一些问题,例如需要依托一个APK并且声明所需权限,并要求用户去主动开启授权,非常的不便。因此在本实施例中不需要安装一个APK,也无需获得授权,即可以实现获取到所需的组件,来完成测试,简化了测试流程,节约了资源并提高了效率。
在本发明的一个实施例中,上述方法中,系统为安卓系统,直接调用系统辅助服务中的指定方法包括:基于测试框架UiAutomator,调用系统辅助服务Accessibility提供的getUiAutomationBrige()方法。
Accessibility是安卓系统提供的辅助功能对应的服务,一般而言,现有技术中使用辅助功能,也都需要利用该服务。UiAutomator则是安卓系统提供的测试框架,经过调试发现,通过UiAutomator实现调用getUiAutomationBrige()方法,可以获取到View组件,而不需要申请系统辅助服务Accessibility授权。
在本发明的一个实施例中,上述方法还包括:与控制终端建立安卓调试桥ADB连接,通过ADB连接接收测试指令。
例如,在PC终端上设置一个JAVA程序,在移动终端(测试机)上运行一个Jar包,二者建立ADB连接。通过ADB连接接收测试指令,例如点击某个按钮,输入某些信息等等。JAVA程序也可以通过长连接接收下发的任务,转化成一条条带有参数的命令,通过ADB传输到测试机中。
在本发明的一个实施例中,上述方法中,从测试配置文件中读取组件信息,从组件中选取出与组件信息匹配的若干个目标组件包括:从测试配置文件中读取出XML格式或JSON格式的组件信息,将读取的组件信息转换为对象集合;遍历对象集合,选取出与对象集合中的各对象分别匹配的目标组件。
例如,读取本地的XML文件,或是接收远端发送的JSON数据,读取到内存中,将组件信息转换为对象集合,也就是形成了一个内存数据集合。之后通过遍历的方式进行匹配,就可以找到满足条件的目标组件了。
在本发明的一个实施例中,上述方法中,目标组件对应于弹窗,根据测试指令对若干个目标组件执行相应的操作以完成测试包括:消除弹窗。
正如前文所述,测试过程中有可能有意外事件发生,例如测试某游戏应用时,弹出了天气应用的提示消息,很可能干扰到正常的测试进程,这时候应当对意外事件进行排除。在本实施例中,当确定目标组件是一个弹窗时,对其进行消除,避免干扰后续的测试。
在本发明的一个实施例中,上述方法中,根据测试指令对若干个目标组件执行相应的操作以完成测试包括:从测试指令中解析出方法名和/或参数列表,根据解析结果对若干个目标组件执行相应的操作以完成测试。
上一实施例中是对不属于测试任务中的组件进行排除,而本实施例则介绍了对属于测试任务中需要测试的组件的一些操作的实现,例如,通过ADB连接发送的测试指令中包括方法名和/或参数列表,根据这些内容可以确定对哪些组件执行哪些操作,例如点击、输入用户名密码等等。
在本发明的一个实施例中,上述方法由测试构件实现。具体来说,在本发明的一个实施例中,测试构件为Jar包。
图2示出了根据本发明一个实施例的一种应用的测试装置的结构示意图。如图2所示,应用的测试装置200包括:
组件获取单元210,适于在获取到屏幕上的界面变化事件时,基于系统的辅助功能获取在当前屏幕中显示的至少部分组件。
界面变化事件可以是应用界面的切换,也可以是展示了推送或广告等等。一般而言,当界面变化时,当前显示的组件也发生了变化,因此在本实施例中将获取组件的时机设置为获取到屏幕上的界面变化事件时,为实现这一点,可以监听获取屏幕上的界面变化事件。
组件选取单元220,适于从测试配置文件中读取组件信息,从组件中选取出与组件信息匹配的若干个目标组件。
测试配置文件可以是预先配置好保存在本地的,也可以是在测试过程中下发或是直接传递其中的内容的,其中保存有组件信息,实际上也就是描述需要对哪些组件进行处理。例如,当前屏幕上显示的应用界面包括多个控件,实际上每个控件可以对应于一个View组件,根据测试需求,可以选择将其中的一些组件作为目标组件。
测试单元230,适于根据测试指令对若干个目标组件执行相应的操作以完成测试。
可见,图2所示的装置,通过各单元的相互配合,在获取到屏幕上的界面变化事件时,获取在当前屏幕中显示的至少部分组件;从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;根据测试指令对所述若干个目标组件执行相应的操作以完成测试。该技术方案能够通过系统的辅助功能获取到组件,并进一步通过测试配置文件中的组件信息筛选出目标组件,能够实现对有用的组件进行点击等测试,对干扰的组件进行消除,避免了意外事件的干扰,提高了测试效率。
在本发明的一个实施例中,上述装置中,组件获取单元210,适于直接调用系统辅助服务中的指定方法,获取在当前屏幕中显示的至少部分组件。
在本实施例中,仅需要调用指定方法即可,不需要获取全部辅助功能,区别于现有技术中需要安装一个APK并获得授权的方式,非常方便。可以实现利用系统的辅助功能来获取到这些组件,但仍然存在一些问题,例如需要依托一个APK并且声明所需权限,并要求用户去主动开启授权,非常的不便。因此在本实施例中不需要安装一个APK,也无需获得授权,即可以实现获取到所需的组件,来完成测试,简化了测试流程,节约了资源并提高了效率。
在本发明的一个实施例中,上述装置中,系统为安卓系统,组件获取单元210,适于基于测试框架UiAutomator,调用系统辅助服务Accessibility提供的getUiAutomationBrige()方法。
Accessibility是安卓系统提供的辅助功能对应的服务,一般而言,现有技术中使用辅助功能,也都需要利用该服务。UiAutomator则是安卓系统提供的测试框架,经过调试发现,通过UiAutomator实现调用getUiAutomationBrige()方法,可以获取到View组件,而不需要申请系统辅助服务Accessibility授权。
在本发明的一个实施例中,上述装置还包括:连接单元,适于与控制终端建立安卓调试桥ADB连接,通过ADB连接接收测试指令。
例如,在PC终端上设置一个JAVA程序,在移动终端(测试机)上运行一个Jar包,二者建立ADB连接。通过ADB连接接收测试指令,例如点击某个按钮,输入某些信息等等。JAVA程序也可以通过长连接接收下发的任务,转化成一条条带有参数的命令,通过ADB传输到测试机中。
在本发明的一个实施例中,上述装置中,组件选取单元220,适于从测试配置文件中读取出XML格式或JSON格式的组件信息,将读取的组件信息转换为对象集合;遍历对象集合,选取出与对象集合中的各对象分别匹配的目标组件。
例如,读取本地的XML文件,或是接收远端发送的JSON数据,读取到内存中,将组件信息转换为对象集合,也就是形成了一个内存数据集合。之后通过遍历的方式进行匹配,就可以找到满足条件的目标组件了。
在本发明的一个实施例中,上述装置中,目标组件对应于弹窗,测试单元230,适于消除弹窗。
正如前文所述,测试过程中有可能有意外事件发生,例如测试某游戏应用时,弹出了天气应用的提示消息,很可能干扰到正常的测试进程,这时候应当对意外事件进行排除。在本实施例中,当确定目标组件是一个弹窗时,对其进行消除,避免干扰后续的测试。
在本发明的一个实施例中,上述装置中,测试单元230,适于从测试指令中解析出方法名和/或参数列表,根据解析结果对若干个目标组件执行相应的操作以完成测试。
上一实施例中是对不属于测试任务中的组件进行排除,而本实施例则介绍了对属于测试任务中需要测试的组件的一些操作的实现,例如,通过ADB连接发送的测试指令中包括方法名和/或参数列表,根据这些内容可以确定对哪些组件执行哪些操作,例如点击、输入用户名密码等等。
在本发明的一个实施例中,上述装置中,装置由测试构件实现。具体来说,在本发明的一个实施例中,上述装置中,测试构件为Jar包。
综上所述,本发明的技术方案,在获取到屏幕上的界面变化事件时,获取在当前屏幕中显示的至少部分组件;从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;根据测试指令对所述若干个目标组件执行相应的操作以完成测试。该技术方案能够通过系统的辅助功能获取到组件,并进一步通过测试配置文件中的组件信息筛选出目标组件,能够实现对有用的组件进行点击等测试,对干扰的组件进行消除,避免了意外事件的干扰,提高了测试效率。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的应用的测试装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图3示出了根据本发明一个实施例的电子设备的结构示意图。该电子设备包括处理器310和被安排成存储计算机可执行指令(计算机可读程序代码)的存储器320。存储器320可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器320具有存储用于执行上述方法中的任何方法步骤的计算机可读程序代码331的存储空间330。例如,用于存储计算机可读程序代码的存储空间330可以包括分别用于实现上面的方法中的各种步骤的各个计算机可读程序代码331。计算机可读程序代码331可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图4所述的计算机可读存储介质。图4示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质400存储有用于执行根据本发明的方法步骤的计算机可读程序代码331,可以被电子设备300的处理器310读取,当计算机可读程序代码331由电子设备300运行时,导致该电子设备300执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算机可读程序代码331可以执行上述任一实施例中示出的方法。计算机可读程序代码331可以以适当形式进行压缩。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明的实施例公开了A1、一种应用的测试方法,包括:
在获取到屏幕上的界面变化事件时,基于系统的辅助功能获取在当前屏幕中显示的至少部分组件;
从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;
根据测试指令对所述若干个目标组件执行相应的操作以完成测试。
A2、如A1所述的方法,其中,所述基于系统的辅助功能获取在当前屏幕中显示的至少部分组件包括:
直接调用系统辅助服务中的指定方法,获取在当前屏幕中显示的至少部分组件。
A3、如A2所述的方法,其中,所述系统为安卓系统,所述直接调用系统辅助服务中的指定方法包括:
基于测试框架UiAutomator,调用系统辅助服务Accessibility提供的getUiAutomationBrige()方法。
A4、如A1所述的方法,其中,所述方法还包括:
与控制终端建立安卓调试桥ADB连接,通过所述ADB连接接收所述测试指令。
A5、如A1所述的方法,其中,所述从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件包括:
从所述测试配置文件中读取出XML格式或JSON格式的组件信息,将读取的组件信息转换为对象集合;
遍历所述对象集合,选取出与所述对象集合中的各对象分别匹配的目标组件。
A6、如A1所述的方法,其中,所述目标组件对应于弹窗,所述根据测试指令对所述若干个目标组件执行相应的操作以完成测试包括:消除所述弹窗。
A7、如A1所述的方法,其中,所述根据测试指令对所述若干个目标组件执行相应的操作以完成测试包括:
从所述测试指令中解析出方法名和/或参数列表,根据解析结果对所述若干个目标组件执行相应的操作以完成测试。
A8、如A1所述的方法,其中,所述方法由测试构件实现。
A9、如A8所述的方法,其中,所述测试构件为Jar包。
本发明的实施例还公开了B10、一种应用的测试装置,包括:
组件获取单元,适于在获取到屏幕上的界面变化事件时,基于系统的辅助功能获取在当前屏幕中显示的至少部分组件;
组件选取单元,适于从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;
测试单元,适于根据测试指令对所述若干个目标组件执行相应的操作以完成测试。
B11、如B10所述的装置,其中,
所述组件获取单元,适于直接调用系统辅助服务中的指定方法,获取在当前屏幕中显示的至少部分组件。
B12、如B11所述的装置,其中,所述系统为安卓系统,
所述组件获取单元,适于基于测试框架UiAutomator,调用系统辅助服务Accessibility提供的getUiAutomationBrige()方法。
B13、如B10所述的装置,其中,所述装置还包括:
连接单元,适于与控制终端建立安卓调试桥ADB连接,通过所述ADB连接接收所述测试指令。
B14、如B10所述的装置,其中,
所述组件选取单元,适于从所述测试配置文件中读取出XML格式或JSON格式的组件信息,将读取的组件信息转换为对象集合;遍历所述对象集合,选取出与所述对象集合中的各对象分别匹配的目标组件。
B15、如B10所述的装置,其中,所述目标组件对应于弹窗,所述测试单元,适于消除所述弹窗。
B16、如B10所述的装置,其中,
所述测试单元,适于从所述测试指令中解析出方法名和/或参数列表,根据解析结果对所述若干个目标组件执行相应的操作以完成测试。
B17、如B10所述的装置,其中,所述装置由测试构件实现。
B18、如B17所述的装置,其中,所述测试构件为Jar包。
本发明的实施例还公开了C19、一种电子设备,其中,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如A1-A9中任一项所述的方法。
本发明的实施例还公开了D20、一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如A1-A9中任一项所述的方法。
Claims (10)
1.一种应用的测试方法,包括:
在获取到屏幕上的界面变化事件时,基于系统的辅助功能获取在当前屏幕中显示的至少部分组件;
从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;
根据测试指令对所述若干个目标组件执行相应的操作以完成测试。
2.如权利要求1所述的方法,其中,所述基于系统的辅助功能获取在当前屏幕中显示的至少部分组件包括:
直接调用系统辅助服务中的指定方法,获取在当前屏幕中显示的至少部分组件。
3.如权利要求2所述的方法,其中,所述系统为安卓系统,所述直接调用系统辅助服务中的指定方法包括:
基于测试框架UiAutomator,调用系统辅助服务Accessibility提供的getUiAutomationBrige()方法。
4.如权利要求1所述的方法,其中,所述方法还包括:
与控制终端建立安卓调试桥ADB连接,通过所述ADB连接接收所述测试指令。
5.一种应用的测试装置,包括:
组件获取单元,适于在获取到屏幕上的界面变化事件时,基于系统的辅助功能获取在当前屏幕中显示的至少部分组件;
组件选取单元,适于从测试配置文件中读取组件信息,从所述组件中选取出与所述组件信息匹配的若干个目标组件;
测试单元,适于根据测试指令对所述若干个目标组件执行相应的操作以完成测试。
6.如权利要求5所述的装置,其中,
所述组件获取单元,适于直接调用系统辅助服务中的指定方法,获取在当前屏幕中显示的至少部分组件。
7.如权利要求6所述的装置,其中,所述系统为安卓系统,
所述组件获取单元,适于基于测试框架UiAutomator,调用系统辅助服务Accessibility提供的getUiAutomationBrige()方法。
8.如权利要求5所述的装置,其中,所述装置还包括:
连接单元,适于与控制终端建立安卓调试桥ADB连接,通过所述ADB连接接收所述测试指令。
9.一种电子设备,其中,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810953611.6A CN108920384A (zh) | 2018-08-21 | 2018-08-21 | 应用的测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810953611.6A CN108920384A (zh) | 2018-08-21 | 2018-08-21 | 应用的测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108920384A true CN108920384A (zh) | 2018-11-30 |
Family
ID=64405240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810953611.6A Pending CN108920384A (zh) | 2018-08-21 | 2018-08-21 | 应用的测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920384A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897606A (zh) * | 2019-05-06 | 2020-11-06 | 北京奇虎科技有限公司 | 一种弹框的处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851667A (zh) * | 2006-02-15 | 2006-10-25 | 华为技术有限公司 | 一种图形用户界面的测试方法和系统 |
CN101488085A (zh) * | 2008-01-17 | 2009-07-22 | 中兴通讯股份有限公司 | 软件接口测试方法和装置 |
CN104142793A (zh) * | 2014-07-26 | 2014-11-12 | 珠海市君天电子科技有限公司 | 一种模拟点击终端控件的方法及装置 |
CN105786687A (zh) * | 2014-12-22 | 2016-07-20 | 博雅网络游戏开发(深圳)有限公司 | 移动应用测试方法和装置 |
US9600401B1 (en) * | 2016-01-29 | 2017-03-21 | International Business Machines Corporation | Automated GUI testing |
-
2018
- 2018-08-21 CN CN201810953611.6A patent/CN108920384A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851667A (zh) * | 2006-02-15 | 2006-10-25 | 华为技术有限公司 | 一种图形用户界面的测试方法和系统 |
CN101488085A (zh) * | 2008-01-17 | 2009-07-22 | 中兴通讯股份有限公司 | 软件接口测试方法和装置 |
CN104142793A (zh) * | 2014-07-26 | 2014-11-12 | 珠海市君天电子科技有限公司 | 一种模拟点击终端控件的方法及装置 |
CN105786687A (zh) * | 2014-12-22 | 2016-07-20 | 博雅网络游戏开发(深圳)有限公司 | 移动应用测试方法和装置 |
US9600401B1 (en) * | 2016-01-29 | 2017-03-21 | International Business Machines Corporation | Automated GUI testing |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897606A (zh) * | 2019-05-06 | 2020-11-06 | 北京奇虎科技有限公司 | 一种弹框的处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109308259A (zh) | 应用的测试方法和装置 | |
CN104598380B (zh) | 一种基于控件的自动化测试方法及系统 | |
CN105573755B (zh) | 一种应用Activity渲染时间获取方法和装置 | |
CN106483860B (zh) | 针对plc的数据自动采集中间件及其使用方法 | |
CN110134386A (zh) | 一种程序编辑方法和装置 | |
CN105045643B (zh) | 安卓系统中Launcher的启动方法及装置 | |
CN108124187A (zh) | 交互视频的生成方法及装置 | |
CN105608000B (zh) | 获取代码覆盖率数据的方法及装置 | |
CN106844136A (zh) | 一种程序崩溃信息的收集方法及系统 | |
CN104200159B (zh) | 配置应用程序的权限的方法及装置 | |
JP2014510482A (ja) | モバイル・コミュニケーション・デバイスのコンテンツをテストするシステムおよび方法 | |
CN105550104B (zh) | 应用程序性能测试方法及装置 | |
CN108132876B (zh) | 一种基于注入方式的嵌入式软件目标码单元测试方法 | |
CN108200643A (zh) | 一种定位智能终端的方法、装置 | |
CN107609004A (zh) | 应用程序埋点方法和装置、计算机设备和存储介质 | |
CN104915239B (zh) | 使用容器进行多进程启动的方法及装置 | |
CN106941672A (zh) | 应用软件异常处理的方法及装置 | |
CN108829688A (zh) | 跨语种交互的实现方法和装置 | |
CN109117208A (zh) | 信息分享方法、装置、用户终端及可读存储介质 | |
CN108920384A (zh) | 应用的测试方法和装置 | |
CN108846264A (zh) | 代码加固方法、装置、智能终端和计算机可读存储介质 | |
CN109344058B (zh) | 一种小程序自动化测试方法 | |
CN110865941A (zh) | 接口测试用例生成方法、装置和系统 | |
CN114285764A (zh) | 一种抓包方法和装置、以及存储介质 | |
CN106547425A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181130 |