admin 管理员组

文章数量: 887039


2024年1月17日发(作者:shell脚本读取文件每一行并判断)

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号

CN 111078547 A(43)申请公布日

2020.04.28(21)申请号 2.0(22)申请日 2019.12.05(71)申请人 紫光云(南京)数字技术有限公司地址 210000 江苏省南京市浦口区江浦街道浦滨路320号浦口科创广场科创总部大厦B座17楼(72)发明人 毛杨杨 (51).G06F

11/36(2006.01)

权利要求书2页 说明书4页 附图3页CN

111078547

A(54)发明名称一种PYTHON通用APP软件自动化测试框架系统(57)摘要本发明涉及软件测试技术领域,公开了一种PYTHON通用APP软件自动化测试框架系统,包括脚本维护模块、脚本生成模块、脚本执行模块、结果验证模块和报告生成模块,所述脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,并且提供接口自动化模块或者ui自动化模块两种自动化测试方式。本发明的脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,从而通过高效、维护成本低的测试脚本生成方法,可以有效地降低系统维护成本,脚本执行模块可以单独执行接口自动化模块或者ui自动化模块两种自动化测试方式中的其中一种,也可以同时执行两种,从而实现了多样化的自动化方法。

CN 111078547 A权 利 要 求 书1/2页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)、通过获2

CN 111078547 A权 利 要 求 书2/2页取页面元素并进行比较,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。6.根据权利要求1所述的一种PYTHON通用APP软件自动化测试框架系统,其特征在于,所述接口自动化模块包括以下工作流程:(1)、获取接口信息;(2)、发送接口请求并获得返回值;(3)、通过返回值与准确值对比,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。3

CN 111078547 A说 明 书一种PYTHON通用APP软件自动化测试框架系统1/4页技术领域[0001]本发明涉及软件测试技术领域,具体是一种PYTHON通用APP软件自动化测试框架系统。背景技术[0002]随着网络技术的高速发展,APP软件在我们的日常生活中几乎无处不在,在当前的开发背景下,APP软件的版本更新迭代很快,在软件更新时,必须对其进行测试,目前在进行自动化测试时,大多采用开源自动化框架分别进行UI自动化测试和接口自动化测试,通过编写测试脚本或录入测试步骤维护测试用例,因此,每次更新都需要人工手动测试,测试人员的重复工作的工作量很大。[0003]中国专利公开了一种软件自动化测试框架及测试方法(公开号CN110232024A),该专利技术能够方便的对软件进行测试,覆盖面广,无需人工编码,节约了软件测试成本,但是其每次版本更新都需要更改代码或者脚本,测试脚本维护成本过高,并且不能将两者结合起来使用,以及自由度不够,需严格按照框架设定的流程走,二次开发不友好。因此,本领域技术人员提供了一种PYTHON通用APP软件自动化测试框架系统,以解决上述背景技术中提出的问题。发明内容[0004]本发明的目的在于提供一种PYTHON通用APP软件自动化测试框架系统,以解决上述背景技术中提出的问题。[0005]为实现上述目的,本发明提供如下技术方案:[0006]一种PYTHON通用APP软件自动化测试框架系统,包括脚本维护模块、脚本生成模块、脚本执行模块、结果验证模块和报告生成模块,所述脚本维护模块用于当版本迭代或者需要更新时,修改测试用例数据库中的相关字段,从而降低了脚本维护的成本,所述脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,并且提供接口自动化模块或者ui自动化模块两种自动化测试方式,所述脚本执行模块执行一种或同时执行自动化测试方式,所述结果验证模块用于验证模两种自动化测试的结果,所述报告生成模块用于将报告生成并发送到展示服务器,便于开发、测试、管理人员在线浏览测试结果,及时发现问题,保证产品质量。[0007]作为本发明进一步的方案:测试方法包括以下步骤:[0008]S1、编写测试模板包括选择自动化测试方式(接口自动化模块或者ui自动化模块):通过python中的Template库,可以根据数据库中的模板编号读取测试模板文件,按照模板文件格式,批量生成测试脚本,再编写模板文件的时候,可选择调用接口自动化模块或者ui自动化模块,或者两者都使用;[0009]S2、在数据库中录入用例相关数据(接口自动化模块需要录入接口各项信息,ui自动化模块需要录入每一步的步骤放在列表中):在mysql数据库中建立用例库,用例库中需4

CN 111078547 A说 明 书2/4页要测试的表以test开头,新建表时,将接口自动化模块所需的接口信息、ui自动化模块所需的流程步骤以及生成脚本所要使用的模板编号录入;[0010]S3、在公共模块中录入环境信息(包括数据库信息,环境信息,app包名、设备名等):通过连接手机或者模拟器后,根据命令获取设备名、app包等,录入到公共模块;[0011]S4、开始测试(生成测试报告发送到展示服务器,访问可见详细报告包括通过率、错误率、正确率、概览、详情,有截图的用例可以查看截图,并且提供下载所有截图以及操作日志的功能):测试过程展开分为两种;一种为ui自动化模块,另一种为接口自动化模块。[0012]作为本发明再进一步的方案:所述ui自动化模块使用python中的UiAutomator自动化框架实现页面元素抓取,点击、输入文本、截图等功能,所述截图模块包括截图、图片处理、图片上传、图片打包等功能。[0013]作为本发明再进一步的方案:所述接口自动化模块使用python中的requests库来发送接口请求,且接口自动化模块的功能还包括:[0014](1)、获取验证码功能,app验证过程中,会需要手机短信验证码,通过在手机上的Tasker软件编写脚本,获取短信实时验证码将其发送到服务器上,并获取内容;[0015](2)、参数加解密功能,若接口参数被加密,则需要加解密模块对参数处理后发送或者获取,实现方式采用python中的Crypto库;[0016](4)、截图功能,通过python-selenium中的webdriver将接口页面渲染,可采用手机模式渲染,以便于与ui模块获得的截图比较;[0017](5)、页面检查模块,将渲染后的页面通过bs4中的BeautifulSoup获取页面信息,并可验证信息的正确性,并将检测结果返回用例。[0018]作为本发明再进一步的方案:所述ui自动化模块包括以下工作流程:(1)、获取流程步骤;(2)、执行流程步骤;(3)、通过获取页面元素并进行比较,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。[0019]作为本发明再进一步的方案:所述接口自动化模块包括以下工作流程:(1)、获取接口信息;(2)、发送接口请求并获得返回值;(3)、通过返回值与准确值对比,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。[0020]与现有技术相比,本发明的有益效果:[0021]1、脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,从而通过高效、维护成本低的测试脚本生成方法,可以有效地降低系统维护成本。[0022]2、脚本执行模块可以执行接口自动化模块或者ui自动化模块两种自动化测试方式中的一种,也可以同时执行两种,从而实现了多样化的自动化方法。[0023]3、整个系统采用了高度自由,二次开发十分友好的框架体系:了解代码的测试人员可根据自身产品情况对框架进行二次开发,获取想要的结果。[0024]4、接口自动化模块提供例如手机验证码获取、加解密方法兼容等功能,帮助测试人员解决一些实际问题,如在无法从数据库获取验证码的情况下,如何完成注册,修改密码的流程。5

CN 111078547 A[0025]说 明 书3/4页5、接口自动化模块设置了友好的报告界面,界面美观、提供截图、日志下载,便于开发、测试人员定位问题,或者完成测试脚本。附图说明[0026]图1为一种PYTHON通用APP软件自动化测试框架系统的结构示意图;[0027]图2为一种PYTHON通用APP软件自动化测试框架系统中ui自动化模块的工作流程图;[0028]图3为一种PYTHON通用APP软件自动化测试框架系统中接口自动化模块的工作流程图。具体实施方式[0029]请参阅图1~3,本发明实施例中,一种PYTHON通用APP软件自动化测试框架系统,包括脚本维护模块、脚本生成模块、脚本执行模块、结果验证模块和报告生成模块,脚本维护模块用于当版本迭代或者需要更新时,修改测试用例数据库中的相关字段,从而降低了脚本维护的成本,脚本生成模块采用unittest框架+HtmlTestRunner输出报告,可以自动化生成测试脚本,并且提供接口自动化模块或者ui自动化模块两种自动化测试方式,脚本执行模块执行一种或同时执行自动化测试方式,结果验证模块用于验证模两种自动化测试的结果,报告生成模块用于将报告生成并发送到展示服务器,开发、测试、管理人员都可以在线浏览测试结果,及时发现问题,保证产品质量。[0030]优先的,测试方法包括以下步骤:[0031]S1、编写测试模板包括选择自动化测试方式(接口自动化模块或者ui自动化模块):通过python中的Template库,可以根据数据库中的模板编号读取测试模板文件,按照模板文件格式,批量生成测试脚本,再编写模板文件的时候,可选择调用接口自动化模块或者ui自动化模块,或者两者都使用;[0032]S2、在数据库中录入用例相关数据(接口自动化模块需要录入接口各项信息,ui自动化模块需要录入每一步的步骤放在列表中):在mysql数据库中建立用例库,用例库中需要测试的表以test开头,新建表时,将接口自动化模块所需的接口信息、ui自动化模块所需的流程步骤以及生成脚本所要使用的模板编号录入;[0033]S3、在公共模块中录入环境信息(包括数据库信息,环境信息,app包名、设备名等):通过连接手机或者模拟器后,根据命令获取设备名、app包等,录入到公共模块;[0034]S4、开始测试(生成测试报告发送到展示服务器,访问可见详细报告包括通过率、错误率、正确率、概览、详情,有截图的用例可以查看截图,并且提供下载所有截图以及操作日志的功能):测试过程展开分为两种;一种为ui自动化模块,另一种为接口自动化模块。[0035]优先的,ui自动化模块使用python中的UiAutomator自动化框架实现页面元素抓取,点击、输入文本、截图等功能,截图模块包括截图、图片处理、图片上传、图片打包等功能。[0036]优先的,接口自动化模块使用python中的requests库来发送接口请求,且接口自动化模块的功能还包括:[0037](1)、获取验证码功能,app验证过程中,会需要手机短信验证码,通过在手机上的6

CN 111078547 A说 明 书4/4页Tasker软件编写脚本,获取短信实时验证码将其发送到服务器上,并获取内容;[0038](2)、参数加解密功能,若接口参数被加密,则需要加解密模块对参数处理后发送或者获取,实现方式采用python中的Crypto库;[0039](4)、截图功能,通过python-selenium中的webdriver将接口页面渲染,可采用手机模式渲染,以便于与ui模块获得的截图比较;[0040](5)、页面检查模块,将渲染后的页面通过bs4中的BeautifulSoup获取页面信息,并可验证信息的正确性,并将检测结果返回用例。[0041]优先的,ui自动化模块包括以下工作流程:(1)、获取流程步骤;(2)、执行流程步骤;(3)、通过获取页面元素并进行比较,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。[0042]优先的,接口自动化模块包括以下工作流程:(1)、获取接口信息;(2)、发送接口请求并获得返回值;(3)、通过返回值与准确值对比,判断测试是否通过,当测试通过后,自动进入到下一步,当测试未通过时,自动返回到第一步;(4)、截图并返回测试结果。[0043]以上所述的,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。7

CN 111078547 A说 明 书 附 图1/3页图18

CN 111078547 A说 明 书 附 图2/3页图29

CN 111078547 A说 明 书 附 图3/3页图310


本文标签: 模块 测试 脚本 接口 生成