本发明涉及自动化测试,尤其涉及一种基于流量复制回放的自动化测试方法及相关装置。
背景技术:
1、流量复制回放技术在软件自动化测试领域有着广泛的应用。流量复制回放技术通过记录真实用户的访问行为,然后在测试环境中重放这些行为,来模拟不同的负载和场景。流量回放技术可以提供真实和准确的测试数据,避免人工构造的数据可能存在的偏差和不足。
2、流量复制回放技术支持的协议从tcp/ip网络协议、http协议到各种中间件使用协议等都有工具支持,比如tcpdump和goreplay也可以实现流量录制回放。但是, tcpdump只是一个流量和回放的工具,它能修改请求头,但没有其它对请求进行复杂处理的能力,更没有结果分析的能力;goreplay它通过一个中间件的技术可以处理请求,理论上可以满足各种需求,但是由于这个中间件实际上是一个独立的外部应用,实际执行每个参数的处理都会调用一次外部应用,因此这个设计会导致执行性能的问题,并且中间件的开发也不够灵活,另外goreplay也没有分析结果生成测试报告的能力。
技术实现思路
1、有鉴于此,本发明提供了一种基于流量复制回放的自动化测试方法及相关装置,用以解决现有技术中基于流量复制回放技术进行自动化测试的过程中,缺少结果分析、测试报告,或者调用外部应用,导致执行性能的问题。具体方案如下:
2、一种基于流量复制回放的自动化测试方法,包括:
3、遍历待复制流量,对所述待复制流量基于解析器、过滤器、处理器和结果回调进行处理,得到目标结果请求对象;
4、对所述目标结果请求对象进行流量回放以实现对基准系统和被测系统进行测试,得到回放结果,遍历所述回放结果,对所述回放结果进行数据清洗,得到目标回放结果;
5、基于所述目标回放结果提取请求消息、基准系统响应消息和被测系统响应消息,将所述请求消息、所述基准系统响应消息和所述被测系统响应消息建立关联关系;
6、基于所述关联关系对所述目标回放结果进行统计和采样,得到测试报告。
7、上述的基于流量复制回放的自动化测试方法,可选的,遍历待复制流量,对所述待复制流量基于解析器、过滤器、处理器和结果回调进行处理,得到目标结果请求对象,包括:
8、在所述解析器中基于所述待复制流量中的原始请求对象确定第一结果请求对象;
9、在所述过滤器中基于所述第一结果请求对象和过滤表达式列表确定第二结果请求对象;
10、在所述处理器中基于所述第二结果请求对象和消息处理规则列表确定第三结果请求对象;
11、对所述第三结果请求对象进行结果回调,得到目标结果请求对象。
12、上述的基于流量复制回放的自动化测试方法,可选的,对所述回放结果进行数据清洗,得到目标回放结果,包括:
13、对所述回放结果进行排序,或空值清洗,或,精度清洗,或,字段清洗中的至少一种处理,得到目标回放结果。
14、上述的基于流量复制回放的自动化测试方法,可选的,将所述请求消息、所述基准系统响应消息和所述被测系统响应消息建立关联关系,包括:
15、获取所述请求消息的第一标识,所述基准系统响应消息的第二标识和所述被测系统响应消息的第三标识;
16、遍历所述第一标识、所述第二标识和所述第三标识,将标识相同的目标请求消息和目标基准系统响应消息和被测系统响应消息建立关联关系。
17、上述的基于流量复制回放的自动化测试方法,可选的,基于所述关联关系对所述目标回放结果进行统计和采样,得到测试报告,包括:
18、基于所述关联关系对所述目标回放结果中的测试用例、失败率和失败测试用例进行统计;
19、对所述失败测试用例进行采样,得到目标失败测试用例;
20、基于web页面对所述测试用例、所述失败率和所述目标失败测试用例进行展示。
21、上述的基于流量复制回放的自动化测试方法,可选的,还包括:
22、获取所述目标失败测试用例的测试标识;
23、查找与所述测试标识对应的目标请求信息,将所述目标请求信息重新发送给所述基准系统和所述被测系统进行流量回放。
24、一种基于流量复制回放的自动化测试装置,包括:
25、遍历和处理模块,用于遍历待复制流量,对所述待复制流量基于解析器、过滤器、处理器和结果回调进行处理,得到目标结果请求对象;
26、测试和清洗模块,用于对所述目标结果请求对象进行流量回放以实现对基准系统和被测系统进行测试,得到回放结果,遍历所述回放结果,对所述回放结果进行数据清洗,得到目标回放结果;
27、提取和建立模块,用于基于所述目标回放结果提取请求消息、基准系统响应消息和被测系统响应消息,将所述请求消息、所述基准系统响应消息和所述被测系统响应消息建立关联关系;
28、统计和采样模块,用于基于所述关联关系对所述目标回放结果进行统计和采样,得到测试报告。
29、上述的基于流量复制回放的自动化测试装置,可选的,所述遍历和处理模块包括:
30、第一确定单元,用于在所述解析器中基于所述待复制流量中的原始请求对象确定第一结果请求对象;
31、第二确定单元,用于在所述过滤器中基于所述第一结果请求对象和过滤表达式列表确定第二结果请求对象;
32、第三确定单元,用于在所述处理器中基于所述第二结果请求对象和消息处理规则列表确定第三结果请求对象;
33、回调单元,用于对所述第三结果请求对象进行结果回调,得到目标结果请求对象。
34、上述的基于流量复制回放的自动化测试装置,可选的,所述提取和建立模块包括:
35、获取单元,用于获取所述请求消息的第一标识,所述基准系统响应消息的第二标识和所述被测系统响应消息的第三标识;
36、建立单元,用于遍历所述第一标识、所述第二标识和所述第三标识,将标识相同的目标请求消息和目标基准系统响应消息和被测系统响应消息建立关联关系。
37、上述的基于流量复制回放的自动化测试装置,可选的,所述统计和采样模块包括:
38、统计单元,用于基于所述关联关系对所述目标回放结果中的测试用例、失败率和失败测试用例进行统计;
39、采样单元,用于对所述失败测试用例进行采样,得到目标失败测试用例;
40、展示单元,用于基于web页面对所述测试用例、所述失败率和所述目标失败测试用例进行展示。
41、一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行上述的基于流量复制回放的自动化测试方法。
42、一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的基于流量复制回放的自动化测试方法。
43、与现有技术相比,本发明包括以下优点:
44、本发明公开了一种基于流量复制回放的自动化测试方法及相关装置,包括:对待复制流量基于解析器、过滤器、处理器和结果回调进行处理,得到目标结果请求对象;对目标结果请求对象进行流量回放以实现对基准系统和被测系统进行测试,得到回放结果,对回放结果进行数据清洗,得到目标回放结果;基于目标回放结果提取请求消息、基准系统响应消息和被测系统响应消息,将请求消息、基准系统响应消息和被测系统响应消息建立关联关系;基于关联关系对目标回放结果进行统计和采样,得到测试报告。上述过程,在不需要调用外部应用的前提下,实现了基于流量复制回放技术进行自动化测试,并且实现了对回放结果的分析和测试报告的生成。