System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种基于接口版本管理自动更新测试用例的方法。
技术介绍
1、研发人员在进行项目开发前都需要编写接口文档,随着openai规范的普及,swagger也进入了3.x阶段,swagger 3.x指支持openapi 3.0规范的swagger工具版本,更加强调对于restful api的支持和规范化,提供了更丰富和灵活的定义方式,并且可以用于自动生成文档、客户端代码、服务器代码和测试工具等;
2、现阶段大多数公司研发人员编写接口文档都是使用swagger生成接口文档,swagger基于openapi 3.0版本及以上生成swagger文档;少部分研发人员使用word文档编写接口文档,而测试人员依赖开发提供的swagger文档编写测试用例;由于接口数量众多且参数复杂,测试人员需手动编写大量测试用例,耗时耗力,工作效率低下。
技术实现思路
1、本专利技术的目的是为了解决现有技术中存在的缺点,而提出的一种基于接口版本管理自动更新测试用例的方法。
2、为实现上述目的,本专利技术采用了如下技术方案:
3、一种基于接口版本管理自动更新测试用例的方法,包括以下步骤:
4、s1:加载配置文件;
5、用户自定义配置文件,所述配置文件包括swagger文档的url地址和基础环境信息;
6、所述配置文件为用户可自定义存放于本地电脑的json文件;
7、通过python程序主入口加载配置文件并提取s
8、所述python程序主入口指python程序的入口文件,其中,入口文件遵循特定的命名规则。
9、s2:获取swagger文档并生成v1版本的swagger文档;
10、根据配置文件中swagger文档的url地址发起http请求,获取swagger文档;
11、将获取的swagger文档保存到本地,并在本地生成一个包含v1版本标识的文档,所述文档的文件名唯一;
12、所述文件名的格式为:版本标识+日期+自增序列号。
13、s3:解析swagger文档并生成测试用例;
14、使用swagger-parser库解析步骤s2中生成的包含v1版本标识的文档,解析为python对象,从解析后的python对象中提取api路径和请求信息等;
15、所述请求信息包括请求方法、请求参数、预期结果等;
16、遍历解析后的api路径和请求信息,每个api接口生成唯一id作为标识符;
17、使用requests库构建接口测试用例,每个接口测试用例包含api路径、唯一id、请求方法、请求参数、预期结果;
18、将构建的接口测试用例保存到接口测试用例集中。
19、s4:监控swagger文档变动;
20、包括如下子步骤:
21、s41:监听swagger文档更新事件;
22、使用watchdog库监听swagger文档更新事件;
23、具体地,在watchdog库中创建observer类,在observer类中指定需要监听的swagger文档路径,对所述swagger文档进行监控;并在observer类中重写on_modified函数;当swagger文档被修改时,则触发on_modified方法,进入步骤s42;
24、s42:获取最新的swagger文档并生成v2版本的文档;
25、使用http get请求获取修改后的swagger文档,并使用python程序的datetime组件获取修改后的swagger文档的时间戳,将所述swagger文档保存为包含v2版本标识的文档;
26、所述文件名的格式为:版本标识+日期+自增序列号;
27、s43:检查v1和v2版本的swagger文档中的api路径和请求信息是否发生变化;
28、包括如下子步骤:
29、s431:比较api路径是否发生变化;
30、使用json库解析v1和v2版本的swagger文档,遍历解析后的swagger文档,分别提取v1和v2版本的swagger文档的api路径;
31、比较v1和v2版本的swagger文档的api路径是否相同,如果存在不同,则记录发生变化的api路径;
32、s432:比较请求方法是否发生变化;
33、使用json库解析v1和v2版本的swagger文档,遍历解析后的swagger文档,分别提取v1和v2版本的swagger文档的请求方法;
34、比较v1和v2版本的swagger文档的请求方法是否相同,如果存在不同,则记录发生变化的请求方法;
35、s433:比较请求参数是否发生变化;
36、使用json库解析v1和v2版本的swagger文档,遍历解析后的swagger文档,分别提取v1和v2版本的swagger文档的请求参数;
37、比较v1和v2版本的swagger文档的请求参数是否相同,如果存在不同,则记录发生变化的请求参数;
38、s44:更新接口测试用例;
39、在接口测试用例集中更新api路径、请求方法、请求参数任一发生变化的接口测试用例。
40、s5:执行接口测试用例;
41、执行接口测试用例集中包含的接口测试用例,并记录每个接口测试用例的执行结果,将执行结果与预期结果进行比较,如果不一致,则得到测试结果为失败案例;如果一致,则得到测试结果为成功案例。
42、s6:生成并发送测试报告;
43、通过beautifulsoup创建html格式的测试报告,所述测试报告中包含接口测试用例、执行结果、测试结果;
44、使用smtplib组件将测试报告以邮件的形式发送给相关人员。
45、与现有技术相比,本专利技术的有益效果为:
46、本专利技术提出的一种基于接口版本管理自动更新测试用例的方法,通过swagger文档地址识别并监控文档的变化自动生成测试用例,不需要测试人员手动编写测试用例,提高了测试效率,缩减测试时间,减少人力成本;
47、本专利技术提供的方法能够识别测试用例接口的版本变化,显著提高了接口版本管理的效率和测试工作的准确性;适用于需要频繁更新接口版本的软件开发项目,特别是在微服务架构和api驱动的开发环境中,能够显著提升接口管理和测试的效率与质量。
本文档来自技高网...【技术保护点】
1.一种基于接口版本管理自动更新测试用例的方法,其特征在于:包括以下步骤:
2.如权利要求1所述的基于接口版本管理自动更新测试用例的方法,其特征在于:
3.如权利要求1所述的基于接口版本管理自动更新测试用例的方法,其特征在于:
4.如权利要求1所述的基于接口版本管理自动更新测试用例的方法,其特征在于:
5.如权利要求1所述的基于接口版本管理自动更新测试用例的方法,其特征在于:
【技术特征摘要】
1.一种基于接口版本管理自动更新测试用例的方法,其特征在于:包括以下步骤:
2.如权利要求1所述的基于接口版本管理自动更新测试用例的方法,其特征在于:
3.如权利要求1所述的基于接口版本管理...
【专利技术属性】
技术研发人员:张楠,李涛,张召港,张文,张中磊,
申请(专利权)人:鱼快创领智能科技南京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。