CN113836037B - 界面交互的测试方法、装置、设备及存储介质 - Google Patents
界面交互的测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113836037B CN113836037B CN202111225176.3A CN202111225176A CN113836037B CN 113836037 B CN113836037 B CN 113836037B CN 202111225176 A CN202111225176 A CN 202111225176A CN 113836037 B CN113836037 B CN 113836037B
- Authority
- CN
- China
- Prior art keywords
- test
- tested
- extracting
- script
- interface interaction
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 705
- 230000003993 interaction Effects 0.000 title claims abstract description 130
- 238000013515 script Methods 0.000 claims abstract description 167
- 238000000034 method Methods 0.000 claims abstract description 105
- 230000002452 interceptive effect Effects 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims description 60
- 238000000605 extraction Methods 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000012827 research and development Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 238000010276 construction Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000010998 test method Methods 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction 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
-
- 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/3696—Methods or tools to render software testable
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
技术领域
本发明涉及研发管理领域,尤其涉及一种界面交互的测试方法、装置、设备及存储介质。
背景技术
随着计算机技术与互联网技术的高速发展,每年都有大量的软件被开发,同时,由于这些软件日常的更新、升级,为保证这些软件在各种移动终端或浏览器上的运行正常,在发布之前需要进行大量的测试,以确保各业务功能点是否运行正常。
在现有的技术中,在对应用的业务功能点进行测试时,单次只能调用单台设备运行指定的测试脚本,并实时对测试脚本的运行情况进行处理,不能自动调用多个设备运行各自的测试脚本自动进行测试并生成测试报告,使得测试操作复杂,测试效率低下。
发明内容
本发明的主要目的在于解决现有技术中进行界面交互的测试时操作复杂,测试效率低的技术问题。
本发明第一方面提供了一种界面交互的测试方法,包括:接收来自测试终端的界面交互测试请求,并提取所述界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;创建与所述设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程,其中,所述设备数量至少为一个;根据所述测试模式信息,在预先配置的测试脚本库中提取所述测试子进程对应的测试脚本;执行所述测试子进程,调取对应的测试脚本对所述待测试设备上的界面进行交互的测试,得到界面交互的测试报告。
可选的,在本发明第一方面的第一种实现方式中,所述根据所述测试模式信息,在预先配置的测试脚本库中提取所述测试子进程对应的测试脚本包括:解析所述测试模式信息,得到所述测试终端对应的测试模式,其中,所述测试模式包括兼容性测试模式和回归测试模式;若所述测试模式为兼容性测试模式,则在预先配置的测试脚本库中提取所有测试脚本;若所述测试模式为回归测试模式,则提取所述测试子进程的进程编码,根据所述进程编码在预先配置的测试脚本库中提取所述进程编码对应的测试脚本。
可选的,在本发明第一方面的第二种实现方式中,所述执行所述测试子进程,调取对应的测试脚本对所述待测试设备上显示的界面进行交互的测试,得到界面交互的测试报告包括:执行所述测试子进程,调取对应的测试脚本执行对应的测试用例,其中,所述测试用例为基于所述待测试设备的界面上的操作按钮生成的控制流程;对所述待测试设备的屏幕页面进行截图,调用Airtest图像识别工具对得到的屏幕截图进行按钮识别,得到屏幕页面中包含的备选按钮图像;判断识别到的所述备选按钮图像中是否包含所述测试用例中的操作按钮的图像;若包含所述操作按钮的图像,则自动点击所述操作按钮,并获取对应的点击结果;若不包含所述操作按钮的图像,则提取所述待测试设备的屏幕页面的页面数据,调用poco控件识别工具查找所述页面数据中包含的操作按钮,自动点击所述操作按钮,并获取对应的点击结果;根据所述点击结果生成界面交互的测试报告。
可选的,在本发明第一方面的第三种实现方式中,所述提取所述待测试设备的屏幕页面的页面数据,调用poco控件识别工具查找所述页面数据中包含的操作按钮包括:调用控件识别工具锁定所述待测试设备的屏幕页面,提取所述屏幕页面对应的页面数据;在所述页面数据中查找页面中包含的备选按钮的按钮文本;提取所述备选按钮的按钮文本的文本属性的实际值,得到备选按钮实际文本;根据所述测试用例中的操作按钮的操作按钮实际本文对所述备选按钮实际文本进行筛选,得到所述测试用例中的操作按钮。
可选的,在本发明第一方面的第四种实现方式中,所述执行所述测试子进程,调取对应的测试脚本对所述待测试设备上的界面进行交互的测试,得到界面交互的测试报告还包括:在所述对所述待测试设备的屏幕页面进行截图之前,响应于所述测试子进程的执行命令,生成屏幕录制进程;所述屏幕录制进程调用预置的屏幕录制工具对所述待测试设备的测试过程进行屏幕录制,得到所述测试子进程对应的屏幕录制文件。
可选的,在本发明第一方面的第五种实现方式中,在所述根据所述点击结果生成界面交互的测试报告之后,还包括:解析所述测试报告,提取所述测试报告中包含的失败记录;提取所述失败记录的失败编码和失败时间;根据所述失败记录提取所述失败记录对应的屏幕录制视频;提取所述失败时间对应的屏幕录制视频片段,生成错误记录。
可选的,在本发明第一方面的第六种实现方式中,在所述接收来自测试终端的界面交互测试请求之前,还包括:获取待进行界面交互测试的应用的待测交互内容;根据所述待测交互内容基于Airtest IDE工具中的Airtest图像识别和poco控件识别模式编写测试用例;根据所述测试用例构建测试脚本,将所述测试脚本保存至测试脚本库中。
本发明第二方面提供了一种界面交互的测试装置,包括:接收模块,用于接收来自测试终端的界面交互测试请求,并提取所述界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;进程分配模块,用于创建与所述设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程,其中,所述设备数量至少为一个;脚本提取模块,用于根据所述测试模式信息,在预先配置的测试脚本库中提取所述测试子进程对应的测试脚本;测试模块,用于执行所述测试子进程,调取对应的测试脚本对所述待测试设备上的界面进行交互的测试,得到界面交互的测试报告。
可选的,在本发明第二方面的第一种实现方式中,所述脚本提取模块包括:解析单元,用于解析所述测试模式信息,得到所述测试终端对应的测试模式,其中,所述测试模式包括兼容性测试模式和回归测试模式;第一脚本提取单元,用于若所述测试模式为兼容性测试模式,则在预先配置的测试脚本库中提取所有测试脚本;第二脚本提取单元,用于若所述测试模式为回归测试模式,则提取所述测试子进程的进程编码,根据所述进程编码在预先配置的测试脚本库中提取所述进程编码对应的测试脚本。
可选的,在本发明第二方面的第二种实现方式中,所述测试模块包括:
执行单元,用于执行所述测试子进程,调取对应的测试脚本执行对应的测试用例,其中,所述测试用例为基于所述待测试设备的界面上的操作按钮生成的控制流程;按钮识别单元,用于对所述待测试设备的屏幕页面进行截图,调用Airtest图像识别工具对得到的屏幕截图进行按钮识别,得到屏幕页面中包含的备选按钮图像;判断单元,用于判断识别到的所述备选按钮图像中是否包含所述测试用例中的操作按钮的图像;第一点击单元,用于若包含所述操作按钮的图像,则自动点击所述操作按钮,并获取对应的点击结果;第二点击单元,用于若不包含所述操作按钮的图像,则提取所述待测试设备的屏幕页面的页面数据,调用poco控件识别工具查找所述页面数据中包含的操作按钮,自动点击所述操作按钮,并获取对应的点击结果;报告生成单元,用于根据所述点击结果生成界面交互的测试报告。
可选的,在本发明第二方面的第三种实现方式中,所述第二点击单元还包括:数据提取子单元,用于调用控件识别工具锁定所述待测试设备的屏幕页面,提取所述屏幕页面对应的页面数据;按钮文本查找单元,用于在所述页面数据中查找页面中包含的备选按钮的按钮文本;实际值提取单元,用于提取所述备选按钮的按钮文本的文本属性的实际值,得到备选按钮实际文本;按钮文本筛选单元,用于根据所述测试用例中的操作按钮的操作按钮实际本文对所述备选按钮实际文本进行筛选,得到所述测试用例中的操作按钮。
可选的,在本发明第二方面的第四种实现方式中,所述测试模块还包括屏幕录制单元,所述屏幕录制单元具体用于:在所述对所述待测试设备的屏幕页面进行截图之前,响应于所述测试子进程的执行命令,生成屏幕录制进程;所述屏幕录制进程调用预置的屏幕录制工具对所述待测试设备的测试过程进行屏幕录制,得到所述测试子进程对应的屏幕录制文件。
可选的,在本发明第二方面的第五种实现方式中,所述界面交互的测试装置还包括错误记录生成模块,所述错误记录生成模块具体用于:解析所述测试报告,提取所述测试报告中包含的失败记录;提取所述失败记录的失败编码和失败时间;根据所述失败记录提取所述失败记录对应的屏幕录制视频;提取所述失败时间对应的屏幕录制视频片段,生成错误记录。
可选的,在本发明第二方面的第六种实现方式中,所述界面交互的测试装置还包括测试用例构建模块,所述测试用例构建模块具体用于:获取待进行界面交互测试的应用的待测交互内容;根据所述待测交互内容基于Airtest IDE工具中的Airtest图像识别和poco控件识别模式编写测试用例;根据所述测试用例构建测试脚本,将所述测试脚本保存至测试脚本库中。
本发明第三方面提供了一种界面交互的测试设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述界面交互的测试设备执行上述的界面交互的测试方法的步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的界面交互的测试方法的步骤。
本发明提供的技术方案中,接收来自测试终端的界面交互测试请求,提取界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;创建与设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程,其中,设备数量至少为一个;根据测试模式信息,在预先配置的测试脚本库中提取测试子进程对应的测试脚本;执行各测试子进程,根据测试子进程对应的测试脚本对待测试设备进行测试,得到应用测试报告。本发明实施例中,能够同时对不同待测设备进行界面交互的测试,简化测试的操作,且提高测试的效率。
附图说明
图1为本发明实施例中界面交互的测试方法的第一实施例的示意图;
图2为本发明实施例中界面交互的测试方法的第二实施例的示意图;
图3为本发明实施例中界面交互的测试方法的第三实施例的示意图;
图4为本发明实施例中界面交互的测试方法的第四实施例的示意图;
图5为本发明实施例中界面交互的测试装置的一个实施例示意图;
图6为本发明实施例中界面交互的测试装置的另一个实施例示意图;
图7为本发明实施例中界面交互的测试设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种界面交互的测试方法、装置、设备及存储介质,接收来自测试终端的界面交互测试请求,并提取界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;创建与设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程,其中,设备数量至少为一个;根据测试模式信息,在预先配置的测试脚本库中提取测试子进程对应的测试脚本;执行测试子进程,调取对应的测试脚本对待测试设备上的界面进行交互的测试,得到界面交互的测试报告。本发明实施例能够同时对不同待测设备进行界面交互的测试,简化测试的操作,且提高测试的效率。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中界面交互的测试方法的一个实施例包括:
101、接收来自测试终端的界面交互测试请求,提取界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;
可以理解的是,本发明的执行主体可以为界面交互的测试装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
本实施例中所述的待测试设备可以为智能手机或平板等终端设备,其中,该待测试设备上安装有待测试的应用软件;所述测试终端可以为个人计算机(PC)、或服务器;预先将待测试设备与测试终端进行通讯连接,其中,在进行通讯连接时可以通过有线连接例如通用串行总线(USB,Universal Serial Bus)进行连接,或通过如无线电,无线保真(WIFI,Wireless Fidelity)等技术进行无线连接。
接收来自测试终端的界面交互测试请求,解析所述界面交互测试请求包含的具体测试指令,该测试指令中包含预先设置好的当前测试请求对应的测试模式信息和待测试的设备数量,其中,所述设备数量为至少一个。具体地,所述测试模式可以包含至少一个,在进行测试时不同的待测试设备可以对应不同的待测试模式,也即是说,可以对连接在测试终端上的待测试设备进行不同测试模式的具体测试。
102、创建与设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程;
在前述步骤中获得待测试设备的设备数量后,根据设备数量利用Python中的多进程管理模块(multiprocessing模块)创建等数量的子进程,每个待测设备单独占用一个子进程。
其中,multiprocessing模块可以通过Process对象来创建一个进程,该创建的进程可以运行在Python程序内部编写的函数。
103、根据测试模式信息,在预先配置的测试脚本库中提取测试子进程对应的测试脚本;
根据获取到的测试模式,在预先配置的测试脚本库中提取所述测试子进程对应的测试脚本,其中,所述测试脚本是预先根据具体要测试的业务点预先编写的,所述测试模式是预先根据待测的具体业务进行确定的,该测试模式可以包括兼容性测试和业务回归测试;根据测试模式在测试脚本库中提取出当前待测试设备的测试子进程对应的测试脚本。
104、执行测试子进程,调取对应的测试脚本对待测试设备上的界面进行交互的测试,得到界面交互的测试报告。
得到各测试子进程对应的测试脚本后,执行测试脚本对所述设备进行测试,针对于每个测试子进程,串行运行所述待测试设备对应的测试脚本,具体地,本实施例中可以使用的Airtest中的图像识别功能和/或poco控件识别功能进行测试,针对于测试脚本中待测的操作,获取各操作对应的待点击按钮的按钮图像或按钮文本。Airtest是一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架可以通过用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,也可以基于poco的搜索框架,通过控件的名称,编码之类的标识来定位目标控件,然后调用函数方法,例如click(),swip()等方法来对目标控件进行点击或是其他操作。
在运行测试脚本的过程中,获取待测设备在运行应用时展示的界面信息,根据该界面信息,确定测试脚本中待进行界面交互的交互位置,根据目标交互位置执行测试脚本中预先编写好的操作,并记录操作用时和操作结果。
本发明实施例中,能够同时对不同待测设备进行界面交互的测试,简化测试的操作,且提高测试的效率。
请参阅图2,本发明实施例中界面交互的测试方法的第二实施例包括:
201、接收来自测试终端的界面交互测试请求,并提取界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;
接收来自测试终端的界面交互测试请求,解析所述界面交互测试请求包含的具体测试指令,其中,所述测试指令中包含预先设置好的当前测试请求对应的测试模式信息和待测试的设备数量,其中,所述设备数量为至少一个。具体地,所述测试模式可以为至少一个,在进行测试时不同的待测试设备可以对应不同的待测试模式。
202、创建与设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程;
获得待测试设备的设备数量后,根据设备数量调用本实施例中预先通过python编写代码得到的自动化测试框架中的多进程管理模块(即multiprocessing模块)创建等数量的子进程,使得每个待测设备单独占用一个子进程。
203、解析测试模式信息,得到测试终端对应的测试模式;
本实施例中的自动测试方法可以进行不同种类的测试,其中测试的模式是预先根据要进行测试的业务预先设定的,其中,测试模式包括兼容性测试模式和回归测试模式,在提取测试脚本前首先提取待测试设备预设的测试模式,判断所述测试模式为兼容性测试模式还是回归测试模式。
204、若测试模式为兼容性测试模式,则在预先配置的测试脚本库中提取所有测试脚本;
若为兼容性测试模式,则在预先配置的测试脚本库中提取所有测试脚本,后续当前的子进程串行运行提取到的所有测试脚本,其中,预先对所述测试脚本库中的测试脚本进行排序,并根据具体的排序信息获取脚本编码,根据脚本编码对应的测试脚本对应的测试功能选择具体的测试脚本。
205、执行测试子进程,调取对应的测试脚本执行对应的测试用例;
206、对待测试设备的屏幕页面进行截图,调用Airtest图像识别工具对得到的屏幕截图进行按钮识别,得到屏幕页面中包含的备选按钮图像;
所述子进程调用所述待测试设备执行所述子进程对应的测试脚本中包含的测试用例,其中,所述测试用例为基于所述待测试设备的界面上的操作按钮生成的控制流程。
在本步骤中,测试用例在执行过程中的每一步骤时都需要进行截图,得到截图后,调用Airtest IDE中的Airtest图像识别工具对得到的屏幕截图进行图像识别,得到屏幕页面中包含的全部按钮图像,即备选按钮图像。
207、判断识别到的备选按钮图像中是否包含测试用例中的操作按钮的图像;
208、若包含操作按钮的图像,则自动点击操作按钮,并获取对应的点击结果;
209、根据点击结果生成界面交互的测试报告。
判断识别到的所述备选按钮图像中包含有所述测试用例对应的操作按钮的图像,本实施例中所述的Airtest IDE是一个开源的跨平台的UI自动化测试编辑器,能够自动执行应用的测试。
具体地,有些图像元素在多台设备上进行图像识别时图像识别不稳定,同一张图片在不同设备上识别阈值不同,而且存在同一台设备不同时间运行,识别准确性有差异的情况,此时将图像识别的全局阈值向下调整,以提高按钮识别的几率;此外,还可以针对个别待测设备的机型,针对性自定义图像阈值。若使用Airtest图像识别工具找到对应的按钮,则自动点击所述操作按钮,并获取对应的点击结果。
此外,在识别到测试用例对应的操作按钮的图像后,由于某些待测试设备加载较慢,使得在按钮元素已经出现但还不能都进行交互时就执行了自动点击,或由于某些待测试设备加载较慢,使得两次点击操作几乎同时发生;为避免上述的情况导致第二次点击失败,在两次点击中间加入预置的sleep等待时间,以保证按钮元素的正常点击。
本发明实施例中,能够同时对不同待测设备进行界面交互的测试,简化测试的操作,且提高测试的效率。
请参阅图3,本发明实施例中界面交互的测试方法的第三实施例包括:
在本实施例中进行具体的自动测试前,需要获取进行界面交互测试的应用的待测交互内容,针对需要测试的交互内容预先编写测试用例;根据待测交互内容基于AirtestIDE工具中的Airtest图像识别和poco控件识别模式编写测试用例;其中,在测试用例的编写是需要根据待测试的设备的具体机型等信息确定对应的图像识别阈值和sleep等待时间等信息,根据所述测试用例构建测试脚本,将所述测试脚本保存至测试脚本库中。
301、接收来自测试终端的界面交互测试请求,提取界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;
302、创建与设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程;
本实施例中步骤301和步骤302中内容与前述实施例中步骤101和步骤102中内容基本相同,故在此不再赘述。
303、解析测试模式信息,得到测试终端对应的测试模式;
本实施例中的自动测试方法可以进行不同种类的测试,其中测试的模式是预先根据要进行测试的业务预先设定的,其中,测试模式包括兼容性测试模式和回归测试模式,在提取测试脚本前首先提取待测试设备预设的测试模式,判断所述测试模式为兼容性测试模式还是回归测试模式。
304、若测试模式为回归测试模式,则提取测试子进程的进程编码,根据进程编码在预先配置的测试脚本库中提取进程编码对应的测试脚本;
若所述测试模式为回归测试模式,则提取所述测试子进程的进程编码,根据当前子进程的进程编码确定对应的待测试设备的需要进行回归测试的具体测试部分,并在预先配置的测试脚本库中提取所述根据具体测试部分对应的测试脚本,其中,预先对所述测试脚本库中的测试脚本进行排序,并根据具体的排序信息获取脚本编码,根据脚本编码对应的测试脚本对应的测试功能选择具体的测试脚本。
305、执行测试子进程,调取对应的测试脚本执行对应的测试用例;
306、对待测试设备的屏幕页面进行截图,调用Airtest图像识别工具对得到的屏幕截图进行按钮识别,得到屏幕页面中包含的备选按钮图像;
307、判断识别到的备选按钮图像中是否包含测试用例中的操作按钮的图像;
所述子进程调用所述待测试设备执行所述子进程对应的测试脚本中包含的测试用例,其中,在本步骤中,测试用例在执行过程中的每一步骤时都需要进行截图,得到截图后,调用Airtest图像识别工具对得到的屏幕截图进行图像识别,判断是否查找到所述测试用例对应的操作按钮的图像。具体地,有些图像元素在多台设备上进行图像识别时图像识别不稳定,同一张图片在不同设备上识别阈值不同,而且存在同一台设备不同时间运行,识别准确性有差异的情况,此时将图像识别的全局阈值向下调整,以提高按钮识别的几率;此外,还可以针对个别待测设备的机型,针对性自定义图像阈值。
308、若不包含操作按钮的图像,则提取待测试设备的屏幕页面的页面数据,调用poco控件识别工具查找页面数据中包含的操作按钮;
309、自动点击操作按钮,并获取对应的点击结果,根据点击结果生成测试报告。
若使用Airtest图像识别工具找不到对应的按钮元素,则可以获取待测试设备中包含的页面数据,调用poco控件识别工具对所述页面数据进行识别从而查找出对应的按钮坐标,举具体的例子进行说明,在进行UI测试时,一般文本属性(即text属性)的文本数据不会随UI版本变化,则可以提取页面中的文本属性的文本数据,根据文本属性的文本数据查找所述测试用例中需要点击的按钮的按钮文本,得到对应的操作按钮;当用名称属性的文本数据没有随UI版本变化,还可以使用名称属性(即name属性)的文本数据进行查找;待查找到操作按钮后,点击所述操作按钮,获取对应的点击结果,并根据具体的点击结果和点击时间生成测试报告。
此外,在识别到按钮后为避免待测试设备加载较慢使得在按钮元素已经出现但还不能都进行交互时就执行了自动点击使得点击失败的状况和待测试设备加载较慢使得两次点击操作几乎同时发生,导致第二次点击失败的状况,在两次点击中间加入预置的sleep等待时间。
此外,本实施例中,响应于测试子进程的执行命令,生成屏幕录制进程;屏幕录制进程调用预置的屏幕录制工具对待测试设备的测试过程进行屏幕录制,得到测试子进程对应的屏幕录制文件。具体地,脚本运行前,在setup()中调用RecordScreen()进行录屏的。
本发明实施例中,能够同时对不同待测设备进行界面交互的测试,简化测试的操作,且提高测试的效率。
请参阅图4,本发明实施例中界面交互的测试方法的第四实施例包括:
在本实施例中对界面交互进行具体的自动测试前,利用python编写代码实现UI自动化测试框架,其中,UI指用户界面(User Interface),该UI自动化测试框架中包括如下组成部分:
logs_root,用于存放运行日志和测试报告,其中运行日志中包含运行过程截图、HTML测试报告、log文件及运行视频;
Spcrits,用于存放测试用例及测试脚本文件;
Config.ini,用于存放配置文件,具体可配置脚本目录、测试模式、运行设备、设备操作系统版本信息;
Constant.py,用于定义全局常量;
Main.py,为主函数执行入口;
Runner.py,为测试脚本执行器,其用于定义My Airtest Case类继承unittest工具类、连接设备、初始化测试套(即将多个测试用例文件装进测试套)、利用multiprocessiong模块(多进程管理模块)根据设备数量创建进程,并运行测试套以及录制运行视频;
Untils.py,用于提供通用工具函数,包括获取配置、获取连接设备、压缩文件、邮件发送测试报告等;
Video.py,用于使用OpenCV实现windows端录屏,可自定义视频帧率和录制时间间隔;
Report.py,为Airtest的原生报告功能,用于利用jinja2模板渲染HTML并生成脚本测试报告。
在进行测试前,需要获取待测试的应用的待测业务功能点,针对需要测试的业务功能点预先编写测试用例;根据待测业务功能点基于Airtest IDE工具中的Airtest图像识别和poco控件识别模式编写测试用例;其中,在测试用例的编写是需要根据待测试的设备的具体机型等信息确定对应的图像识别阈值和sleep等待时间等信息,根据所述测试用例构建测试脚本,将所述测试脚本保存至测试脚本库中。例如,要新增版本迭代回归测试,只需要在./scripts目录下新建版本迭代回归测试文件夹,例如文件夹名为“iterationTest.air”,将写好的测试用例文件放在该目录下,修改配置为对应文件夹名称前缀,例如iterationTest,则框架会根据设定的文件夹名称自动选择对应的测试用例文件执行。
401、接收来自测试终端的界面交互测试请求,提取界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;
402、创建与设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程;
本实施例中步骤401和步骤402与前述实施例中步骤101和102中基本相同个,故在此不再赘述。
403、解析测试模式信息,得到测试终端对应的测试模式;
本实施例中的自动测试方法可以进行不同种类的测试,其中测试的模式是预先根据要进行测试的业务预先设定的,其中,测试模式包括兼容性测试模式和回归测试模式,在提取测试脚本前首先提取待测试设备预设的测试模式,判断所述测试模式为兼容性测试模式还是回归测试模式。
404、若测试模式为兼容性测试模式,则在预先配置的测试脚本库中提取所有测试脚本;
405、若测试模式为回归测试模式,则提取测试子进程的进程编码,根据进程编码在预先配置的测试脚本库中提取进程编码对应的测试脚本;
若为兼容性测试模式,则在预先配置的测试脚本库中提取所有测试脚本,后续当前的子进程串行运行提取到的所有测试脚本;若所述测试模式为回归测试模式,则提取所述测试子进程的进程编码,根据当前子进程的进程编码确定对应的待测试设备的需要进行回归测试的具体测试部分,并在预先配置的测试脚本库中提取所述根据具体测试部分对应的测试脚本,其中,预先对所述测试脚本库中的测试脚本进行排序,并根据具体的排序信息获取脚本编码,根据脚本编码对应的测试脚本对应的测试功能选择具体的测试脚本,得到需要进行测试的测试脚本后,将的测试脚本装进测试套中等待进行测试。
406、执行测试子进程,调取对应的测试脚本执行对应的测试用例;
407、对待测试设备的屏幕页面进行截图,调用Airtest图像识别工具对得到的屏幕截图进行按钮识别,得到屏幕页面中包含的备选按钮图像;
408、判断识别到的备选按钮图像中是否包含测试用例中的操作按钮的图像;
409、若包含操作按钮的图像,则自动点击操作按钮,并获取对应的点击结果;
所述子进程调用所述待测试设备执行所述子进程对应的测试套中包含的测试脚本,即运行测试脚本中包含的测试用例。
同时,响应于测试子进程的执行命令,生成屏幕录制进程;屏幕录制进程调用预置的屏幕录制工具对待测试设备的测试过程进行屏幕录制,得到测试子进程对应的屏幕录制文件。具体地,脚本运行前,在setup()中调用RecordScreen()进行录屏的。
其中,在本步骤中,测试用例在执行过程中的每一步骤时都需要进行截图,得到截图后,调用Airtest图像识别工具对得到的屏幕截图进行图像识别,判断是否查找到所述测试用例对应的操作按钮。具体地,有些图像元素在多台设备上进行图像识别时图像识别不稳定,同一张图片在不同设备上识别阈值不同,而且存在同一台设备不同时间运行,识别准确性有差异的情况,此时将图像识别的全局阈值向下调整,以提高按钮识别的几率;此外,还可以针对个别待测设备的机型,针对性自定义图像阈值。若使用Airtest图像识别工具找到对应的按钮,则自动点击所述操作按钮,并获取对应的点击结果。
410、若不包含操作按钮的图像,则提取待测试设备的屏幕页面的页面数据,调用poco控件识别工具查找页面数据中包含的操作按钮,自动点击操作按钮,并获取对应的点击结果;
若使用Airtest图像识别工具找不到对应的按钮元素,则可以获取待测试设备中包含的页面数据,调用poco控件识别工具对所述页面数据进行识别从而查找出对应的按钮坐标。
在进行UI测试时,一般文本属性(即text属性)不会随UI版本变化,则可以提取页面中的文本属性的文本数据,根据文本属性的文本数据查找所述测试用例中需要点击的按钮的按钮文本,得到对应的操作按钮;具体地,可以通过调用控件识别工具锁定所述待测试设备的屏幕页面,提取所述屏幕页面对应的页面数据;在所述页面数据中查找页面中包含的备选按钮的按钮文本;提取所述备选按钮的按钮文本的文本属性的实际值,得到备选按钮实际文本;其中,此处实际文本的含义为剔除空格后的文本:例如,在实际的操作中发现某些操作按钮的text属性值前面包含有空格,导致自动进行测试时使得poco控件识别工具认为该按钮不是目标的操作按钮导致点击失败,故本实施例中需要对按钮文本中的空格等不包含实际含义的符号进行剔除,得到文本属性的实际值。
得到文本属性的实际值后,根据所述测试用例中的操作按钮的操作按钮实际本文对所述备选按钮实际文本进行筛选,查找出当前页面中与测试用例中的操作按钮的文本属性一致的按钮,得到所述测试用例中的操作按钮。
此外,当用名称属性的文本数据没有随UI版本变化,还可以使用名称属性(即name属性)的文本数据进行查找;待查找到操作按钮后,点击所述操作按钮,获取对应的点击结果,并根据具体的点击结果和点击时间生成测试报告。
在本实施例中,识别到按钮后为避免待测试设备加载较慢使得在按钮元素已经出现但还不能都进行交互时就执行了自动点击使得点击失败的状况和待测试设备加载较慢使得两次点击操作几乎同时发生,导致第二次点击失败的状况,在两次点击中间加入预置的sleep等待时间。
411、根据点击结果生成界面交互的测试报告;
在前述的步骤中,对每一个测试用例执行其中包含的点击操作并得到点击结果后,在teardown()中控制结束录屏,并调用Report()方法生成所有子进程的聚合报告。执行完毕,根据点击结果生成测试报告。
412、解析测试报告,提取测试报告中包含的失败记录;
413、提取失败记录的失败编码和失败时间;
414、根据失败记录提取失败记录对应的屏幕录制视频;
415、提取失败时间对应的屏幕录制视频片段,生成错误记录。
测试报告中包含测试执行过程录制的视频,HTML测试报告和运行过程截图,脚本执行完成后,可以通过回看视频结合HTML报告中的报错原因分析失败用例并定位原因。具体地,每跑完一个脚本,在teardown()中控制结束录屏,并调用Report()方法生成测试报告;全部子进程运行完毕后,在Finish()中调用report函数生成所有子进程的聚合报告。后续测试人员可以根据聚合报告和录屏信息查看失败记录中点击错误的具体视频内容,便于后续进行其他工作。
进一步地,所述界面交互的测试方法还包括:扩展新的测试类型,例如要新增版本迭代回归测试,只需要在./scripts目录下新建版本迭代回归测试文件夹,例如文件夹名为“iterationTest.air”,将写好的测试用例文件放在该目录下,修改配置为对应文件夹名称前缀iterationTest,则框架会自动选择对应的测试用例文件执行。
本发明实施例中,能够同时对不同待测设备进行界面交互的测试,简化测试的操作,且提高测试的效率。
上面对本发明实施例中界面交互的测试方法进行了描述,下面对本发明实施例中界面交互的测试装置进行描述,请参阅图5,本发明实施例中界面交互的测试装置一个实施例包括:
接收模块501,用于接收来自测试终端的界面交互测试请求,并提取所述界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;
进程分配模块502,用于创建与所述设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程,其中,所述设备数量至少为一个;
脚本提取模块503,用于根据所述测试模式信息,在预先配置的测试脚本库中提取所述测试子进程对应的测试脚本;
测试模块504,用于执行所述测试子进程,调取对应的测试脚本对所述待测试设备上的界面进行交互的测试,得到界面交互的测试报告。
本发明实施例能够同时对不同待测设备进行界面交互的测试,简化测试的操作,且提高测试的效率。
请参阅图6,本发明实施例中界面交互的测试装置的另一个实施例包括:
接收模块501,用于接收来自测试终端的界面交互测试请求,并提取所述界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;
进程分配模块502,用于创建与所述设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程,其中,所述设备数量至少为一个;
脚本提取模块503,用于根据所述测试模式信息,在预先配置的测试脚本库中提取所述测试子进程对应的测试脚本;
测试模块504,用于执行所述测试子进程,调取对应的测试脚本对所述待测试设备上的界面进行交互的测试,得到界面交互的测试报告。
在本申请的另一实施例中,所述脚本提取模块503包括:
解析单元5031,用于解析所述测试模式信息,得到所述测试终端对应的测试模式,其中,所述测试模式包括兼容性测试模式和回归测试模式;
第一脚本提取单元5032,用于若所述测试模式为兼容性测试模式,则在预先配置的测试脚本库中提取所有测试脚本;
第二脚本提取单元5033,用于若所述测试模式为回归测试模式,则提取所述测试子进程的进程编码,根据所述进程编码在预先配置的测试脚本库中提取所述进程编码对应的测试脚本。
在本申请的另一实施例中,所述测试模块504包括:
执行单元5041,用于执行所述测试子进程,调取对应的测试脚本执行对应的测试用例,其中,所述测试用例为基于所述待测试设备的界面上的操作按钮生成的控制流程;
按钮识别单元5042,用于对所述待测试设备的屏幕页面进行截图,调用Airtest图像识别工具对得到的屏幕截图进行按钮识别,得到屏幕页面中包含的备选按钮图像;
判断单元5043,用于判断识别到的所述备选按钮图像中是否包含所述测试用例中的操作按钮的图像;
第一点击单元5044,用于若包含所述操作按钮的图像,则自动点击所述操作按钮,并获取对应的点击结果;
第二点击单元5045,用于若不包含所述操作按钮的图像,则提取所述待测试设备的屏幕页面的页面数据,调用poco控件识别工具查找所述页面数据中包含的操作按钮,自动点击所述操作按钮,并获取对应的点击结果;
报告生成单元5046,用于根据所述点击结果生成界面交互的测试报告。
在本申请的另一实施例中,所述第二点击单元5045还包括:
数据提取子单元,用于调用控件识别工具锁定所述待测试设备的屏幕页面,提取所述屏幕页面对应的页面数据;
按钮文本查找单元,用于在所述页面数据中查找页面中包含的备选按钮的按钮文本;
实际值提取单元,用于提取所述备选按钮的按钮文本的文本属性的实际值,得到备选按钮实际文本;
按钮文本筛选单元,用于根据所述测试用例中的操作按钮的操作按钮实际本文对所述备选按钮实际文本进行筛选,得到所述测试用例中的操作按钮。
在本申请的另一实施例中,所述测试模块504还包括屏幕录制单元,所述屏幕录制单元具体用于:
在所述对所述待测试设备的屏幕页面进行截图之前,响应于所述测试子进程的执行命令,生成屏幕录制进程;
所述屏幕录制进程调用预置的屏幕录制工具对所述待测试设备的测试过程进行屏幕录制,得到所述测试子进程对应的屏幕录制文件。
在本申请的另一实施例中,所述界面交互的测试装置还包括错误记录生成模块505,所述错误记录生成模块505具体用于:
解析所述测试报告,提取所述测试报告中包含的失败记录;
提取所述失败记录的失败编码和失败时间;
根据所述失败记录提取所述失败记录对应的屏幕录制视频;
提取所述失败时间对应的屏幕录制视频片段,生成错误记录。。
在本申请的另一实施例中,所述界面交互的测试装置还包括测试用例构建模块,所述测试用例构建模块具体用于:
获取待进行界面交互测试的应用的待测交互内容;
根据所述待测交互内容基于Airtest IDE工具中的Airtest图像识别和poco控件识别模式编写测试用例;
根据所述测试用例构建测试脚本,将所述测试脚本保存至测试脚本库中。
本发明实施例能够同时对不同待测设备进行界面交互的测试,简化测试的操作,且提高测试的效率。
上面图5和图6从模块化功能实体的角度对本发明实施例中的界面交互的测试装置进行详细描述,下面从硬件处理的角度对本发明实施例中界面交互的测试设备进行详细描述。
图7是本发明实施例提供的一种界面交互的测试设备的结构示意图,该界面交互的测试设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对界面交互的测试设备700中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在界面交互的测试设备700上执行存储介质730中的一系列指令操作。
界面交互的测试设备700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和/或,一个或一个以上操作系统731,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图7示出的界面交互的测试设备结构并不构成对界面交互的测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机设备,该计算机设备可以是能够执行上述实施例中所述的界面交互的测试方法的任何一种设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述界面交互的测试方法的步骤。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述界面交互的测试方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种界面交互的测试方法,其特征在于,所述界面交互的测试方法包括:
接收来自测试终端的界面交互测试请求,并提取所述界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;
创建与所述设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程,其中,所述设备数量至少为一个;
根据所述测试模式信息,在预先配置的测试脚本库中提取所述测试子进程对应的测试脚本;
执行所述测试子进程,调取对应的测试脚本对所述待测试设备上的界面进行交互的测试,得到界面交互的测试报告;
所述根据所述测试模式信息,在预先配置的测试脚本库中提取所述测试子进程对应的测试脚本包括:解析所述测试模式信息,得到所述测试终端对应的测试模式,其中,所述测试模式包括兼容性测试模式和回归测试模式;若所述测试模式为兼容性测试模式,则在预先配置的测试脚本库中提取所有测试脚本;若所述测试模式为回归测试模式,则提取所述测试子进程的进程编码,根据所述进程编码在预先配置的测试脚本库中提取所述进程编码对应的测试脚本;
所述执行所述测试子进程,调取对应的测试脚本对所述待测试设备上显示的界面进行交互的测试,得到界面交互的测试报告包括:执行所述测试子进程,调取对应的测试脚本执行对应的测试用例,其中,所述测试用例为基于所述待测试设备的界面上的操作按钮生成的控制流程;对所述待测试设备的屏幕页面进行截图,调用Airtest图像识别工具对得到的屏幕截图进行按钮识别,得到所述屏幕页面中包含的备选按钮图像;判断识别到的所述备选按钮图像中是否包含所述测试用例中的操作按钮的图像;若包含所述操作按钮的图像,则自动点击所述操作按钮,并获取对应的点击结果;若不包含所述操作按钮的图像,则提取所述待测试设备的屏幕页面的页面数据,调用poco控件识别工具查找所述页面数据中包含的操作按钮,自动点击所述操作按钮,并获取对应的点击结果;根据所述点击结果生成界面交互的测试报告。
2.根据权利要求1所述的界面交互的测试方法,其特征在于,所述提取所述待测试设备的屏幕页面的页面数据,调用poco控件识别工具查找所述页面数据中包含的操作按钮包括:
调用控件识别工具锁定所述待测试设备的屏幕页面,提取所述屏幕页面对应的页面数据;
在所述页面数据中查找页面中包含的备选按钮的按钮文本;
提取所述备选按钮的按钮文本的文本属性的实际值,得到备选按钮实际文本;
根据所述测试用例中的操作按钮的操作按钮实际本文对所述备选按钮实际文本进行筛选,得到所述测试用例中的操作按钮。
3.根据权利要求2所述的界面交互的测试方法,其特征在于,所述执行所述测试子进程,调取对应的测试脚本对所述待测试设备上的界面进行交互的测试,得到界面交互的测试报告还包括:
在所述对所述待测试设备的屏幕页面进行截图之前,响应于所述测试子进程的执行命令,生成屏幕录制进程;
所述屏幕录制进程调用预置的屏幕录制工具对所述待测试设备的测试过程进行屏幕录制,得到所述测试子进程对应的屏幕录制文件。
4.根据权利要求3所述的界面交互的测试方法,其特征在于,在所述根据所述点击结果生成界面交互的测试报告之后,还包括:
解析所述测试报告,提取所述测试报告中包含的失败记录;
提取所述失败记录的失败编码和失败时间;
根据所述失败记录提取所述失败记录对应的屏幕录制视频;
提取所述失败时间对应的屏幕录制视频片段,生成错误记录。
5.根据权利要求1-4中任一项所述的界面交互的测试方法,其特征在于,在所述接收来自测试终端的界面交互测试请求之前,还包括:
获取待进行界面交互测试的应用的待测交互内容;
根据所述待测交互内容基于Airtest IDE工具中的Airtest图像识别和poco控件识别模式编写测试用例;
根据所述测试用例构建测试脚本,将所述测试脚本保存至测试脚本库中。
6.一种界面交互的测试装置,其特征在于,所述界面交互的测试装置包括:
接收模块,用于接收来自测试终端的界面交互测试请求,并提取所述界面交互测试请求中包含的测试模式信息和待测试设备的设备数量;
进程分配模块,用于创建与所述设备数量相同数量的测试子进程,并向每台待测试设备分配对应的测试子进程,其中,所述设备数量至少为一个;
脚本提取模块,用于根据所述测试模式信息,在预先配置的测试脚本库中提取所述测试子进程对应的测试脚本;
测试模块,用于执行所述测试子进程,调取对应的测试脚本对所述待测试设备上的界面进行交互的测试,得到界面交互的测试报告;
所述脚本提取模块包括:解析单元,用于解析所述测试模式信息,得到所述测试终端对应的测试模式,其中,所述测试模式包括兼容性测试模式和回归测试模式;第一脚本提取单元,用于若所述测试模式为兼容性测试模式,则在预先配置的测试脚本库中提取所有测试脚本;第二脚本提取单元,用于若所述测试模式为回归测试模式,则提取所述测试子进程的进程编码,根据所述进程编码在预先配置的测试脚本库中提取所述进程编码对应的测试脚本;
所述测试模块包括:执行单元,用于执行所述测试子进程,调取对应的测试脚本执行对应的测试用例,其中,所述测试用例为基于所述待测试设备的界面上的操作按钮生成的控制流程;按钮识别单元,用于对所述待测试设备的屏幕页面进行截图,调用Airtest图像识别工具对得到的屏幕截图进行按钮识别,得到屏幕页面中包含的备选按钮图像;判断单元,用于判断识别到的所述备选按钮图像中是否包含所述测试用例中的操作按钮的图像;第一点击单元,用于若包含所述操作按钮的图像,则自动点击所述操作按钮,并获取对应的点击结果;第二点击单元,用于若不包含所述操作按钮的图像,则提取所述待测试设备的屏幕页面的页面数据,调用poco控件识别工具查找所述页面数据中包含的操作按钮,自动点击所述操作按钮,并获取对应的点击结果;报告生成单元,用于根据所述点击结果生成界面交互的测试报告。
7.一种界面交互的测试设备,其特征在于,所述界面交互的测试设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述界面交互的测试设备执行如权利要求1-5中任一项所述的界面交互的测试方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-5中任一项所述界面交互的测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111225176.3A CN113836037B (zh) | 2021-10-21 | 2021-10-21 | 界面交互的测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111225176.3A CN113836037B (zh) | 2021-10-21 | 2021-10-21 | 界面交互的测试方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113836037A CN113836037A (zh) | 2021-12-24 |
CN113836037B true CN113836037B (zh) | 2024-04-05 |
Family
ID=78965695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111225176.3A Active CN113836037B (zh) | 2021-10-21 | 2021-10-21 | 界面交互的测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113836037B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763068A (zh) * | 2018-05-15 | 2018-11-06 | 福建天泉教育科技有限公司 | 一种基于机器学习的自动化测试方法及终端 |
CN110825618A (zh) * | 2019-10-10 | 2020-02-21 | 重庆金融资产交易所有限责任公司 | 一种生成测试用例的方法及相关装置 |
CN111625473A (zh) * | 2020-07-01 | 2020-09-04 | 北京字节跳动网络技术有限公司 | 接口测试用例生成方法、装置、存储介质和电子设备 |
WO2020233053A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 一种制作测试页面脚本的方法、装置、设备及存储介质 |
WO2021184725A1 (zh) * | 2020-03-16 | 2021-09-23 | 平安科技(深圳)有限公司 | 用户界面测试方法、装置、存储介质及计算机设备 |
-
2021
- 2021-10-21 CN CN202111225176.3A patent/CN113836037B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763068A (zh) * | 2018-05-15 | 2018-11-06 | 福建天泉教育科技有限公司 | 一种基于机器学习的自动化测试方法及终端 |
WO2020233053A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 一种制作测试页面脚本的方法、装置、设备及存储介质 |
CN110825618A (zh) * | 2019-10-10 | 2020-02-21 | 重庆金融资产交易所有限责任公司 | 一种生成测试用例的方法及相关装置 |
WO2021184725A1 (zh) * | 2020-03-16 | 2021-09-23 | 平安科技(深圳)有限公司 | 用户界面测试方法、装置、存储介质及计算机设备 |
CN111625473A (zh) * | 2020-07-01 | 2020-09-04 | 北京字节跳动网络技术有限公司 | 接口测试用例生成方法、装置、存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113836037A (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112270149B (zh) | 验证平台自动化集成方法、系统及电子设备和存储介质 | |
CN109308254B (zh) | 一种测试方法、装置及测试设备 | |
CN110825619A (zh) | 接口测试用例自动生成方法、装置及存储介质 | |
US11074162B2 (en) | System and a method for automated script generation for application testing | |
CN107133165B (zh) | 浏览器兼容性检测方法及装置 | |
CN114546738B (zh) | 服务器通用测试方法、系统、终端及存储介质 | |
CN110287098A (zh) | 自动创建测试脚本方法、服务器及计算机可读存储介质 | |
CN110928802A (zh) | 基于自动生成用例的测试方法、装置、设备及存储介质 | |
CN109614325B (zh) | 一种确定控件属性的方法及装置、电子设备和存储介质 | |
CN111459495A (zh) | 单元测试代码文件生成方法、电子装置及存储介质 | |
CN110362479B (zh) | 系统升级测试方法和系统 | |
CN113505082B (zh) | 应用程序测试方法及装置 | |
CN113704110A (zh) | 用户界面的自动化测试方法及装置 | |
CN112612690A (zh) | 一种用户界面信息处理方法、装置、电子设备及存储介质 | |
CN116166525A (zh) | 一种测试脚本的生成方法及装置 | |
CN112395182A (zh) | 自动化测试方法、装置、设备及计算机可读存储介质 | |
US7100039B2 (en) | Systems and methods for a bootstrap mechanism for software execution | |
CN110806891B (zh) | 嵌入式设备软件版本的生成方法及装置 | |
CN117370203A (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN116719736A (zh) | 一种用于测试软件界面的测试用例生成方法及装置 | |
CN113836037B (zh) | 界面交互的测试方法、装置、设备及存储介质 | |
US7882205B2 (en) | Device setting apparatus, device setting method, information acquiring apparatus, information acquiring method, storage medium, and program | |
CN111159028A (zh) | 网页测试方法及装置 | |
CN110838338A (zh) | 生物分析项目的建立系统、方法、存储介质、及电子设备 | |
CN113468076A (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 |