CN109614342A - 一种应用程序自动化测试的方法及测试用例管理平台 - Google Patents
一种应用程序自动化测试的方法及测试用例管理平台 Download PDFInfo
- Publication number
- CN109614342A CN109614342A CN201910064730.0A CN201910064730A CN109614342A CN 109614342 A CN109614342 A CN 109614342A CN 201910064730 A CN201910064730 A CN 201910064730A CN 109614342 A CN109614342 A CN 109614342A
- Authority
- CN
- China
- Prior art keywords
- test
- api
- platform
- case
- target detection
- 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
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/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
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
本发明提供了一种应用程序自动化测试的方法及测试用例管理平台,该方法包括:确定包括有顺序排列的若干测试功能点、生成报告API和发送邮件API的测试用例代码,测试功能点内各执行步骤中包括有断言API和失败截图API;通过运行测试用例代码,以顺序针对各测试功能点均执行:调用声明API以获得声明信息;任一执行步骤完成执行时,调用断言API以获得断言信息,根据断言信息和声明信息按需调用失败截图API以获得失败截图并结束执行当前测试功能点;当前测试功能点结束执行时调用保存日志API以保存日志;调用生成报告API以根据所有的失败截图和日志而生成报告;调用发送邮件API以将报告发送至邮箱。故人力投入降低。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种应用程序自动化测试的方法及测试用例管理平台。
背景技术
随着自动化测试技术的发展,越来越多的自动化测试工具和框架涌现市场,越来越多的测试人员选择对应用程序进行自动化测试。
目前,后台系统可以运行预设的测试用例代码,以实现对应用程序的自动化测试。
但是,自动化测试结束后,测试人员需要人为保存日志、按需进行失败截屏、生成报告和发送邮件。可见,人力投入仍较高。
发明内容
本发明提供了一种应用程序自动化测试的方法及测试用例管理平台,能够降低人力投入。
为了达到上述目的,本发明是通过如下技术方案实现的:
一方面,本发明提供了一种应用程序自动化测试的方法,应用于测试用例管理平台,包括:
确定用于测试应用程序的测试用例代码,其中,所述测试用例代码中包括有顺序排列的至少一个测试功能点、生成报告API(Application Programming Interface,应用程序编程接口)和发送邮件API,任一所述测试功能点中均包括有声明API和保存日志API,任一所述测试功能点内部的每一个执行步骤中均包括有断言API和失败截图API;
通过运行所述测试用例代码,以顺序针对每一个所述测试功能点均执行:
调用当前测试功能点中的声明API以获得声明信息;
顺序针对所述当前测试功能点中的每一个执行步骤均执行:当前执行步骤完成执行时,调用所述当前执行步骤中的断言API以获得断言信息,以及根据所述断言信息和所述声明信息,按需调用所述当前执行步骤中的失败截图API以获得失败截图并结束执行所述当前测试功能点;
所述当前测试功能点结束执行时,调用所述当前测试功能点中的保存日志API以保存日志;
每一个所述测试功能点均执行完成时,调用所述生成报告API,以根据获得的每一个失败截图和保存的每一个日志而生成报告;
调用所述发送邮件API,以将生成的报告发送至所述测试用例代码中预设的每一个邮箱。
进一步地,该方法还包括:确定预先搭建好的至少一个用例执行环境,不同用例执行环境对应的测试平台不同;
所述运行所述测试用例代码,包括:在目标测试平台对应的用例执行环境中运行所述测试用例代码,其中,所述至少一个测试功能点为所述目标测试平台对应的全部测试功能点中的部分或全部。
进一步地,所述目标测试平台为:针对Windows界面的测试平台、针对安卓APP的测试平台或针对IOS APP的测试平台;
其中,任一所述测试平台的代码均为基于python语言的可执行文件;
所述目标测试平台为针对Windows界面的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境;
所述目标测试平台为针对安卓APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境和adb环境;
所述目标测试平台为针对IOS APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境、Xcode以及WebDriverAgent。
进一步地,所述确定用于测试应用程序的测试用例代码,包括:
确定至少一个测试平台、至少一个用例执行相关项和至少一个测试类型,并确定每一个所述测试平台对应的至少一个测试功能点、每一个所述测试类型对应的测试用例模板文件;
根据外部指定的所述至少一个测试平台中的目标测试平台,展示所述目标测试平台对应的全部测试功能点;
根据外部指定的所述全部测试功能点中的至少一个目标测试功能点,以及外部指定的针对所述至少一个目标测试功能点的排列顺序,展示顺序排列的所述至少一个目标测试功能点;
确定外部指定的每一个所述用例执行相关项的测试需求值;
确定外部指定的所述至少一个测试类型中的目标测试类型;
利用所述目标测试类型对应的测试用例模板文件,生成包括有顺序排列的所述至少一个目标测试功能点和每一个所述测试需求值的测试用例代码;
将生成的测试用例代码确定为用于测试应用程序的测试用例代码。
进一步地,所述至少一个用例执行相关项包括:测试用例保存路径、测试名称、循环次数、收件人邮箱中的任意一个或多个用例执行相关项。
进一步地,所述至少一个测试类型包括:压力测试和日常测试中的任意一个或多个测试类型。
另一方面,本发明提供了一种测试用例管理平台,包括:前端和后端,其中,所述后端进一步包括:
用例生成模块,用于确定用于测试应用程序的测试用例代码,其中,所述测试用例代码中包括有顺序排列的至少一个测试功能点、生成报告API和发送邮件API,任一所述测试功能点中均包括有声明API和保存日志API,任一所述测试功能点内部的每一个执行步骤中均包括有断言API和失败截图API;
自动化测试模块,用于通过运行所述测试用例代码,以顺序针对每一个所述测试功能点均执行:调用当前测试功能点中的声明API以获得声明信息;顺序针对所述当前测试功能点中的每一个执行步骤均执行:当前执行步骤完成执行时,调用所述当前执行步骤中的断言API以获得断言信息,以及根据所述断言信息和所述声明信息,按需调用所述当前执行步骤中的失败截图API以获得失败截图并结束执行所述当前测试功能点;所述当前测试功能点结束执行时,调用所述当前测试功能点中的保存日志API以保存日志;每一个所述测试功能点均执行完成时,调用所述生成报告API,以根据获得的每一个失败截图和保存的每一个日志而生成报告;调用所述发送邮件API,以将生成的报告发送至所述测试用例代码中预设的每一个邮箱。
进一步地,所述自动化测试模块,还用于确定预先搭建好的至少一个用例执行环境,不同用例执行环境对应的测试平台不同;以及用于在目标测试平台对应的用例执行环境中运行所述测试用例代码,其中,所述至少一个测试功能点为所述目标测试平台对应的全部测试功能点中的部分或全部。
进一步地,所述目标测试平台为:针对Windows界面的测试平台、针对安卓APP的测试平台或针对IOS APP的测试平台;
其中,任一所述测试平台的代码均为基于python语言的可执行文件;
所述目标测试平台为针对Windows界面的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境;
所述目标测试平台为针对安卓APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境和adb环境;
所述目标测试平台为针对IOS APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境、Xcode以及WebDriverAgent。
进一步地,所述用例生成模块,包括:确定单元,用于确定至少一个测试平台、至少一个用例执行相关项和至少一个测试类型,并确定每一个所述测试平台对应的至少一个测试功能点、每一个所述测试类型对应的测试用例模板文件;
处理单元,用于根据外部指定的所述至少一个测试平台中的目标测试平台,控制所述前端展示所述目标测试平台对应的全部测试功能点;根据外部指定的所述全部测试功能点中的至少一个目标测试功能点,以及外部指定的针对所述至少一个目标测试功能点的排列顺序,控制所述前端展示顺序排列的所述至少一个目标测试功能点;确定外部指定的每一个所述用例执行相关项的测试需求值;确定外部指定的所述至少一个测试类型中的目标测试类型;
生成单元,用于利用所述目标测试类型对应的测试用例模板文件,生成包括有顺序排列的所述至少一个目标测试功能点和每一个所述测试需求值的测试用例代码;将生成的测试用例代码确定为用于测试应用程序的测试用例代码。
进一步地,所述确定单元,用于确定测试用例保存路径、测试名称、循环次数、收件人邮箱中的任意一个或多个用例执行相关项。
进一步地,所述确定单元,用于确定压力测试和日常测试中的任意一个或多个测试类型。
本发明提供了一种应用程序自动化测试的方法及测试用例管理平台,该方法包括:确定包括有顺序排列的若干测试功能点、生成报告API和发送邮件API的测试用例代码,测试功能点内各执行步骤中包括有断言API和失败截图API;通过运行测试用例代码,以顺序针对各测试功能点均执行:调用声明API以获得声明信息;任一执行步骤完成执行时,调用断言API以获得断言信息,根据断言信息和声明信息按需调用失败截图API以获得失败截图并结束执行当前测试功能点;当前测试功能点结束执行时调用保存日志API以保存日志;调用生成报告API以根据所有的失败截图和日志而生成报告;调用发送邮件API以将报告发送至邮箱。故人力投入降低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种应用程序自动化测试的方法的流程图;
图2是本发明一实施例提供的另一种应用程序自动化测试的方法的流程图;
图3是本发明一实施例提供的一种测试用例管理平台的示意图;
图4是本发明一实施例提供的另一种测试用例管理平台的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种应用程序自动化测试的方法,应用于测试用例管理平台,可以包括以下步骤:
步骤101:确定用于测试应用程序的测试用例代码,其中,所述测试用例代码中包括有顺序排列的至少一个测试功能点、生成报告API和发送邮件API,任一所述测试功能点中均包括有声明API和保存日志API,任一所述测试功能点内部的每一个执行步骤中均包括有断言API和失败截图API。
步骤102:通过运行所述测试用例代码,以顺序针对每一个所述测试功能点均执行:调用当前测试功能点中的声明API以获得声明信息。
步骤103:顺序针对所述当前测试功能点中的每一个执行步骤均执行:当前执行步骤完成执行时,调用所述当前执行步骤中的断言API以获得断言信息,以及根据所述断言信息和所述声明信息,按需调用所述当前执行步骤中的失败截图API以获得失败截图并结束执行所述当前测试功能点。
步骤104:所述当前测试功能点结束执行时,调用所述当前测试功能点中的保存日志API以保存日志。
步骤105:每一个所述测试功能点均执行完成时,调用所述生成报告API,以根据获得的每一个失败截图和保存的每一个日志而生成报告。
步骤106:调用所述发送邮件API,以将生成的报告发送至所述测试用例代码中预设的每一个邮箱。
本发明实施例提供了一种应用程序自动化测试的方法,确定包括有顺序排列的若干测试功能点、生成报告API和发送邮件API的测试用例代码,测试功能点内各执行步骤中包括有断言API和失败截图API;通过运行测试用例代码,以顺序针对各测试功能点均执行:调用声明API以获得声明信息;任一执行步骤完成执行时,调用断言API以获得断言信息,根据断言信息和声明信息按需调用失败截图API以获得失败截图并结束执行当前测试功能点;当前测试功能点结束执行时调用保存日志API以保存日志;调用生成报告API以根据所有的失败截图和日志而生成报告;调用发送邮件API以将报告发送至邮箱。故人力投入降低。
详细地,对于自动化测试,主要包括两大步骤,首先是生成测试用例代码,然后是运行测试用例代码以实现对应用程序的自动化测试。在这一自动化测试的基础之上,为支持保存日志、失败截屏、生成报告和发送邮件的自动执行以降低人力投入,故本发明实施例中,生成的测试用例代码中应按需设置有相应API。如此,在运行测试用例代码的过程中,即可调用这些API以自动化的保存日志、失败截屏、生成报告和发送邮件。
详细地,测试用例代码中的各个测试功能点顺序排列,故运行测试用例代码时会顺序依次执行各个测试功能点。以任一测试功能点为例,开始执行该测试功能点时,首先可调用声明API以获得声明信息,比如声明某一步骤执行成功时应如何操作,某一步骤执行失败时应如何操作。然后依次执行该测试功能点中的每一个步骤,并在每执行完一个步骤后即调用其中的断言API以获得断言信息,比如断言出该步骤是否执行成功,并将断言信息与声明信息相比对。若声明信息声明,该步骤执行失败时应进行失败截图并结束当前测试功能点的执行,则获得的断言信息为该步骤执行失败时,即可调用失败截屏API以进行失败截屏,然后顺序执行下一个测试功能点。此外,每执行完一个测试功能点后,即可调用其中的保存日志API以进行保存日志。基于此,当所有测试功能点均执行完成时,即可调用生成报告API,以可根据生成的所有失败截屏和保存的所有日志来生成报告,进而即可调用发送邮件API,以将生成的报告通过邮件向预设的各个收件人邮箱而发送出去。详细地,测试用例代码中包括有预设的各个收件人邮箱地址。
执行用例完成后,对于测试人员来说,只需要接收邮件就能看到经过统计分析的测试报告所直观呈现出的测试结果。当然,当测试用例执行失败时,也可直接在邮件附件中的日志和截图里,分析失败原因。
详细地,上述各个API均可使用python语言,并基于AirtestIDE工具编写完成。
对于失败截屏来说,在本发明的一个实施例中,调用失败截屏API时,可以通过adb命令来实现失败截图。比如,通过adb命令对手机截屏,然后通过adb发送到电脑保存,保存于指定目录下,可自定义保存路径和图片名称。
对于日志保存来说,在本发明的一个实施例中,调用保存日志API时,可将测试用例代码中每一步操作的名称、测试结果均保存在自定义的log文件中,并以log文件的形式保存于指定目录下。
对于生成报告来说,在本发明的一个实施例中,调用生成报告API时,可以首先主动分析保存的测试结果,计算出执行次数、成功率、执行时间等参数,然后生成直观可读的html(HyperText Markup Language,超级文本标记语言)格式的测试报告。
对于发送邮件来说,在本发明的一个实施例中,调用发送邮件API时,可以根据测试用例代码中设置的收件人邮箱,将生成的测试报告发送至每一个收件人邮箱。比如,可以将测试日志、测试报告以添加附件的方法发送给指定邮箱,且邮件正文中体现本次执行结果,更方便测试人员了解结果。
在本发明的一个实施例中,该方法可以进一步包括:确定预先搭建好的至少一个用例执行环境,不同用例执行环境对应的测试平台不同;
所述运行所述测试用例代码,包括:在目标测试平台对应的用例执行环境中运行所述测试用例代码,其中,所述至少一个测试功能点为所述目标测试平台对应的全部测试功能点中的部分或全部。
详细地,基于不同的测试需求,所针对的测试平台可以不同,故可针对特定的测试平台来生成测试用例代码。对应地,生成的测试用例代码应在该特定测试平台对应的用例执行环境中运行。
举例来说,假设所有平台的代码都是基于python语言的可执行文件,但不同的测试平台依托不同的执行环境,故执行用例前需按照要求做好环境配置。安卓手机测试需要在电脑中配置好android的adb环境;IOS手机需要配置好Xcode以及WebDriverAgent;Windows界面测试除了python环境外不需要做额外的配置。
基于此,在本发明的一个实施例中,所述目标测试平台为:针对Windows界面的测试平台、针对安卓APP的测试平台或针对IOS APP的测试平台;
其中,任一所述测试平台的代码均为基于python语言的可执行文件;
所述目标测试平台为针对Windows界面的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境;
所述目标测试平台为针对安卓APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境和adb环境;
所述目标测试平台为针对IOS APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境、Xcode以及WebDriverAgent。
当然,当需要测试手机上的应用程序时,在运行测试用例代码之前,还需将电脑与手机相连接,再在电脑上运行测试用例代码。需要测试电脑上的应用程序时,可直接在电脑上运行测试用例代码。
详细地,对于上述步骤102中测试用例代码的运行,可以根据预先部署的Windows任务计划来运行测试用例代码。比如,可以部署Windows任务计划,以达到每日定时执行该测试用例代码的目的。
因此,在本发明一个实施例中,可以将生成的可执行测试用例代码添加到自定义的bat文件中,部署定时执行该bat文件,即实现了测试用例代码的定时执行。
在本发明的一个实施例中,所述确定用于测试应用程序的测试用例代码,包括:确定至少一个测试平台、至少一个用例执行相关项和至少一个测试类型,并确定每一个所述测试平台对应的至少一个测试功能点、每一个所述测试类型对应的测试用例模板文件;根据外部指定的所述至少一个测试平台中的目标测试平台,展示所述目标测试平台对应的全部测试功能点;根据外部指定的所述全部测试功能点中的至少一个目标测试功能点,以及外部指定的针对所述至少一个目标测试功能点的排列顺序,展示顺序排列的所述至少一个目标测试功能点;确定外部指定的每一个所述用例执行相关项的测试需求值;确定外部指定的所述至少一个测试类型中的目标测试类型;利用所述目标测试类型对应的测试用例模板文件,生成包括有顺序排列的所述至少一个目标测试功能点和每一个所述测试需求值的测试用例代码;将生成的测试用例代码确定为用于测试应用程序的测试用例代码。
详细地,对于自动化测试,在生成各个测试用例代码之前,工作人员可以预先编写设置测试用例管理平台,以使其可以应用于所能涉及到的每一个测试平台、每一个用例执行相关项、每一个测试类型、每一个功能测试点、每一个测试用例模板文件。测试用例管理平台可重复使用,后续每次生成测试用例代码时,用户仅需基于测试用例管理平台的引导而按需指定各个要素即可,从而测试用例管理平台可基于这些要素来生成测试用例代码。
可见,由于测试用例管理平台所提供的内容涵盖了任一自动化测试的测试需求,故一方面可支持多平台且可长期复用,另一个方面,测试人员欲生成测试用例代码时,仅需按需指定各个要素即可,而不需要测试人员具备任何编程基础,也不用像其他自动化测试工具或框架那样花大量时间去了解、学习,故不仅降低了人力投入,还大大缩短了测试周期,提高了测试效率。
详细地,可以利用Airtest IDE工具以向测试用例管理平台中添加各个测试功能点,且添加的这些测试功能点中包括Airtest IDE工具所自带的声明API和断言API。其中,Airtest IDE是一个跨平台的UI自动化测试编辑器。
在本发明的一个实施例中,所述至少一个用例执行相关项包括:测试用例保存路径、测试名称、循环次数、收件人邮箱中的任意一个或多个用例执行相关项。
详细地,测试用例管理平台可以包括前端和后端,前端用于展示以与用户交互,后端用于数据处理。
详细地,后端可控制前端展示各个用例执行相关项对应的输入框,如此,用户可按需在各个输入框中输入数值,输入的这些数值均是生成测试用例代码的影响因素,以使测试用例代码的生成和自动化执行与这些数值相关联。
比如,对于用户在测试用例保存路径对应的输入框中输入的路径,生成的测试用例代码将会保存在该路径下;对于用户在测试名称对应的输入框中输入的名称,生成的测试用例代码将会以该名称为文件名;对于用户在循环次数对应的输入框中输入的次数,生成的测试用例代码在自动化测试过程中的执行次数,将由该次数来决定;对于用户在收件人邮箱对应的输入框中输入的邮箱,生成的测试用例代码在自动化测试过程中的执行结果,将会自动发送至该邮箱。
详细地,测试类型也是影响自动化测试的一个重要影响因素,用户可按需选择测试类型。在本发明的一个实施例中,所述至少一个测试类型包括:压力测试和日常测试中的任意一个或多个测试类型。
比如,用户选择压力测试时,生成的测试用例代码在自动化测试过程中的执行次数,将会与用户指定的循环次数相一致,无论每一次执行成功或失败。
再比如,用户选择日常测试时,生成的测试用例代码在自动化测试过程中的执行次数,将会以用户指定的循环次数为基准,当完成一次执行并执行成功时,即停止执行,但最大执行次数不超过该循环次数。
如图2所示,本发明实施例提供了一种应用程序自动化测试的方法,该方法应用于测试用例管理平台,可以包括以下步骤:
步骤201:后端封装Airtest IDE工具,以在Airtest IDE工具中添加保存日志API、失败截图API、生成报告API、发送邮件API。
详细地,测试用例管理平台可以包括前端和后端,前端用于展示以与用户交互,后端用于数据处理。
步骤202:后端利用Airtest IDE工具,设置每一个测试功能点,以使任一测试功能点中均包括有Airtest IDE工具自带的声明API和保存日志API,测试功能点内部的每一个执行步骤中均包括有Airtest IDE工具自带的断言API和失败截图API。
步骤203:后端确定3个测试平台、4个用例执行相关项和2个测试类型,并确定每一个测试平台对应的至少一个测试功能点、预先搭建好的每一个测试平台对应的用例执行环境、每一个测试类型对应的测试用例模板文件。
本发明实施例中,这3个测试平台可以分别为针对Windows界面、安卓APP、IOS APP的测试平台;这4个用例执行相关项可以分别为测试用例保存路径、测试名称、循环次数、收件人邮箱;这2个测试类型可以为压力测试和日常测试。
本发明实施例中,任一测试平台的代码均为基于python语言的可执行文件时,针对Windows界面的测试平台所对应的用例执行环境为,在电脑中配置的python环境;针对安卓APP的测试平台所对应的用例执行环境为,在电脑中配置的python环境和adb环境;针对IOS APP的测试平台所对应的用例执行环境为,在电脑中配置的python环境、Xcode以及WebDriverAgent。
步骤204:后端在接收到外部输入的测试用例生成请求时,控制前端展示预设的每一个测试平台对应的第一功能按钮。
步骤205:后端在监测到外部针对任一第一功能按钮的触发操作时,确定该第一功能按钮对应的测试平台为外部指定的目标测试平台。
假设需要测试安卓手机上的应用程序,则用户可以点击针对安卓APP的测试平台所对应的功能按钮。
步骤206:后端控制前端展示目标测试平台对应的全部测试功能点。
步骤207:后端根据外部指定的全部测试功能点中的至少一个目标测试功能点,以及外部指定的针对至少一个目标测试功能点的排列顺序,控制前端展示顺序排列的至少一个目标测试功能点。
步骤208:后端利用Airtest IDE工具,在顺序排列的至少一个目标测试功能点这一整体中,添加生成报告API和发送邮件API。
步骤209:后端控制前端展示预设的每一个用例执行相关项对应的输入框。
步骤210:后端在接收到外部在任一输入框中输入的数值时,将数值确定为外部指定的该输入框对应的用例执行相关项的测试需求值。
步骤211:后端控制前端展示预设的每一个测试类型对应的第二功能按钮。
步骤212:后端在监测到外部针对任一第二功能按钮的触发操作时,确定该第二功能按钮对应的测试类型为外部指定的目标测试类型。
假设需要进行压力测试,故用户可以点击压力测试所对应的功能按钮,并目标测试类型即为压力测试。
步骤213:后端利用目标测试类型对应的测试用例模板文件,生成包括有顺序排列的至少一个目标测试功能点和每一个测试需求值的测试用例代码,以用于测试应用程序。
基于上述内容,由于需要测试安卓手机上的应用程序,故可将电脑与安卓手机相连,且电脑中预先配置有针对各个测试平台的用例执行环境。如此,在生成测试用例代码后,即可在电脑上的相应用例执行环境中运行该测试用例代码,以对安卓手机上的应用程序进行压力测试。
步骤214:后端通过在目标测试平台对应的用例执行环境中运行测试用例代码,以顺序针对测试用例代码中的每一个测试功能点均执行:调用当前测试功能点中的声明API以获得声明信息。
步骤215:顺序针对当前测试功能点中的每一个执行步骤均执行:当前执行步骤完成执行时,调用当前执行步骤中的断言API以获得断言信息,以及根据断言信息和声明信息,按需调用当前执行步骤中的失败截图API以获得失败截图并结束执行当前测试功能点。
步骤216:当前测试功能点结束执行时,调用当前测试功能点中的保存日志API以保存日志。
步骤217:每一个测试功能点均执行完成时,调用生成报告API,以根据获得的每一个失败截图和保存的每一个日志而生成报告。
步骤218:调用发送邮件API,以将生成的报告发送至测试用例代码中预设的每一个邮箱。
本发明实施例中,用例编写是基于自动化测试工具AirtestIDE完成,可自动定位APP控件,在此基础上采用python语言,封装了保存执行日志、失败自动截图、分析结果、生成报告、发送报告邮件模块;使用Windows任务计划每日定时执行用例。本发明实施例可自动完成手机APP日常的功能冒烟测试,也可验证云端接口是否正常可用,测试人员只需定时接收邮件、查看报告即可了解产品情况,不需要再每日花时间去手动测试。该方法适用于Windows界面APP、安卓手机APP和IOS手机APP的自动化测试,可投入实际使用中。
综上所述,本发明实施例能够满足应用程序的自动化测试,比如可以满足公司冰箱、空调、小家电三大业务线产品的移动端UI功能测试。不仅测试用例编写方便快捷,而且用例执行过程中自动分析测试结果,生成直观的测试报告并定时发送报告。故测试人员只需接收邮件就能远程定时知晓产品功能状态,省去了手动执行用例,分析测试结果的时间,对于业务逻辑变动不大的公司产品而言,该发明大大提高了测试效率,解放了测试人力。
如图3所示,本发明实施例提供了一种测试用例管理平台,可以包括:前端301和后端302,其中,所述后端302可以进一步包括:
用例生成模块3021,用于确定用于测试应用程序的测试用例代码,其中,所述测试用例代码中包括有顺序排列的至少一个测试功能点、生成报告API和发送邮件API,任一所述测试功能点中均包括有声明API和保存日志API,任一所述测试功能点内部的每一个执行步骤中均包括有断言API和失败截图API;
自动化测试模块3022,用于通过运行所述测试用例代码,以顺序针对每一个所述测试功能点均执行:调用当前测试功能点中的声明API以获得声明信息;顺序针对所述当前测试功能点中的每一个执行步骤均执行:当前执行步骤完成执行时,调用所述当前执行步骤中的断言API以获得断言信息,以及根据所述断言信息和所述声明信息,按需调用所述当前执行步骤中的失败截图API以获得失败截图并结束执行所述当前测试功能点;所述当前测试功能点结束执行时,调用所述当前测试功能点中的保存日志API以保存日志;每一个所述测试功能点均执行完成时,调用所述生成报告API,以根据获得的每一个失败截图和保存的每一个日志而生成报告;调用所述发送邮件API,以将生成的报告发送至所述测试用例代码中预设的每一个邮箱。
在本发明的一个实施例中,所述自动化测试模块3022,还用于确定预先搭建好的至少一个用例执行环境,不同用例执行环境对应的测试平台不同;以及用于在目标测试平台对应的用例执行环境中运行所述测试用例代码,其中,所述至少一个测试功能点为所述目标测试平台对应的全部测试功能点中的部分或全部。
在本发明的一个实施例中,所述目标测试平台为:针对Windows界面的测试平台、针对安卓APP的测试平台或针对IOS APP的测试平台;
其中,任一所述测试平台的代码均为基于python语言的可执行文件;
所述目标测试平台为针对Windows界面的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境;
所述目标测试平台为针对安卓APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境和adb环境;
所述目标测试平台为针对IOS APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境、Xcode以及WebDriverAgent。
在本发明的一个实施例中,请参考图4,所述用例生成模块3021,包括:确定单元30211,用于确定至少一个测试平台、至少一个用例执行相关项和至少一个测试类型,并确定每一个所述测试平台对应的至少一个测试功能点、每一个所述测试类型对应的测试用例模板文件;
处理单元30212,用于根据外部指定的所述至少一个测试平台中的目标测试平台,控制所述前端301展示所述目标测试平台对应的全部测试功能点;根据外部指定的所述全部测试功能点中的至少一个目标测试功能点,以及外部指定的针对所述至少一个目标测试功能点的排列顺序,控制所述前端301展示顺序排列的所述至少一个目标测试功能点;确定外部指定的每一个所述用例执行相关项的测试需求值;确定外部指定的所述至少一个测试类型中的目标测试类型;
生成单元30213,用于利用所述目标测试类型对应的测试用例模板文件,生成包括有顺序排列的所述至少一个目标测试功能点和每一个所述测试需求值的测试用例代码;将生成的测试用例代码确定为用于测试应用程序的测试用例代码。
在本发明的一个实施例中,所述确定单元30211,用于确定测试用例保存路径、测试名称、循环次数、收件人邮箱中的任意一个或多个用例执行相关项。
在本发明的一个实施例中,所述确定单元30211,用于确定压力测试和日常测试中的任意一个或多个测试类型。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
综上所述,本发明的实施例具有至少如下有益效果:
1、本发明实施例中,确定包括有顺序排列的若干测试功能点、生成报告API和发送邮件API的测试用例代码,测试功能点内各执行步骤中包括有断言API和失败截图API;通过运行测试用例代码,以顺序针对各测试功能点均执行:调用声明API以获得声明信息;任一执行步骤完成执行时,调用断言API以获得断言信息,根据断言信息和声明信息按需调用失败截图API以获得失败截图并结束执行当前测试功能点;当前测试功能点结束执行时调用保存日志API以保存日志;调用生成报告API以根据所有的失败截图和日志而生成报告;调用发送邮件API以将报告发送至邮箱。故人力投入降低。
2、本发明实施例中,可自动完成手机APP日常的功能冒烟测试,也可验证云端接口是否正常可用,测试人员只需定时接收邮件、查看报告即可了解产品情况,不需要再每日花时间去手动测试。该方法适用于Windows界面APP、安卓手机APP和IOS手机APP的自动化测试,可投入实际使用中。
3、本发明实施例中,不仅测试用例编写方便快捷,而且用例执行过程中自动分析测试结果,生成直观的测试报告并定时发送报告。故测试人员只需接收邮件就能远程定时知晓产品功能状态,省去了手动执行用例,分析测试结果的时间,对于业务逻辑变动不大的公司产品而言,该发明大大提高了测试效率,解放了测试人力。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种应用程序自动化测试的方法,其特征在于,应用于测试用例管理平台,包括:
确定用于测试应用程序的测试用例代码,其中,所述测试用例代码中包括有顺序排列的至少一个测试功能点、生成报告应用程序编程接口API和发送邮件API,任一所述测试功能点中均包括有声明API和保存日志API,任一所述测试功能点内部的每一个执行步骤中均包括有断言API和失败截图API;
通过运行所述测试用例代码,以顺序针对每一个所述测试功能点均执行:
调用当前测试功能点中的声明API以获得声明信息;
顺序针对所述当前测试功能点中的每一个执行步骤均执行:当前执行步骤完成执行时,调用所述当前执行步骤中的断言API以获得断言信息,以及根据所述断言信息和所述声明信息,按需调用所述当前执行步骤中的失败截图API以获得失败截图并结束执行所述当前测试功能点;
所述当前测试功能点结束执行时,调用所述当前测试功能点中的保存日志API以保存日志;
每一个所述测试功能点均执行完成时,调用所述生成报告API,以根据获得的每一个失败截图和保存的每一个日志而生成报告;
调用所述发送邮件API,以将生成的报告发送至所述测试用例代码中预设的每一个邮箱。
2.根据权利要求1所述的方法,其特征在于,
进一步包括:确定预先搭建好的至少一个用例执行环境,不同用例执行环境对应的测试平台不同;
所述运行所述测试用例代码,包括:在目标测试平台对应的用例执行环境中运行所述测试用例代码,其中,所述至少一个测试功能点为所述目标测试平台对应的全部测试功能点中的部分或全部。
3.根据权利要求2所述的方法,其特征在于,
所述目标测试平台为:针对Windows界面的测试平台、针对安卓APP的测试平台或针对IOS APP的测试平台;
其中,任一所述测试平台的代码均为基于python语言的可执行文件;
所述目标测试平台为针对Windows界面的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境;
所述目标测试平台为针对安卓APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境和adb环境;
所述目标测试平台为针对IOS APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境、Xcode以及WebDriverAgent。
4.根据权利要求1至3中任一所述的方法,其特征在于,
所述确定用于测试应用程序的测试用例代码,包括:
确定至少一个测试平台、至少一个用例执行相关项和至少一个测试类型,并确定每一个所述测试平台对应的至少一个测试功能点、每一个所述测试类型对应的测试用例模板文件;
根据外部指定的所述至少一个测试平台中的目标测试平台,展示所述目标测试平台对应的全部测试功能点;
根据外部指定的所述全部测试功能点中的至少一个目标测试功能点,以及外部指定的针对所述至少一个目标测试功能点的排列顺序,展示顺序排列的所述至少一个目标测试功能点;
确定外部指定的每一个所述用例执行相关项的测试需求值;
确定外部指定的所述至少一个测试类型中的目标测试类型;
利用所述目标测试类型对应的测试用例模板文件,生成包括有顺序排列的所述至少一个目标测试功能点和每一个所述测试需求值的测试用例代码;
将生成的测试用例代码确定为用于测试应用程序的测试用例代码。
5.根据权利要求4所述的方法,其特征在于,
所述至少一个用例执行相关项包括:测试用例保存路径、测试名称、循环次数、收件人邮箱中的任意一个或多个用例执行相关项;
和/或,
所述至少一个测试类型包括:压力测试和日常测试中的任意一个或多个测试类型。
6.一种测试用例管理平台,其特征在于,包括:前端和后端,其中,所述后端进一步包括:
用例生成模块,用于确定用于测试应用程序的测试用例代码,其中,所述测试用例代码中包括有顺序排列的至少一个测试功能点、生成报告应用程序编程接口API和发送邮件API,任一所述测试功能点中均包括有声明API和保存日志API,任一所述测试功能点内部的每一个执行步骤中均包括有断言API和失败截图API;
自动化测试模块,用于通过运行所述测试用例代码,以顺序针对每一个所述测试功能点均执行:调用当前测试功能点中的声明API以获得声明信息;顺序针对所述当前测试功能点中的每一个执行步骤均执行:当前执行步骤完成执行时,调用所述当前执行步骤中的断言API以获得断言信息,以及根据所述断言信息和所述声明信息,按需调用所述当前执行步骤中的失败截图API以获得失败截图并结束执行所述当前测试功能点;所述当前测试功能点结束执行时,调用所述当前测试功能点中的保存日志API以保存日志;每一个所述测试功能点均执行完成时,调用所述生成报告API,以根据获得的每一个失败截图和保存的每一个日志而生成报告;调用所述发送邮件API,以将生成的报告发送至所述测试用例代码中预设的每一个邮箱。
7.根据权利要求6所述的测试用例管理平台,其特征在于,
所述自动化测试模块,还用于确定预先搭建好的至少一个用例执行环境,不同用例执行环境对应的测试平台不同;以及用于在目标测试平台对应的用例执行环境中运行所述测试用例代码,其中,所述至少一个测试功能点为所述目标测试平台对应的全部测试功能点中的部分或全部。
8.根据权利要求7所述的测试用例管理平台,其特征在于,
所述目标测试平台为:针对Windows界面的测试平台、针对安卓APP的测试平台或针对IOS APP的测试平台;
其中,任一所述测试平台的代码均为基于python语言的可执行文件;
所述目标测试平台为针对Windows界面的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境;
所述目标测试平台为针对安卓APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境和adb环境;
所述目标测试平台为针对IOS APP的测试平台时,对应的用例执行环境包括:在电脑中配置的python环境、Xcode以及WebDriverAgent。
9.根据权利要求6至8中任一所述的测试用例管理平台,其特征在于,
所述用例生成模块,包括:
确定单元,用于确定至少一个测试平台、至少一个用例执行相关项和至少一个测试类型,并确定每一个所述测试平台对应的至少一个测试功能点、每一个所述测试类型对应的测试用例模板文件;
处理单元,用于根据外部指定的所述至少一个测试平台中的目标测试平台,控制所述前端展示所述目标测试平台对应的全部测试功能点;根据外部指定的所述全部测试功能点中的至少一个目标测试功能点,以及外部指定的针对所述至少一个目标测试功能点的排列顺序,控制所述前端展示顺序排列的所述至少一个目标测试功能点;确定外部指定的每一个所述用例执行相关项的测试需求值;确定外部指定的所述至少一个测试类型中的目标测试类型;
生成单元,用于利用所述目标测试类型对应的测试用例模板文件,生成包括有顺序排列的所述至少一个目标测试功能点和每一个所述测试需求值的测试用例代码;将生成的测试用例代码确定为用于测试应用程序的测试用例代码。
10.根据权利要求9所述的测试用例管理平台,其特征在于,
所述确定单元,用于确定测试用例保存路径、测试名称、循环次数、收件人邮箱中的任意一个或多个用例执行相关项;
和/或,
所述确定单元,用于确定压力测试和日常测试中的任意一个或多个测试类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910064730.0A CN109614342A (zh) | 2019-01-23 | 2019-01-23 | 一种应用程序自动化测试的方法及测试用例管理平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910064730.0A CN109614342A (zh) | 2019-01-23 | 2019-01-23 | 一种应用程序自动化测试的方法及测试用例管理平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109614342A true CN109614342A (zh) | 2019-04-12 |
Family
ID=66018189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910064730.0A Pending CN109614342A (zh) | 2019-01-23 | 2019-01-23 | 一种应用程序自动化测试的方法及测试用例管理平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614342A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506465A (zh) * | 2020-04-20 | 2020-08-07 | 北京易点淘网络技术有限公司 | 电脑功能测试方法及装置 |
CN111797008A (zh) * | 2020-06-18 | 2020-10-20 | 北京每日优鲜电子商务有限公司 | 移动端埋点数据的自动验证方法、设备和存储介质 |
CN112882948A (zh) * | 2021-03-15 | 2021-06-01 | 数字广东网络建设有限公司 | 一种应用的稳定性测试方法、装置、系统及存储介质 |
CN112882945A (zh) * | 2021-03-12 | 2021-06-01 | 百度在线网络技术(北京)有限公司 | 小程序数据处理方法、装置、设备及存储介质 |
CN114661594A (zh) * | 2022-03-16 | 2022-06-24 | 上海掌门科技有限公司 | 一种用于自动化测试的方法、设备、介质及程序产品 |
CN115248585A (zh) * | 2022-09-20 | 2022-10-28 | 平安银行股份有限公司 | 基于控制器引擎的自动化测试执行方法、控制器及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679658A (zh) * | 2015-03-17 | 2015-06-03 | 百度在线网络技术(北京)有限公司 | Web页面的测试方法和系统 |
CN104699616A (zh) * | 2015-03-31 | 2015-06-10 | 北京奇虎科技有限公司 | 一种应用测试的方法、装置及系统 |
US20150339213A1 (en) * | 2014-05-21 | 2015-11-26 | Cgi Technologies And Solutions Inc. | Automated testing of an application system |
CN108255653A (zh) * | 2018-01-02 | 2018-07-06 | 深圳壹账通智能科技有限公司 | 一种产品的测试方法及其终端 |
CN108491322A (zh) * | 2018-03-06 | 2018-09-04 | 平安科技(深圳)有限公司 | 自动化测试方法、装置及存储介质 |
-
2019
- 2019-01-23 CN CN201910064730.0A patent/CN109614342A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150339213A1 (en) * | 2014-05-21 | 2015-11-26 | Cgi Technologies And Solutions Inc. | Automated testing of an application system |
CN104679658A (zh) * | 2015-03-17 | 2015-06-03 | 百度在线网络技术(北京)有限公司 | Web页面的测试方法和系统 |
CN104699616A (zh) * | 2015-03-31 | 2015-06-10 | 北京奇虎科技有限公司 | 一种应用测试的方法、装置及系统 |
CN108255653A (zh) * | 2018-01-02 | 2018-07-06 | 深圳壹账通智能科技有限公司 | 一种产品的测试方法及其终端 |
CN108491322A (zh) * | 2018-03-06 | 2018-09-04 | 平安科技(深圳)有限公司 | 自动化测试方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
WEIXIN_30471065: "一种新的自动化UI测试解决方案 Airtest Project", 《CSDN博客,HTTPS://BLOG.CSDN.NET/WEIXIN_30471065/ARTICLE/DETAILS/96732857》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506465A (zh) * | 2020-04-20 | 2020-08-07 | 北京易点淘网络技术有限公司 | 电脑功能测试方法及装置 |
CN111797008A (zh) * | 2020-06-18 | 2020-10-20 | 北京每日优鲜电子商务有限公司 | 移动端埋点数据的自动验证方法、设备和存储介质 |
CN111797008B (zh) * | 2020-06-18 | 2024-05-14 | 北京每日优鲜电子商务有限公司 | 移动端埋点数据的自动验证方法、设备和存储介质 |
CN112882945A (zh) * | 2021-03-12 | 2021-06-01 | 百度在线网络技术(北京)有限公司 | 小程序数据处理方法、装置、设备及存储介质 |
CN112882945B (zh) * | 2021-03-12 | 2024-06-04 | 百度在线网络技术(北京)有限公司 | 小程序数据处理方法、装置、设备及存储介质 |
CN112882948A (zh) * | 2021-03-15 | 2021-06-01 | 数字广东网络建设有限公司 | 一种应用的稳定性测试方法、装置、系统及存储介质 |
CN114661594A (zh) * | 2022-03-16 | 2022-06-24 | 上海掌门科技有限公司 | 一种用于自动化测试的方法、设备、介质及程序产品 |
CN115248585A (zh) * | 2022-09-20 | 2022-10-28 | 平安银行股份有限公司 | 基于控制器引擎的自动化测试执行方法、控制器及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614342A (zh) | 一种应用程序自动化测试的方法及测试用例管理平台 | |
CN108733568A (zh) | 应用测试方法、装置、设备及可读存储介质 | |
WO2020006827A1 (zh) | 一种智能应答的方法和装置 | |
CN111240973B (zh) | 基于仿真的设备测试方法、系统及可读存储介质 | |
CN101478449A (zh) | 一种协议自动测试方法及其系统 | |
CN101887392A (zh) | 一种软件系统运行稳定性测试方法及装置 | |
CN108965293B (zh) | 报文解析方法和装置、电子设备 | |
CN104461895A (zh) | 测试序列的编辑方法和系统以及自动化测试系统 | |
CN110740071B (zh) | 一种网络接口监控的方法、装置及系统 | |
CN102833577A (zh) | 电视机功能自动测试的方法和装置 | |
CN106201472A (zh) | 软件开发的任务调度方法及装置 | |
CN109871321A (zh) | 一种测试用例代码自动生成的方法及测试用例管理平台 | |
CN101853155A (zh) | 一种自动发送at命令的方法及装置 | |
CN111639002B (zh) | 休眠功耗测试方法、系统、计算机设备和存储介质 | |
CN109918310A (zh) | 一种建模平台接口测试方法 | |
CN108897557A (zh) | 微服务架构的更新方法及装置 | |
CN109005079A (zh) | 一种电动汽车充电桩通信协议的检测方法和装置 | |
CN116302989A (zh) | 压力测试方法及系统、存储介质、计算机设备 | |
CN111242445B (zh) | 基于配置生产线测试产品的方法、设备及可读存储介质 | |
CN110232013B (zh) | 测试方法、装置以及控制器和介质 | |
CN104298671B (zh) | 数据统计分析方法及装置 | |
CN115022304A (zh) | 基于rpa和ai实现ia的跨平台文件处理方法、装置和系统 | |
CN105512118A (zh) | 一种反馈用户需求的方法及装置 | |
CN111090770A (zh) | 数据信息的获取方法、装置及系统、家用电器 | |
CN109525730B (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: 20190412 |