一种接口自动化测试数据分离方法与流程

文档序号:32466382发布日期:2022-12-07 05:34阅读:115来源:国知局
一种接口自动化测试数据分离方法与流程

1.本发明涉及接口测试技术领域,尤其涉及一种接口自动化测试数据分离方法。


背景技术:

2.接口测试是测试系统组件间接口的一个重要的测试环节,接口通俗来讲就是前端和后端之间传输数据的桥梁,原理是模拟客户端向服务器发送请求,服务器端接收请求后对响应的请求作出处理,并向客户端返回相应结果,客户端接收结果的一个过程,现如今的系统复杂度不断上升,传统的功能测试方法效率大幅下降,所以接口测试在软件的开发周期中显得尤为重要,同时,接口测试相对比较容易实现自动化持续集成,可减少测试人力成本和时间成本的投入,并有更高的稳定性和复用性,目前市面主流的项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收,工具有很多如:postman、jmeter等,接口测试工具,门槛低、上手快、跨平台,但是不能操作文件相关的操作、不能读写数据库、不能封装公共函数、不支持用例间的跳转,缺乏对测试脚本的管理和维护的便利性,接口或者测试组件的更改会影响其他测试组件的执行结果,测试脚本频繁更改会影响测试结果的准确性,维护成本很高,虽然市面上能够选择的接口测试工具和方案较多,但都需要进行一定程度的定制化开发才能满足项目需要,因此需要自己开发一种更灵活的接口测试框架来适应本项目测试的需要。


技术实现要素:

3.本发明的目的是解决现有技术中存在的缺点,而提出的一种接口自动化测试数据分离方法。
4.为了实现上述目的,本发明采用了如下技术方案,一种接口自动化测试数据分离方法,包括以下步骤:
5.s1:读取配置文件的配置信息,根据配置信息连接系统数据库,调用db函数方法,创建基础测试数据;
6.s2:调用预先封装好的方法读取csv文件业务测试用例信息,将结果以字符串和json数据格式返回;
7.s3:请求被测试系统http接口,根据读取的业务测试用例数据,调用不同的http接口请求并得到结果;
8.s4:将调用不同的接口请求得到的结果与csv文件中预期的结果数据,两者进行正则判断对比,记录判断结果;
9.s5:使用jenkins批量调用用例,执行并生成allure测试报告。
10.作为本发明的进一步方案,所述s1中,所述读取配置文件的配置信息,包括:
11.s101:导入包、数据库、域名、配置文件读取方法、初始化数据方法、sys模块、os模块等;
12.s102:使用python定义一个类方法,自定义数据库操作方法,包括删除、插入、初始
化表数据的方法,初始化接口测试数据;
13.s103:根据不同系统,统一初始化前置条件接口的调用,获取相关token、session、cookie信息。
14.作为本发明的进一步方案,所述s1中,所述配置信息包括测试数据库的host、db、user、password、port。
15.作为本发明的进一步方案,所述s2中,所述调用预先封装好的方法读取csv文件业务测试用例信息,将结果以字符串和json数据格式返回,包括:
16.s201:定义一个读取函数类,用于读取csv文件数据;
17.s202:将读取到的数据内容按照key-value键值对转换为字典格式,然后定义一个数组格式,将字典数据添加到数组中,并以json格式返回,判断格式内容是否为空,如果为空返回none。
18.作为本发明的进一步方案,所述s3中,所述请求被测试系统http接口,根据读取的业务测试用例数据,调用不同的http接口请求并得到结果,包括:
19.s301:新建一个类方法,定义requests函数,用于实现被测试系统接口请求;
20.s302:从读取的业务测试用例数据表格中获取传参、请求地址,请求方式,根据请求正文不同调用不同的接口请求函数,返回接口请求结果,并以json的格式返回。
21.作为本发明的进一步方案,所述s4中,将调用不同的接口请求得到的结果与csv文件中预期的结果数据,两者进行正则判断对比,记录判断结果,具体为将调用不同的接口请求得到的结果组装成json格式的数据,同时获取csv表格中预期的结果数据,两者进行判断对比,将比对结果存放至指定allure目录中。
22.作为本发明的进一步方案,所述s5中,所述使用jenkins批量调用用例,执行并生成allure测试报告,包括:
23.s501:配置使用allure插件,生成报告;
24.s502:配置使用源码管理git,获取自动化代码;
25.s503:配置使用构建执行shell命令,执行测试用例。
26.与现有技术相比,本发明的优点和积极效果在于:
27.本发明中,采用jenkins根据配置好的定时任务或手动批量执行测试用例,通过python方法读取csv文件测试用例数据,批量生成接口测试请求,并测试结果和接口响应消息以及数据库数据比对结果存入指定的路径,并且输出allure测试报告,与现有的使用开源的接口测试工具相比,无需频繁的工具参数配置和修改,本发明方法中,业务测试用例与接口测试代码分离,业务测试用例进行参数化,提取作为接口测试代码的入参,解决了测试数据不可控的问题,方便测试数据的维护;业务测试用例使用csv进行数据维护,可以覆盖多种测试场景、输入输出边界分析、参数组合测试,以及与数据库数据对比的测试等;测试人员只需要维护csv测试用例中的被测系统场景数据和参数数据,即可定时或及时执行接口自动化测试,并可根据测试结果作出相应的调整和优化测试用例,提高测试的效率和准确性,节约了大量的人力时间。
附图说明
28.图1为本发明提出一种接口自动化测试数据分离方法的工作流程图;
29.图2为本发明提出一种接口自动化测试数据分离方法的自动化执行测试用例的流程图。
具体实施方式
30.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
31.在本发明的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
32.实施例一
33.请参阅图1,本发明提供一种技术方案,一种接口自动化测试数据分离方法,包括以下步骤:
34.s1:读取配置文件的配置信息,根据配置信息连接系统数据库,调用db函数方法,创建基础测试数据;
35.s2:调用预先封装好的方法读取csv文件业务测试用例信息,将结果以字符串和json数据格式返回;
36.s3:请求被测试系统http接口,根据读取的业务测试用例数据,调用不同的http接口请求并得到结果;
37.s4:将调用不同的接口请求得到的结果与csv文件中预期的结果数据,两者进行正则判断对比,记录判断结果;
38.s5:使用jenkins批量调用用例,执行并生成allure测试报告。
39.s1中,读取配置文件的配置信息,包括:
40.s101:导入包、数据库、域名、配置文件读取方法、初始化数据方法、sys模块、os模块等;
41.s102:使用python定义一个类方法,自定义数据库操作方法,包括删除、插入、初始化表数据的方法,初始化接口测试数据;
42.s103:根据不同系统,统一初始化前置条件接口的调用,获取相关token、session、cookie信息。
43.s1中,配置信息包括测试数据库的host、db、user、password、port。
44.s2中,调用预先封装好的方法读取csv文件业务测试用例信息,将结果以字符串和json数据格式返回,包括:
45.s201:定义一个读取函数类,用于读取csv文件数据;
46.s202:将读取到的数据内容按照key-value键值对转换为字典格式,然后定义一个数组格式,将字典数据添加到数组中,并以json格式返回,判断格式内容是否为空,如果为空返回none。
47.s3中,请求被测试系统http接口,根据读取的业务测试用例数据,调用不同的http
接口请求并得到结果,包括:
48.s301:新建一个类方法,定义requests函数,用于实现被测试系统接口请求;
49.s302:从读取的业务测试用例数据表格中获取传参、请求地址,请求方式,根据请求正文不同调用不同的接口请求函数,返回接口请求结果,并以json的格式返回。
50.s4中,将调用不同的接口请求得到的结果与csv文件中预期的结果数据,两者进行正则判断对比,记录判断结果,具体为将调用不同的接口请求得到的结果组装成json格式的数据,同时获取csv表格中预期的结果数据,两者进行判断对比,将比对结果存放至指定allure目录中。
51.s5中,使用jenkins批量调用用例,执行并生成allure测试报告,包括:
52.s501:配置使用allure插件,生成报告;
53.s502:配置使用源码管理git,获取自动化代码;
54.s503:配置使用构建执行shell命令,执行测试用例。
55.工作原理:本发明无需频繁的脚本参数修改,只需在测试用例中维护被测系统接口测试参数以及断言,通过jenkins就能批量执行系统接口,以图表的形式呈现接口自动化测试执行成功率、通过失败数量等测试结果,具体而言,首先采用jenkins根据配置好的定时任务或手动批量执行测试用例,批量执行所有接口的测试用例,配置使用allure插件,生成报告,配置使用源码管理git,获取自动化代码,配置使用构建执行shell命令,执行测试用例,而后读取配置文件的配置信息,根据配置信息连接系统数据库,调用db函数方法,创建基础测试数据,包括:创建链接(驱动程序来访问mysql数据库,配置参数为host、db、user、password、port),db函数方法(select、insert、update、delete),创建基础测试数据,生成测试用例所需数据,再调用读取csv文件方法,获取接口测试用例的相关数据,将结果以字符串和json数据格式返回,其中csv文件中字段包含(1.标题:用例名称(str格式);2.接口/类/方法:用例接口名(str格式);3.请求方式:调用方法:post、get、put、delete(str格式);4.请求地址:请求路径(str格式);5.请求正文:请求报文(str格式);6.环境:测试环境、准生产环境(str格式);7.预期断言:与接口返回值做对比的数据(json格式);8.前置条件:前置条件调用方法(str格式);9.后置条件、前置条件调用方法(str格式);10.前置sql:前置条件sql调用方法(str格式);11.预期断言sql;与接口返回值做对比的数据库数据(json格式)),将读取到的数据内容按照key-value键值对转换为字典格式,然后定义一个数组格式,将字典数据添加到数组中,并以json格式返回,判断格式内容是否为空,如果为空返回none,根据测试用例中的判断是否有前置条件,如有调用前置条件方法,将前置结果与测试用例中的相关数据重新初始化,而后进行api测试请求的调用,基于python设计的接口自动化测试方法,所述请求被测试系统http接口,根据读取的业务测试用例数据(请求方式、请求地址、请求正文),调用不同的接口请求并得到结果,包括:新建一个类方法,定义requests函数,用于实现被测试系统接口请求,从读取的业务测试用例数据表格中获取传参、请求地址,请求方式,根据请求正文不同调用不同的接口请求函数,返回接口请求结果,并以json的格式返回,基于python设计的接口自动化测试方法,所述将调用不同的接口请求得到的结果组装成json格式的数据,同时测试用例中的预期断言的数据,通过一个封装的比对方法,两者进行判断对比,将比对结果存放至指定allure目录中,再根据测试用例中的判断是否有前置sql,如有调用前置sql方法,将前置sql结果与测试用例中的预期断言
sql进行对比,将比对结果存放至指定allure目录中,采用jenkins批量调用测试用例,执行并生成allure测试报告,发送到指定的邮箱模块,可通过邮件中或jenkins平台模块中查看allure的报告信息。
56.以上,仅是本发明的较佳实施例而已,并非对本发明作其他形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其他领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1