CN111078547A - 一种python通用app软件自动化测试框架系统 - Google Patents
一种python通用app软件自动化测试框架系统 Download PDFInfo
- Publication number
- CN111078547A CN111078547A CN201911235342.0A CN201911235342A CN111078547A CN 111078547 A CN111078547 A CN 111078547A CN 201911235342 A CN201911235342 A CN 201911235342A CN 111078547 A CN111078547 A CN 111078547A
- Authority
- CN
- China
- Prior art keywords
- module
- test
- interface
- automation
- script
- 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
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)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及软件测试技术领域,公开了一种PYTHON通用APP软件自动化测试框架系统,包括脚本维护模块、脚本生成模块、脚本执行模块、结果验证模块和报告生成模块,所述脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,并且提供接口自动化模块或者ui自动化模块两种自动化测试方式。本发明的脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,从而通过高效、维护成本低的测试脚本生成方法,可以有效地降低系统维护成本,脚本执行模块可以单独执行接口自动化模块或者ui自动化模块两种自动化测试方式中的其中一种,也可以同时执行两种,从而实现了多样化的自动化方法。
Description
技术领域
本发明涉及软件测试技术领域,具体是一种PYTHON通用APP软件自动化测试框架系统。
背景技术
随着网络技术的高速发展,APP软件在我们的日常生活中几乎无处不在,在当前的开发背景下,APP软件的版本更新迭代很快,在软件更新时,必须对其进行测试,目前在进行自动化测试时,大多采用开源自动化框架分别进行UI自动化测试和接口自动化测试,通过编写测试脚本或录入测试步骤维护测试用例,因此,每次更新都需要人工手动测试,测试人员的重复工作的工作量很大。
中国专利公开了一种软件自动化测试框架及测试方法(公开号CN110232024A),该专利技术能够方便的对软件进行测试,覆盖面广,无需人工编码,节约了软件测试成本,但是其每次版本更新都需要更改代码或者脚本,测试脚本维护成本过高,并且不能将两者结合起来使用,以及自由度不够,需严格按照框架设定的流程走,二次开发不友好。因此,本领域技术人员提供了一种PYTHON通用APP软件自动化测试框架系统,以解决上述背景技术中提出的问题。
发明内容
本发明的目的在于提供一种PYTHON通用APP软件自动化测试框架系统,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种PYTHON通用APP软件自动化测试框架系统,包括脚本维护模块、脚本生成模块、脚本执行模块、结果验证模块和报告生成模块,所述脚本维护模块用于当版本迭代或者需要更新时,修改测试用例数据库中的相关字段,从而降低了脚本维护的成本,所述脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,并且提供接口自动化模块或者ui自动化模块两种自动化测试方式,所述脚本执行模块执行一种或同时执行自动化测试方式,所述结果验证模块用于验证模两种自动化测试的结果,所述报告生成模块用于将报告生成并发送到展示服务器,便于开发、测试、管理人员在线浏览测试结果,及时发现问题,保证产品质量。
作为本发明进一步的方案:测试方法包括以下步骤:
S1、编写测试模板包括选择自动化测试方式(接口自动化模块或者ui自动化模块):通过python中的Template库,可以根据数据库中的模板编号读取测试模板文件,按照模板文件格式,批量生成测试脚本,再编写模板文件的时候,可选择调用接口自动化模块或者ui自动化模块,或者两者都使用;
S2、在数据库中录入用例相关数据(接口自动化模块需要录入接口各项信息,ui自动化模块需要录入每一步的步骤放在列表中):在mysql数据库中建立用例库,用例库中需要测试的表以test开头,新建表时,将接口自动化模块所需的接口信息、ui自动化模块所需的流程步骤以及生成脚本所要使用的模板编号录入;
S3、在公共模块中录入环境信息(包括数据库信息,环境信息,app包名、设备名等):通过连接手机或者模拟器后,根据命令获取设备名、app包等,录入到公共模块;
S4、开始测试(生成测试报告发送到展示服务器,访问可见详细报告包括通过率、错误率、正确率、概览、详情,有截图的用例可以查看截图,并且提供下载所有截图以及操作日志的功能):测试过程展开分为两种;一种为ui自动化模块,另一种为接口自动化模块。
作为本发明再进一步的方案:所述ui自动化模块使用python中的UiAutomator自动化框架实现页面元素抓取,点击、输入文本、截图等功能,所述截图模块包括截图、图片处理、图片上传、图片打包等功能。
作为本发明再进一步的方案:所述接口自动化模块使用python中的requests库来发送接口请求,且接口自动化模块的功能还包括:
(1)、获取验证码功能,app验证过程中,会需要手机短信验证码,通过在手机上的Tasker软件编写脚本,获取短信实时验证码将其发送到服务器上,并获取内容;
(2)、参数加解密功能,若接口参数被加密,则需要加解密模块对参数处理后发送或者获取,实现方式采用python中的Crypto库;
(4)、截图功能,通过python-selenium中的webdriver将接口页面渲染,可采用手机模式渲染,以便于与ui模块获得的截图比较;
(5)、页面检查模块,将渲染后的页面通过bs4中的BeautifulSoup获取页面信息,并可验证信息的正确性,并将检测结果返回用例。
作为本发明再进一步的方案:所述ui自动化模块包括以下工作流程:(1)、获取流程步骤;(2)、执行流程步骤;(3)、通过获取页面元素并进行比较,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。
作为本发明再进一步的方案:所述接口自动化模块包括以下工作流程:(1)、获取接口信息;(2)、发送接口请求并获得返回值;(3)、通过返回值与准确值对比,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。
与现有技术相比,本发明的有益效果:
1、脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,从而通过高效、维护成本低的测试脚本生成方法,可以有效地降低系统维护成本。
2、脚本执行模块可以执行接口自动化模块或者ui自动化模块两种自动化测试方式中的一种,也可以同时执行两种,从而实现了多样化的自动化方法。
3、整个系统采用了高度自由,二次开发十分友好的框架体系:了解代码的测试人员可根据自身产品情况对框架进行二次开发,获取想要的结果。
4、接口自动化模块提供例如手机验证码获取、加解密方法兼容等功能,帮助测试人员解决一些实际问题,如在无法从数据库获取验证码的情况下,如何完成注册,修改密码的流程。
5、接口自动化模块设置了友好的报告界面,界面美观、提供截图、日志下载,便于开发、测试人员定位问题,或者完成测试脚本。
附图说明
图1为一种PYTHON通用APP软件自动化测试框架系统的结构示意图;
图2为一种PYTHON通用APP软件自动化测试框架系统中ui自动化模块的工作流程图;
图3为一种PYTHON通用APP软件自动化测试框架系统中接口自动化模块的工作流程图。
具体实施方式
请参阅图1~3,本发明实施例中,一种PYTHON通用APP软件自动化测试框架系统,包括脚本维护模块、脚本生成模块、脚本执行模块、结果验证模块和报告生成模块,脚本维护模块用于当版本迭代或者需要更新时,修改测试用例数据库中的相关字段,从而降低了脚本维护的成本,脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,并且提供接口自动化模块或者ui自动化模块两种自动化测试方式,脚本执行模块执行一种或同时执行自动化测试方式,结果验证模块用于验证模两种自动化测试的结果,报告生成模块用于将报告生成并发送到展示服务器,开发、测试、管理人员都可以在线浏览测试结果,及时发现问题,保证产品质量。
优先的,测试方法包括以下步骤:
S1、编写测试模板包括选择自动化测试方式(接口自动化模块或者ui自动化模块):通过python中的Template库,可以根据数据库中的模板编号读取测试模板文件,按照模板文件格式,批量生成测试脚本,再编写模板文件的时候,可选择调用接口自动化模块或者ui自动化模块,或者两者都使用;
S2、在数据库中录入用例相关数据(接口自动化模块需要录入接口各项信息,ui自动化模块需要录入每一步的步骤放在列表中):在mysql数据库中建立用例库,用例库中需要测试的表以test开头,新建表时,将接口自动化模块所需的接口信息、ui自动化模块所需的流程步骤以及生成脚本所要使用的模板编号录入;
S3、在公共模块中录入环境信息(包括数据库信息,环境信息,app包名、设备名等):通过连接手机或者模拟器后,根据命令获取设备名、app包等,录入到公共模块;
S4、开始测试(生成测试报告发送到展示服务器,访问可见详细报告包括通过率、错误率、正确率、概览、详情,有截图的用例可以查看截图,并且提供下载所有截图以及操作日志的功能):测试过程展开分为两种;一种为ui自动化模块,另一种为接口自动化模块。
优先的,ui自动化模块使用python中的UiAutomator自动化框架实现页面元素抓取,点击、输入文本、截图等功能,截图模块包括截图、图片处理、图片上传、图片打包等功能。
优先的,接口自动化模块使用python中的requests库来发送接口请求,且接口自动化模块的功能还包括:
(1)、获取验证码功能,app验证过程中,会需要手机短信验证码,通过在手机上的Tasker软件编写脚本,获取短信实时验证码将其发送到服务器上,并获取内容;
(2)、参数加解密功能,若接口参数被加密,则需要加解密模块对参数处理后发送或者获取,实现方式采用python中的Crypto库;
(4)、截图功能,通过python-selenium中的webdriver将接口页面渲染,可采用手机模式渲染,以便于与ui模块获得的截图比较;
(5)、页面检查模块,将渲染后的页面通过bs4中的BeautifulSoup获取页面信息,并可验证信息的正确性,并将检测结果返回用例。
优先的,ui自动化模块包括以下工作流程:(1)、获取流程步骤;(2)、执行流程步骤;(3)、通过获取页面元素并进行比较,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。
优先的,接口自动化模块包括以下工作流程:(1)、获取接口信息;(2)、发送接口请求并获得返回值;(3)、通过返回值与准确值对比,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。
以上所述的,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种PYTHON通用APP软件自动化测试框架系统,包括脚本维护模块、脚本生成模块、脚本执行模块、结果验证模块和报告生成模块,其特征在于,所述脚本维护模块用于当版本迭代或者需要更新时,修改测试用例数据库中的相关字段,所述脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,并且提供接口自动化模块或者ui自动化模块两种自动化测试方式,所述脚本执行模块执行一种或同时执行自动化测试方式,所述结果验证模块用于验证模两种自动化测试的结果,所述报告生成模块用于将报告生成并发送到展示服务器,便于开发、测试、管理人员在线浏览测试结果,及时发现问题。
2.根据权利要求1所述的一种PYTHON通用APP软件自动化测试框架系统,其特征在于,测试方法包括以下步骤:
S1、编写测试模板包括选择自动化测试方式(接口自动化模块或者ui自动化模块):通过python中的Template库,可以根据数据库中的模板编号读取测试模板文件,按照模板文件格式,批量生成测试脚本,再编写模板文件的时候,可选择调用接口自动化模块或者ui自动化模块,或者两者都使用;
S2、在数据库中录入用例相关数据(接口自动化模块需要录入接口各项信息,ui自动化模块需要录入每一步的步骤放在列表中):在mysql数据库中建立用例库,用例库中需要测试的表以test开头,新建表时,将接口自动化模块所需的接口信息、ui自动化模块所需的流程步骤以及生成脚本所要使用的模板编号录入;
S3、在公共模块中录入环境信息(包括数据库信息,环境信息,app包名、设备名等):通过连接手机或者模拟器后,根据命令获取设备名、app包等,录入到公共模块;
S4、开始测试(生成测试报告发送到展示服务器,访问可见详细报告包括通过率、错误率、正确率、概览、详情,有截图的用例可以查看截图,并且提供下载所有截图以及操作日志的功能):测试过程展开分为两种;一种为ui自动化模块,另一种为接口自动化模块。
3.根据权利要求1所述的一种PYTHON通用APP软件自动化测试框架系统,其特征在于,所述ui自动化模块使用python中的UiAutomator自动化框架实现页面元素抓取,点击、输入文本、截图等功能,所述截图模块包括截图、图片处理、图片上传、图片打包等功能。
4.根据权利要求1所述的一种PYTHON通用APP软件自动化测试框架系统,其特征在于,所述接口自动化模块使用python中的requests库来发送接口请求,且接口自动化模块的功能还包括:
(1)、获取验证码功能,app验证过程中,会需要手机短信验证码,通过在手机上的Tasker软件编写脚本,获取短信实时验证码将其发送到服务器上,并获取内容;
(2)、参数加解密功能,若接口参数被加密,则需要加解密模块对参数处理后发送或者获取,实现方式采用python中的Crypto库;
(4)、截图功能,通过python-selenium中的webdriver将接口页面渲染,可采用手机模式渲染,以便于与ui模块获得的截图比较;
(5)、页面检查模块,将渲染后的页面通过bs4中的BeautifulSoup获取页面信息,并可验证信息的正确性,并将检测结果返回用例。
5.根据权利要求1所述的一种PYTHON通用APP软件自动化测试框架系统,其特征在于,所述ui自动化模块包括以下工作流程:(1)、获取流程步骤;(2)、执行流程步骤;(3)、通过获取页面元素并进行比较,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。
6.根据权利要求1所述的一种PYTHON通用APP软件自动化测试框架系统,其特征在于,所述接口自动化模块包括以下工作流程:(1)、获取接口信息;(2)、发送接口请求并获得返回值;(3)、通过返回值与准确值对比,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911235342.0A CN111078547A (zh) | 2019-12-05 | 2019-12-05 | 一种python通用app软件自动化测试框架系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911235342.0A CN111078547A (zh) | 2019-12-05 | 2019-12-05 | 一种python通用app软件自动化测试框架系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111078547A true CN111078547A (zh) | 2020-04-28 |
Family
ID=70313122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911235342.0A Pending CN111078547A (zh) | 2019-12-05 | 2019-12-05 | 一种python通用app软件自动化测试框架系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078547A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433955A (zh) * | 2020-12-30 | 2021-03-02 | 伟创力电子技术(苏州)有限公司 | 一种基于Python的通用软件测试系统 |
CN112487269A (zh) * | 2020-12-22 | 2021-03-12 | 安徽商信政通信息技术股份有限公司 | 一种爬虫自动化脚本的检测方法及装置 |
CN112835789A (zh) * | 2021-01-15 | 2021-05-25 | 北京高因科技有限公司 | 自动化测试框架自动测试的实现技术 |
CN114064446A (zh) * | 2020-08-05 | 2022-02-18 | 福建天泉教育科技有限公司 | 一种实现多实例服务自动回归测试的方法及其系统 |
CN115422093A (zh) * | 2022-11-03 | 2022-12-02 | 易方信息科技股份有限公司 | 基于编写用例自动化测试的截图提效方法、系统及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335293A (zh) * | 2015-11-30 | 2016-02-17 | 努比亚技术有限公司 | 一种基于接口并行的自动化测试系统和方法 |
CN109828905A (zh) * | 2018-12-15 | 2019-05-31 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机装置及存储介质 |
CN109933522A (zh) * | 2019-01-25 | 2019-06-25 | 畅捷通信息技术股份有限公司 | 一种自动化用例的测试方法、测试系统及存储介质 |
CN110221962A (zh) * | 2019-04-28 | 2019-09-10 | 福建省农村信用社联合社 | 一种集中式软件测试管理系统及方法 |
-
2019
- 2019-12-05 CN CN201911235342.0A patent/CN111078547A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335293A (zh) * | 2015-11-30 | 2016-02-17 | 努比亚技术有限公司 | 一种基于接口并行的自动化测试系统和方法 |
CN109828905A (zh) * | 2018-12-15 | 2019-05-31 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机装置及存储介质 |
CN109933522A (zh) * | 2019-01-25 | 2019-06-25 | 畅捷通信息技术股份有限公司 | 一种自动化用例的测试方法、测试系统及存储介质 |
CN110221962A (zh) * | 2019-04-28 | 2019-09-10 | 福建省农村信用社联合社 | 一种集中式软件测试管理系统及方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064446A (zh) * | 2020-08-05 | 2022-02-18 | 福建天泉教育科技有限公司 | 一种实现多实例服务自动回归测试的方法及其系统 |
CN112487269A (zh) * | 2020-12-22 | 2021-03-12 | 安徽商信政通信息技术股份有限公司 | 一种爬虫自动化脚本的检测方法及装置 |
CN112487269B (zh) * | 2020-12-22 | 2023-10-24 | 安徽商信政通信息技术股份有限公司 | 一种爬虫自动化脚本的检测方法及装置 |
CN112433955A (zh) * | 2020-12-30 | 2021-03-02 | 伟创力电子技术(苏州)有限公司 | 一种基于Python的通用软件测试系统 |
CN112835789A (zh) * | 2021-01-15 | 2021-05-25 | 北京高因科技有限公司 | 自动化测试框架自动测试的实现技术 |
CN115422093A (zh) * | 2022-11-03 | 2022-12-02 | 易方信息科技股份有限公司 | 基于编写用例自动化测试的截图提效方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078547A (zh) | 一种python通用app软件自动化测试框架系统 | |
CN109828903B (zh) | 自动化测试方法、装置、计算机装置及存储介质 | |
CN107908541B (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN108959068B (zh) | 软件界面测试方法、设备及存储介质 | |
US9336127B2 (en) | Exposing method related data calls during testing in an event driven, multichannel architecture | |
CN103544101B (zh) | 一种无线平台开发自动测试系统及方法 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN110716870B (zh) | 服务的自动化测试方法及装置 | |
CN105912473A (zh) | 基于bdd的移动app自动测试平台和测试方法 | |
CN108345532A (zh) | 一种自动化测试用例生成方法和装置 | |
US11245601B2 (en) | Automated integrated test system and method thereof | |
CN109857663B (zh) | 关键字驱动与图像相似度结合的自动化测试平台 | |
CN105786695A (zh) | 数据测试方法及系统 | |
CN105808510A (zh) | 一种调试数据校验方法及装置 | |
CN112540924A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN114741283A (zh) | 一种基于python设计的接口自动化测试方法及装置 | |
CN108073511B (zh) | 测试代码生成方法和装置 | |
KR101792864B1 (ko) | 애플리케이션 검증 시스템 및 방법 | |
CN115952079A (zh) | 一种移动应用自动化行为记录及分析定位缺陷方法及系统 | |
CN113590124B (zh) | 目标对象处理方法及装置 | |
CN112860640B (zh) | 批量上传文件自动化方法和系统 | |
CN112328473A (zh) | 代码自动化集成测试方法、装置及电子设备 | |
CN109669868A (zh) | 软件测试的方法及系统 | |
CN114661609B (zh) | 人工智能医疗自动化测试集成系统 | |
US20080066005A1 (en) | Systems and Methods of Interfacing with Enterprise Resource Planning Systems |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200428 |