CN111078547A - 一种python通用app软件自动化测试框架系统 - Google Patents

一种python通用app软件自动化测试框架系统 Download PDF

Info

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
Application number
CN201911235342.0A
Other languages
English (en)
Inventor
毛杨杨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unicloud Nanjing Digital Technology Co Ltd
Original Assignee
Unicloud Nanjing Digital Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Unicloud Nanjing Digital Technology Co Ltd filed Critical Unicloud Nanjing Digital Technology Co Ltd
Priority to CN201911235342.0A priority Critical patent/CN111078547A/zh
Publication of CN111078547A publication Critical patent/CN111078547A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test 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软件自动化测试框架系统
技术领域
本发明涉及软件测试技术领域,具体是一种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)、截图并返回测试结果。
CN201911235342.0A 2019-12-05 2019-12-05 一种python通用app软件自动化测试框架系统 Pending CN111078547A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 福建省农村信用社联合社 一种集中式软件测试管理系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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