CN112306868A - 谷歌移动服务的自动测试方法、终端设备以及存储介质 - Google Patents
谷歌移动服务的自动测试方法、终端设备以及存储介质 Download PDFInfo
- Publication number
- CN112306868A CN112306868A CN202011160975.2A CN202011160975A CN112306868A CN 112306868 A CN112306868 A CN 112306868A CN 202011160975 A CN202011160975 A CN 202011160975A CN 112306868 A CN112306868 A CN 112306868A
- Authority
- CN
- China
- Prior art keywords
- test
- case
- report
- failed
- identification word
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 488
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 66
- 238000010586 diagram Methods 0.000 description 13
- 238000010998 test method Methods 0.000 description 10
- 238000013102 re-test Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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/3684—Test management for test design, e.g. generating new test cases
-
- 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)
- Telephone Function (AREA)
Abstract
本申请公开一种谷歌移动服务的自动测试方法、终端设备以及存储介质,其中方法包括:当设定的测试项目测试完成后,从测试报告中提取测试未通过的测试用例;获取测试未通过的测试用例的报告属性信息;针对每一个测试未通过的测试用例,执行以下重测试步骤:从报告属性信息中提取与设定测试项目对应的测试语句所需的参数数据;根据参数数据组装测试语句,并循环执行组装完成的测试语句,直至当前处理的测试用例通过测试。本申请旨在解决现有谷歌移动服务的测试中人工测试比较浪费时间和影响工作效率的问题。
Description
技术领域
本发明涉及谷歌移动服务技术领域,尤其涉及一种谷歌移动服务的自动测试方法、终端设备以及存储介质。
背景技术
GMS全称为GoogleMobile Service,即谷歌移动服务。GMS是Google开发并推动Android(安卓)系统的动力,也是Android系统的灵魂所在。GMS认证包括:CTS、CTS-verifier、CTS-ON-GSI、GTS、STS、VTS、TVTS。搭载Android系统的电子产品(如平板)要在GMS测试中输出0fail(即零失败)报告。针对获取谷歌认证的测试手段,暂时没有较好的解决办法,基本上是加大投入人力以完成测试结果的输出。例如,测试人员单独将测试失败的测试用例测试10次或者20次左右,并且还要在测试人员时时盯着的情况下,这条失败的测试用例才有可能通过。因此这样的测试方法比较浪费时间和影响工作效率。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请实施例通过提供一种谷歌移动服务的自动测试方法、终端设备以及存储介质,本申请旨在解决现有谷歌移动服务的测试中人工测试比较浪费时间和影响工作效率的问题。
本申请实施例提供了一种谷歌移动服务的自动测试方法,所述方法包括:
当设定的测试项目测试完成后,从测试报告中提取测试未通过的测试用例;
获取所述测试未通过的测试用例的报告属性信息;
针对每一个测试未通过的测试用例,执行以下重测试步骤:
从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的参数数据;
根据所述参数数据组装测试语句,并循环执行组装完成的测试语句,直至当前处理的测试用例通过测试。
在一些实施例中,所述从测试报告中提取测试未通过的测试用例,包括:
将所述测试报告保存为预设格式;
采用可操作所述预设格式文件的工具打开所述测试报告;
调用所述工具的检索功能查找所述测试报告中的失败总数标识词,该失败总数标识词用于表示所述未通过的测试用例的总数;
调用所述工具的定位功能定位所述失败总数标识词的所在行或所在列获得所述未通过的测试用例的总数。
在一些实施例中,所述预设格式包括HTML格式或XML格式。
在一些实施例中,获取所述测试未通过的测试用例的报告属性信息,包括:
调用所述工具的检索功能查找所述测试报告中的失败模块标识词不为零的数值,所述失败模块标识词用于表示未通过测试的模块的测试用例数量;调用所述工具的定位功能定位所述失败模块标识词不为零的数值的所在行或所在列获得测试未通过的测试用例的模块名称;
基于所述模块名称,调用所述工具的检索功能查找所述测试报告中的失败用例标识词,所述失败用例标识词用于表示未通过测试的用例名称;调用所述工具的定位功能定位所述失败用例标识词的所在行或所在列获得测试未通过的测试用例的用例名称;
调用所述工具的检索功能查找所述测试报告中的指纹标识词,该指纹标识词用于表示测试软件的版本信息;调用所述工具的定位功能定位所述指纹标识词的所在行或所在列获得指纹信息。
在一些实施例中,从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的参数数据,包括:
从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的所述模块名称和所述用例名称。
在一些实施例中,所述测试项目包括以下至少之一:兼容性测试套件、供应商测试套件环境下的兼容性测试、谷歌移动服务测试套件、安卓安全测试套件、供应商测试套件、电视测试套件。
在一些实施例中,多个测试未通过的测试用例的重测试步骤并行执行。
在一些实施例中,所述根据所述数据组装测试语句,包括:
获取测试命令、测试命令参数、模块名称、用例名称;
将按照测试语句规范的格式将所述测试命令、所述测试命令参数、所述模块名称、所述用例名称进行组装。
本申请还提出一种终端设备,所述终端设备包括处理器、与所述处理器电连接的存储器及存储在所述存储器上并可在所述处理器上运行的谷歌移动服务的自动测试程序;所述谷歌移动服务的自动测试程序被所述处理器执行所述的谷歌移动服务的自动测试方法的步骤。
本申请还提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的谷歌移动服务的自动测试方法的步骤。
本申请通过从测试报告中提取测试未通过的测试用例的报告属性信息,并通过从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的参数数据,且该参数数据组成未通过的测试用例的名称,再通过将所述参数数据组装成测试语句,并循环执行组装完成的测试语句,直至当前处理的测试用例通过测试。实现对一个未通过的测试用例的测试,再通过对其他未通过的测试用例自动重复执行重测试步骤,实现对测试报告中所有测试未通过的测试用例的重测试。本实施例通过终端设备实现打开测试报告,自动执行对未通过的测试用例的重复测试。相比传统使用人工执行未通过测试用例的测试,本实施例节约时间成本,提高测试未通过的测试用例的工作效率,且工作人员无需手动进行测试,给工作人员带来便利。
附图说明
图1为本申请的终端设备的一实施例的硬件架构图;
图2为本申请的谷歌移动服务的自动测试方法的一实施例的流程框图;
图3为图2中的从测试报告中提取测试未通过的测试用例的一实施例的流程框图;
图4为图2中的获取测试未通过的测试用例的报告属性信息的一实施例的流程框图;
图5为图2中的根据所述参数数据组装测试语句的一实施例的流程框图。
具体实施方式
为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
GMS全称为Google Mobile Service,即谷歌移动服务。GMS是Google开发并推动Android(安卓)系统的动力,也是Android系统的灵魂所在。GMS认证包括:兼容性测试套件、供应商测试套件环境下的兼容性测试、谷歌移动服务测试套件、安卓安全测试套件、供应商测试套件、电视测试套件等。搭载Android系统的电子产品(如平板)需要在谷歌移动服务测试中输出0fail(即零失败)报告,方能通过谷歌移动服务的认证。
当前谷歌移动服务测试中大多数测试失败的测试用例到最后失败的原因连软件设计师本身都没法分析其原因,但是谷歌又不会豁免这些测试用例。所以都得工作人员手动来重新测试。而重新测试的效率很低下,一般在1/10或者1/20之间徘徊。也就是说,测试人员单独将重复这条测试用例10次或者20次左右才能测试通过,并且还要在测试人员时时盯着的情况下,这条测试用例才有可能通过。所以现有这样的测试方法比较浪费时间和影响工作效率。
因此,需要在谷歌移动服务测试中测试失败的测试用例时节约时间,提高工作效率和自动化程度,本申请提出一种谷歌移动服务的自动测试方法、终端设备以及存储介质。
请参照图1,下面介绍一种终端设备,该终端设备可以包括:处理器1001,例如CPU,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端设备还可以包括RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图4所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及谷歌移动服务的自动测试程序。其中,操作系统是管理和控制终端设备硬件和软件资源的程序,支持谷歌移动服务的自动测试程序以及其它软件或程序的运行。
在图1所示的终端设备中,用户接口1003主要用于接收测试报告;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的谷歌移动服务的自动测试程序,并执行如上所述的谷歌移动服务的自动测试方法的步骤。
在一些实施例中,处理器1001可以用于调用存储器1005中存储的谷歌移动服务的自动测试程序,并执行以所述谷歌移动服务的自动测试方法包括:
当设定的测试项目测试完成后,从测试报告中提取测试未通过的测试用例;
获取所述测试未通过的测试用例的报告属性信息;
针对每一个测试未通过的测试用例,执行以下重测试步骤:
从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的参数数据;
根据所述参数数据组装测试语句,并循环执行组装完成的测试语句,直至当前处理的测试用例通过测试。
在一些实施例中,处理器1001可以用于调用存储器1005中存储的谷歌移动服务的自动测试程序,并执行以所述谷歌移动服务的自动测试方法包括:
所述从测试报告中提取测试未通过的测试用例,包括:
将所述测试报告保存为预设格式;
采用可操作所述预设格式文件的工具打开所述测试报告;
调用所述工具的检索功能查找所述测试报告中的失败总数标识词,该失败总数标识词用于表示所述未通过的测试用例的总数;
调用所述工具的定位功能定位所述失败总数标识词的所在行或所在列获得所述未通过的测试用例的总数。
在一些实施例中,处理器1001可以用于调用存储器1005中存储的谷歌移动服务的自动测试程序,并执行以所述谷歌移动服务的自动测试方法包括:
所述预设格式包括HTML格式或XML格式。
在一些实施例中,处理器1001可以用于调用存储器1005中存储的谷歌移动服务的自动测试程序,并执行以所述谷歌移动服务的自动测试方法包括:
获取所述测试未通过的测试用例的报告属性信息,包括:
调用所述工具的检索功能查找所述测试报告中的失败模块标识词不为零的数值,所述失败模块标识词用于表示未通过测试的模块的测试用例数量;调用所述工具的定位功能定位所述失败模块标识词不为零的数值的所在行或所在列获得测试未通过的测试用例的模块名称;
基于所述模块名称,调用所述工具的检索功能查找所述测试报告中的失败用例标识词,所述失败用例标识词用于表示未通过测试的用例名称;调用所述工具的定位功能定位所述失败用例标识词的所在行或所在列获得测试未通过的测试用例的用例名称;
调用所述工具的检索功能查找所述测试报告中的指纹标识词,该指纹标识词用于表示测试软件的版本信息;调用所述工具的定位功能定位所述指纹标识词的所在行或所在列获得指纹信息。
在一些实施例中,处理器1001可以用于调用存储器1005中存储的谷歌移动服务的自动测试程序,并执行以所述谷歌移动服务的自动测试方法包括:
从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的参数数据,包括:
从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的所述模块名称和所述用例名称。
在一些实施例中,处理器1001可以用于调用存储器1005中存储的谷歌移动服务的自动测试程序,并执行以所述谷歌移动服务的自动测试方法包括:
所述测试项目包括以下至少之一:兼容性测试套件、供应商测试套件环境下的兼容性测试、谷歌移动服务测试套件、安卓安全测试套件、供应商测试套件、电视测试套件。
在一些实施例中,处理器1001可以用于调用存储器1005中存储的谷歌移动服务的自动测试程序,并执行以所述谷歌移动服务的自动测试方法包括:
多个测试未通过的测试用例的重测试步骤并行执行。
在一些实施例中,处理器1001可以用于调用存储器1005中存储的谷歌移动服务的自动测试程序,并执行以所述谷歌移动服务的自动测试方法包括:
所述根据所述数据组装测试语句,包括:
获取测试命令、测试命令参数、模块名称、用例名称;
将按照测试语句规范的格式将所述测试命令、所述测试命令参数、所述模块名称、所述用例名称进行组装。
本实施例的终端设备通过从测试报告中提取测试未通过的测试用例的报告属性信息,并通过从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的参数数据,且该参数数据组成未通过的测试用例的名称,再通过将所述参数数据组装成测试语句,并循环执行组装完成的测试语句,直至当前处理的测试用例通过测试。实现对一个未通过的测试用例的测试,再通过对其他未通过的测试用例自动重复执行重测试步骤,实现对测试报告中所有测试未通过的测试用例的重测试。本实施例通过终端设备实现打开测试报告,自动执行对未通过的测试用例的重复测试。相比传统使用人工执行未通过测试用例的测试,本实施例节约时间成本,提高测试未通过的测试用例的工作效率,且工作人员无需手动进行测试,给工作人员带来便利。
请参照图2,基于上述终端设备的硬件架构,下面提出本申请的谷歌移动服务的自动测试方法,所述谷歌移动服务的自动测试方法包括:
S110、当设定的测试项目测试完成后,从测试报告中提取测试未通过的测试用例;
其中,上述测试项目可以包括如下至少之一:CTS(Compatibility Test suite,兼容性测试套件)、CTS-ON-GSI(供应商测试套件环境下的兼容性测试)、GTS(Google MobileServices Test Suite,谷歌移动服务测试套件)、STS(Android Security Test Suite,安卓安全测试套件)、VTS(Vendor Test Suite,供应商测试套件)、TVTS(Television TestSuite,电视测试套件)。换句话说,本实施例的针对的测试项目的种类多种多样,本实施例可对上述几种测试项目的至少一种进行失败的测试用例的重新测试。
具体地,请参照图3,从测试报告中提取测试未通过的测试用例,包括:
S111、将所述测试报告保存为预设格式;
具体地,所述预设格式可以是HTML格式或XML格式。
S112、采用可操作所述预设格式文件的工具打开所述测试报告;
需要说明的是,这里的可操作所述预设格式文件的工具可根据实际情况不同而采用不同的实施方式。例如可用JAVA语言的语句规范打开所述测试报告、可用C++语言的语句规范打开所述测试报告、或者使用python语言的语句规范打开所述测试报告。在此对打开所述测试报告具体使用的编程语言不做限制。
S113、调用所述工具的检索功能查找所述测试报告中的失败总数标识词,该失败总数标识词用于表示所述未通过的测试用例的总数;调用所述工具的定位功能定位所述失败总数标识词的所在行或所在列获得所述未通过的测试用例的总数。
下面介绍谷歌移动服务测试中某一项目的测试报告的一般形式。请参照表1。谷歌移动服务的测试报告包括测试用例测试通过的总数(即Tests Passed所在行表示的425223),未通过测试的测试用例总数(即Tests Failed所在行表示的3),指纹信息(即Fingerprint所在行表示的XXXXXX)。需要说明的是,其中指纹信息表示测试软件的独一无二的标识信息,用来区别和标识测试软件的版本信息。需要说明的是,测试报告中还包括其他参数,这里为了表明本申请的发明构思仅选取了少量参数。实际中的测试报告中包含的参数应该多于表1中列举的参数。
从表1中可得出,英文词组“Tests Failed”即表示失败总数标识词,通过检索表1中的“Tests Failed”,并定位该“Tests Failed”所在行或所在列的数值可得出未通过的测试用例的总数。具体地,如果通过JAVA语言实现提取未通过的测试用例的总数。可通过以下方式:通过boolQuery函数(即布尔查询函数)先查找所述测试报告中的“Tests Failed”,再通过findElement函数(即定位函数)定位该“Tests Failed”所在行的数值可得出未通过的测试用例的总数3。可以理解地,在不同的测试报告中可能存在不同形式,在竖向排列的测试报告中,可通过findElement函数(即定位函数)定位该“Tests Failed”所在列的数值可得出未通过的测试用例的总数3。
表1
S120、获取所述测试未通过的测试用例的报告属性信息;
下面介绍谷歌移动服务测试中某一项目的测试报告的其他参数。请参照表2,测试报告还包括不同的模块的名称(即Module所在列)、不同的模块的测试用例的测试通过数量(即Passed所在列的数值)、不同的模块的测试用例的测试失败数量(即Failed所在列的数值)、不同的模块的测试用例的测试总数量(即Total所在列的数值)以及不同的模块的测试用例的测试完成情况(即Test Done所在列的true,true表示是正确)。
表2
请参照表3,测试报告还包括含有测试失败的模块的具体测试用例的用例名称(即Test所在列)、测试用例的测试结果(即Result所在列)、测试失败的测试用例具体细节(即Details所在列)。
表3
通过观察上述谷歌移动服务测试中某一项目的测试报告可以得出,要确定具体是哪一个测试用例出测试失败,一方面要确定测试用例所属的模块名称,另一方面要确定测试用例的用例名称。换句话说,只有同时确定模块名称和用例名称才能确定是哪一个测试用例测试失败。
因此,在本实施例中,请参照图4,获取所述测试未通过的测试用例的报告属性信息的步骤具体包括:
S121、调用所述工具的检索功能查找所述测试报告中的失败模块标识词不为零的数值,所述失败模块标识词用于表示未通过测试的模块的测试用例数量;调用所述工具的定位功能定位所述失败模块标识词不为零的数值的所在行或所在列获得测试未通过的测试用例的模块名称;
从表2中可读出,英文单词“Failed”不为零时,表示该模块的测试用例中出现未通过的测试用例。因此可将“Failed”设置为失败模块标识词,通过检索表2中的“Failed”,并定位该“Failed”所在行或所在列的“Module”可得出测试未通过的测试用例的模块名称。具体地,如使用JAVA语言可通过boolQuery函数(即布尔查询函数)先查找所述测试报告中的“Failed”不为零的数值2,再通过findElement函数(即定位函数)定位该““Failed”不为零的数值2所在行的“Module”可得出未通过的测试用例的模块名称C。可以理解地,在不同的测试报告中可能存在不同形式,在竖向排列的测试报告中,可通过findElement函数(即定位函数)定位该“Failed”所在列的“Module”可得出未通过的测试用例的模块名称C。
S122、基于所述模块名称,调用所述工具的检索功能查找所述测试报告中的失败用例标识词,所述失败用例标识词用于表示未通过测试的用例名称;调用所述工具的定位功能定位所述失败用例标识词的所在行或所在列获得测试未通过的测试用例的用例名称;
从表3中可读出,英文单词“fail”不为零时,表示模块中出现未通过的具体测试用例。因此可将“fail”设置为失败用例标识词,通过检索表2中的“fail”,并定位该“fail”所在行或所在列的“Test”可得出测试未通过的测试用例的用例名称。具体地,如使用JAVA语言可通过boolQuery函数(即布尔查询函数)先查找所述测试报告中的“fail”,再通过findElement函数(即定位函数)定位该“fail”所在行的“Test”可得出未通过的测试用例的用例名称C1和C2。可以理解地,在不同的测试报告中可能存在不同形式,在竖向排列的测试报告中,可通过findElement函数(即定位函数)定位该“fail”所在列的“Test”可得出未通过的测试用例的用例名称C1和C2。
S123、调用所述工具的检索功能查找所述测试报告中的指纹标识词,该指纹标识词用于表示测试软件的版本信息;调用所述工具的定位功能定位所述指纹标识词的所在行或所在列获得指纹信息。
在具体的谷歌移动服务的未测试通过的测试用例测试时,为了提高测试效率,多个测试未通过的测试用例的重测试步骤并行执行。此时多份测试报告中的测试用例在同时重新测试,为了避免测试项目的测试软件版本正确,还需要从测试报告中提取指纹信息。这个指纹信息可以避免多份报告重新测试出错,也即保证测试项目使用正确的软件测试版本进行测试。
具体地,表1中英文“Fingerprint”表示软件的指纹信息。可将英文“Fingerprint”,设置为指纹标识词,通过检索表1中的“Fingerprint”,并定位该“Fingerprint”所在行或所在列可得出指纹信息。具体地,如使用JAVA语言可通过boolQuery函数(即布尔查询函数)先查找所述测试报告中的“Fingerprint”,再通过findElement函数(即定位函数)定位该“Fingerprint”所在行可得出未通过的测试用例的指纹信息。可以理解地,在不同的测试报告中可能存在不同形式,在竖向排列的测试报告中,可通过findElement函数(即定位函数)定位该“Fingerprint”所在列可得出指纹信息。
S130、针对每一个测试未通过的测试用例,执行以下重测试步骤:
从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的参数数据;
根据所述参数数据组装测试语句,并循环执行组装完成的测试语句,直至当前处理的测试用例通过测试。
具体地,从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的模块名称和用例名称。通过步骤S120获取的模块名称和用例名称可确定未通过的测试用例。
进一步地,请参照图5,根据所述参数数据组装测试语句,包括:
S1321、获取测试命令、测试命令参数、模块名称、用例名称;
S1322、将按照测试语句规范的格式将所述测试命令、所述测试命令参数、所述模块名称、所述用例名称进行组装,并循环执行组装完成的测试语句,直至当前处理的测试用例通过测试。
具体地,可根据实际不同的需求选择不同编程语言实现模块名称和用例名称进行组装的得到测试语句。当选用的编程语言不同时,测试命令和测试命令参数应当与对应的编程语言相适应。在一些实施例中,可采用JAVA语言实现组装模块名称和用例名称。例如,在JAVA语言可构造如下测试语句:
代码中的“moudleName”表示步骤S120获取的模块名称,“TestCase”表示步骤S120获取的用例名称。通过该测试语句能实现对未通过测试用例的重新测试。
其次,为了能够实现循环执行组装完成的测试语句,直至当前处理的测试用例通过测试的效果。应该以测试用例是否测试通过作为判断测试语句是否继续执行判断条件。若测试不通过则重复进行测试;若测试通过则转向下一测试用例的测试。进一步地,为了程序层面实现上述思想,可以设置标识变量实现逐个测试未通过测试用例。例如可以在循环执行组装完成的测试语句之前设置标识变量i,并设置为标识变量i设置初值为0,在每一个测试用例重测试通过后将标识变量i的数值加1,以实现对重测试通过的测试用例计数。当该标识变量i的数值达到前面的步骤S113获得的未通过的测试用例的总数时,此时测试报告中的所有未测试通过的测试用测全部测试通过,自动测试结束。
基于前述技术方案的构思,下面提出一个典型的谷歌移动服务的自动测试方法的实施例。
S1、通过符合Java语言规范的语句打开测试报告;
S2、通过Java语言的检索功能检索测试报告中的失败总数标识词“TestsPassed”,再通过Java语言的检索功能检索测试报告中的失败总数标识词“Tests Passed”的数值得到未通过的测试用例的总数;
S3、设置标识变量i,并为标识变量i设置初值0;
S4、调用Java语言的检索功能查找所述测试报告中的“Failed”不为零的数值;调用所述工具的定位功能定位“Failed”不为零的数值的所在行获得测试未通过的测试用例的模块名称;基于该模块名称,调用所述工具的检索功能查找所述测试报告中的“fail”,调用所述工具的定位功能定位“fail”的所在行获得测试未通过的测试用例的用例名称;根据模块名称和用例名称构造测试语句,并对测试语句进行循环测试,直至模块名称和用例名称对应的测试用例测试通过;
S5、若测试通过则将标识变量i进行加1,若标识变量i小于未通过的测试用例的总数时,则转至步骤S4实现对下一个未通过的测试用例的循环测试;若标识变量等于未通过的测试用例的总数时,则测试报告中的所有未通过的测试用例测试通过。
本实施例通过从测试报告中提取测试未通过的测试用例的报告属性信息,并通过从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的参数数据,且该参数数据组成未通过的测试用例的名称,再通过将所述参数数据组装成测试语句,并循环执行组装完成的测试语句,直至当前处理的测试用例通过测试。实现对一个未通过的测试用例的测试,再通过对其他未通过的测试用例自动重复执行重测试步骤,实现对测试报告中所有测试未通过的测试用例的重测试。本实施例通过终端设备实现打开测试报告,自动执行对未通过的测试用例的重复测试。相比传统使用人工执行未通过测试用例的测试,本实施例节约时间成本,提高测试未通过的测试用例的工作效率,且工作人员无需手动进行测试,给工作人员带来便利。
本申请还提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的谷歌移动服务的自动测试方法、终端设备以及存储介质中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种谷歌移动服务的自动测试方法,其特征在于,所述方法包括:
当设定的测试项目测试完成后,从测试报告中提取测试未通过的测试用例;
获取所述测试未通过的测试用例的报告属性信息;
针对每一个测试未通过的测试用例,执行以下重测试步骤:
从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的参数数据;
根据所述参数数据组装测试语句,并循环执行组装完成的测试语句,直至当前处理的测试用例通过测试。
2.根据权利要求1所述的方法,其特征在于,所述从测试报告中提取测试未通过的测试用例,包括:
将所述测试报告保存为预设格式;
采用可操作所述预设格式文件的工具打开所述测试报告;
调用所述工具的检索功能查找所述测试报告中的失败总数标识词,该失败总数标识词用于表示所述未通过的测试用例的总数;
调用所述工具的定位功能定位所述失败总数标识词的所在行或所在列获得所述未通过的测试用例的总数。
3.根据权利要求2所述的方法,其特征在于,所述预设格式包括HTML格式或XML格式。
4.根据权利要求2所述的方法,其特征在于,获取所述测试未通过的测试用例的报告属性信息,包括:
调用所述工具的检索功能查找所述测试报告中的失败模块标识词不为零的数值,所述失败模块标识词用于表示未通过测试的模块的测试用例数量;调用所述工具的定位功能定位所述失败模块标识词不为零的数值的所在行或所在列获得测试未通过的测试用例的模块名称;
基于所述模块名称,调用所述工具的检索功能查找所述测试报告中的失败用例标识词,所述失败用例标识词用于表示未通过测试的用例名称;调用所述工具的定位功能定位所述失败用例标识词的所在行或所在列获得测试未通过的测试用例的用例名称;
调用所述工具的检索功能查找所述测试报告中的指纹标识词,该指纹标识词用于表示测试软件的版本信息;调用所述工具的定位功能定位所述指纹标识词的所在行或所在列获得指纹信息。
5.根据权利要求4所述的方法,其特征在于,从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的参数数据,包括:
从所述报告属性信息中提取与所述设定测试项目对应的测试语句所需的所述模块名称和所述用例名称。
6.根据权利要求1所述的方法,其特征在于,所述测试项目包括以下至少之一:兼容性测试套件、供应商测试套件环境下的兼容性测试、谷歌移动服务测试套件、安卓安全测试套件、供应商测试套件、电视测试套件。
7.根据权利要求1所述的方法,其特征在于,多个测试未通过的测试用例的重测试步骤并行执行。
8.根据权利要求4所述的方法,其特征在于,所述根据所述数据组装测试语句,包括:
获取测试命令、测试命令参数、模块名称、用例名称;
将按照测试语句规范的格式将所述测试命令、所述测试命令参数、所述模块名称、所述用例名称进行组装。
9.一种终端设备,其特征在于,所述终端设备包括处理器、与所述处理器电连接的存储器及存储在所述存储器上并可在所述处理器上运行的谷歌移动服务的自动测试程序;所述谷歌移动服务的自动测试程序被所述处理器执行时实现如权利要求1至8任一项所述的谷歌移动服务的自动测试方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至8中任一项所述的谷歌移动服务的自动测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011160975.2A CN112306868A (zh) | 2020-10-26 | 2020-10-26 | 谷歌移动服务的自动测试方法、终端设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011160975.2A CN112306868A (zh) | 2020-10-26 | 2020-10-26 | 谷歌移动服务的自动测试方法、终端设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306868A true CN112306868A (zh) | 2021-02-02 |
Family
ID=74330725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011160975.2A Pending CN112306868A (zh) | 2020-10-26 | 2020-10-26 | 谷歌移动服务的自动测试方法、终端设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306868A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662846A (zh) * | 2012-04-24 | 2012-09-12 | 广东欧珀移动通信有限公司 | 一种自动化工具与测试用例结合的测试方法 |
CN103530223A (zh) * | 2012-07-06 | 2014-01-22 | 百度在线网络技术(北京)有限公司 | 一种自动生成单元测试用例的方法及装置 |
US9111030B1 (en) * | 2008-10-03 | 2015-08-18 | Federal Home Loan Mortgage Corporation | Systems and methods for testing a software application |
CN105306928A (zh) * | 2015-11-19 | 2016-02-03 | 浪潮软件集团有限公司 | 一种测试机顶盒浏览器的方法及装置 |
CN108459961A (zh) * | 2017-12-29 | 2018-08-28 | 微梦创科网络科技(中国)有限公司 | 一种测试用例测试失败后重测试的方法、客户端及服务器 |
-
2020
- 2020-10-26 CN CN202011160975.2A patent/CN112306868A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9111030B1 (en) * | 2008-10-03 | 2015-08-18 | Federal Home Loan Mortgage Corporation | Systems and methods for testing a software application |
CN102662846A (zh) * | 2012-04-24 | 2012-09-12 | 广东欧珀移动通信有限公司 | 一种自动化工具与测试用例结合的测试方法 |
CN103530223A (zh) * | 2012-07-06 | 2014-01-22 | 百度在线网络技术(北京)有限公司 | 一种自动生成单元测试用例的方法及装置 |
CN105306928A (zh) * | 2015-11-19 | 2016-02-03 | 浪潮软件集团有限公司 | 一种测试机顶盒浏览器的方法及装置 |
CN108459961A (zh) * | 2017-12-29 | 2018-08-28 | 微梦创科网络科技(中国)有限公司 | 一种测试用例测试失败后重测试的方法、客户端及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114546738B (zh) | 服务器通用测试方法、系统、终端及存储介质 | |
CN112052169A (zh) | 测试管理方法、系统、设备以及计算机可读存储介质 | |
CN111181805B (zh) | 一种基于测试用例的微服务测试挡板生成方法及系统 | |
CN112540924A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US20190108118A1 (en) | Computer system testing | |
CN112506757A (zh) | 自动测试方法、系统、计算机设备及其介质 | |
CN111611154B (zh) | 一种回归测试的方法、装置和设备 | |
CN112905451B (zh) | 应用程序的自动化测试方法及装置 | |
CN112395182A (zh) | 自动化测试方法、装置、设备及计算机可读存储介质 | |
CN112035346B (zh) | 基于嵌入式dsp操作系统的自动化测试方法、系统及介质 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN109474822B (zh) | 一种安卓电视多国语言自动化测试的方法及装置 | |
CN116431522A (zh) | 一种低代码对象存储网关自动化测试方法及系统 | |
CN108829590B (zh) | 一种软件测试方法、装置及系统 | |
CN116756037A (zh) | 异常代码定位系统、方法、设备及计算机可读存储介质 | |
CN112306868A (zh) | 谷歌移动服务的自动测试方法、终端设备以及存储介质 | |
CN110442370B (zh) | 一种测试用例查询方法及装置 | |
CN114020645A (zh) | 测试方法、装置、设备、可读存储介质及计算机程序产品 | |
CN114490413A (zh) | 测试数据的准备方法及装置、存储介质和电子设备 | |
CN113806231A (zh) | 一种代码覆盖率分析方法、装置、设备和介质 | |
CN113094277A (zh) | 芯片测试用例管理方法及装置 | |
CN105740114A (zh) | 移动终端的容错测试方法及装置 | |
CN107102938B (zh) | 测试脚本的更新方法及装置 | |
CN114124769A (zh) | 一种基站测试方法、装置、电子设备及存储介质 | |
CN111966598A (zh) | 一种C++Test定制化方法及航天型号软件代码单元静态分析方法 |
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 |