本发明涉及计算机,具体涉及一种基于api网关日志回放的接口diff测试方法。
背景技术:
1、敏捷开发已经成为当前互联网行业主流的开发模式,项目迭代周期短,测试时间短,历史功能影响范围广。如何在较短的测试时间中高效高质的对历史功能进行回归,保证历史功能不受迭代影响成为每一个测试人员面对的难题。
2、api网关是客户端和服务端服务之间的服务器,充当所有客户端进入系统的集中入口点。它是一个反向代理,接受客户端的api 调用并将它们转发到适当服务端服务。所以无论公司有多少应用服务,只需要在api网关进行统一日志收集、处理就能获取到所有服务统一格式的日志,不用再对每个服务进行单独日志收集、处理。
3、所以基于api网关日志接口diff测试达到快速回归测试是一种既能解决当前互联网行业测试痛点又能在行业内快速,低成本广泛落地的测试方案。
技术实现思路
1、针对现有技术问题,本发明提供了一种基于api网关日志回放的接口diff测试方法,基于api网关日志自动生成测试,提高了测试效率,节约了资源。
2、为实现上述目的,本发明采用的技术方案如下:
3、一种基于api网关日志回放的接口diff测试方法,包括:
4、步骤1、获取api网关日志;
5、步骤2、解析api网关日志,获取api网关日志中的请求信息,将api网关日志和对应的请求信息保存至分布式全文检索引擎中;
6、步骤3、配置接口diff测试的回放计划,在回放计划中配置查询规则和回放规则;
7、步骤4、从分布式全文检索引擎中查询满足查询规则的api网关日志,记为测试api网关日志;
8、步骤5、采用回放规则对每个测试api网关日志执行回放计划,生成一个回放任务并得到回放任务的回放结果;
9、步骤6、根据所有测试api网关日志对应回放任务的回放结果,得到接口diff测试的测试结果。
10、进一步地,请求信息包括接口请求路径、请求域名、请求头、请求体、请求方法和请求时间。
11、进一步地,查询规则包括指定接口请求路径、指定域名、指定请求特征值、指定开始时间、指定结束时间和指定数量。
12、进一步地,回放规则包括测试环境域名、对比环境域名和忽略字段。
13、进一步地,步骤4包括:根据查询规则组装对应的es查询语句,由es查询语句从分布式全文检索引擎的请求信息中查询出接口请求路径、请求域名分别与指定接口请求路径、指定域名相同,请求体包含有指定请求特征值,请求时间大于或等于指定开始时间、小于或等于指定结束时间的测试api网关日志,测试api网关日志的数量不大于指定数量。
14、进一步地,步骤5包括:将测试api网关日志的接口请求路径和回放规则的测试环境域名合并为测试请求地址,将测试api网关日志的接口请求路径和回放规则的对比环境域名合并为对比请求地址,生成一个回放任务,分别使用测试api网关日志的请求头、请求体,并根据请求方法的类型分别向测试请求地址和对比请求地址发起对应类型的http请求,根据两次http请求的响应结果生成回放任务的回放结果。
15、进一步地,根据两次http请求的响应结果生成回放任务的回放结果包括:
16、回放规则没有配置忽略字段,直接对比两次http请求的响应结果是否一致,一致表示回放结果为通过,反之则不通过;
17、回放规则配置了忽略字段,将两次http请求的响应结果分别转化为两个json对象,将忽略字段分别从两个json对象的属性中移除,将移除所有忽略字段的两个json对象分别转化为两个文本字符串,比较两个文本字符串是否一致,一致表示回放结果为通过,反之则不通过。
18、进一步地,步骤6包括:查询出当前接口diff测试所有测试api网关日志对应回放任务的回放结果,当所有回放结果均通过表示接口diff测试的测试结果为成功,反之则为失败。
19、进一步地,当接口diff测试的测试结果为失败时,预警并通知对应工作人员。
20、与现有技术相比,本发明具有以下有益效果:
21、1、相较于常见的手工测试,本发明通过查询规则和回放规则进行接口diff测试的配置,回放规则中预设了历史版本代码环境和回归版本代码环境的参数,回放计划会自动请求历史版本代码环境和回归版本代码环境的域名进行回放,并比较两个环境的结果,达到快速回归测试和目的。
22、2、本发明基于api网关日志进行测试,使用的测试数据为用户真实请求日志,而非设计的测试数据,测试覆盖范围更广,更符合用户使用习惯,更能发现问题。
23、3、本发明使用api网关日志而非服务应用日志,通过在api网关统一收集格式化日志,不需要服务应用做任何改动且保证了不同服务应用的日志格式一致。
24、4、本发明将api网关日志保存至分布式全文检索引擎中,测试时只需通过分布式全文检索引擎查询获取,查询速度快,资源占用少,使用灵活方便。
1.一种基于api网关日志回放的接口diff测试方法,其特征在于,包括:
2.根据权利要求1所述的一种基于api网关日志回放的接口diff测试方法,其特征在于,请求信息包括接口请求路径、请求域名、请求头、请求体、请求方法和请求时间。
3.根据权利要求2所述的一种基于api网关日志回放的接口diff测试方法,其特征在于,查询规则包括指定接口请求路径、指定域名、指定请求特征值、指定开始时间、指定结束时间和指定数量。
4.根据权利要求2所述的一种基于api网关日志回放的接口diff测试方法,其特征在于,回放规则包括测试环境域名、对比环境域名和忽略字段。
5.根据权利要求3所述的一种基于api网关日志回放的接口diff测试方法,其特征在于,步骤4包括:根据查询规则组装对应的es查询语句,由es查询语句从分布式全文检索引擎的请求信息中查询出接口请求路径、请求域名分别与指定接口请求路径、指定域名相同,请求体包含有指定请求特征值,请求时间大于或等于指定开始时间、小于或等于指定结束时间的测试api网关日志,测试api网关日志的数量不大于指定数量。
6.根据权利要求4所述的一种基于api网关日志回放的接口diff测试方法,其特征在于,步骤5包括:将测试api网关日志的接口请求路径和回放规则的测试环境域名合并为测试请求地址,将测试api网关日志的接口请求路径和回放规则的对比环境域名合并为对比请求地址,生成一个回放任务,分别使用测试api网关日志的请求头、请求体,并根据请求方法的类型分别向测试请求地址和对比请求地址发起对应类型的http请求,根据两次http请求的响应结果生成回放任务的回放结果。
7.根据权利要求6所述的一种基于api网关日志回放的接口diff测试方法,其特征在于,根据两次http请求的响应结果生成回放任务的回放结果包括:
8.根据权利要求7所述的一种基于api网关日志回放的接口diff测试方法,其特征在于,步骤6包括:查询出当前接口diff测试所有测试api网关日志对应回放任务的回放结果,当所有回放结果均通过表示接口diff测试的测试结果为成功,反之则为失败。
9.根据权利要求8所述的一种基于api网关日志回放的接口diff测试方法,其特征在于,当接口diff测试的测试结果为失败时,预警并通知对应工作人员。