本公开涉接口自动化测试,特别涉及一种流量回放方法和装置、计算机可读存储介质。
背景技术:
1、流量录制回放是一种新的接口自动化测试方法,利用流量即用例的思想,直接将线上流量转化成接口测试用例。与传统接口自动化测试相比,流量回放最大的优势是更真实更全面的业务覆盖场景,能降低测试数据和用例编写的成本。
技术实现思路
1、发明人通过研究发现:由于录制流量(例如接口)的独立性,流量回放对于具有幂等性的独立读接口可以直接进行回放,但是以下场景的接口流量不能直接进行回放:对于写接口,为了避免影响线上数据,写接口不能直接用来回放;对于具有接口间依赖关系的需要多个接口组合才能覆盖的测试场景,流量回放无法直接支持。
2、鉴于以上技术问题中的至少一项,本公开提供了一种流量回放方法和装置、计算机可读存储介质,可以针对不同业务的具有上下游依赖关系写接口流量回放的自动化测试,设计出通用化的接口参数替换流量回放方案。
3、根据本公开的另一方面,提供一种流量回放方法,包括:
4、根据流量录制数据还原录制接口请求;
5、根据用户输入的被测接口标识,确定被测接口相关信息;
6、根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息;
7、根据被测接口流量回放信息,对被测接口进行流量回放。
8、在本公开的一些实施例中,所述相关字段信息包括请求主体信息和cookie信息,所述请求主体信息包括真实发送方地址和真实接收方地址。
9、在本公开的一些实施例中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换包括以下步骤中的至少一个步骤,其中:
10、根据常量值,对所述录制接口请求中的相关字段信息进行参数替换;
11、根据接口返回的字段值,对所述录制接口请求中的相关字段信息进行参数替换。
12、在本公开的一些实施例中,所述常量值包括测试发送方地址和测试接收方地址。
13、在本公开的一些实施例中,所述根据常量值,对所述录制接口请求中的相关字段信息进行参数替换包括:
14、采用测试发送方地址替换所述录制接口请求中的真实发送方地址;
15、采用真实发送方地址替换所述录制接口请求中的测试接收方地址。
16、在本公开的一些实施例中,所述根据接口返回的字段值,对所述录制接口请求中的相关字段信息进行参数替换包括:
17、针对邮件发送的流量回放中,在邮件发送成功后,获取流量回放返回值中的邮件标识;
18、针对邮件转发的流量回放中,采用所述返回值中的邮件标识替换录制接口请求中的原始邮件标识字段。
19、在本公开的一些实施例中,所述流量回放方法还包括:
20、按照各类业务流量接口回放时参数替换场景对业务流量接口进行归类;
21、对各类业务流量接口回放时参数替换场景进行模板化处理;
22、针对模板化处理后的参数替换场景,按照图形化方式进行参数配置,之后执行根据用户输入的被测接口标识,确定被测接口相关信息,根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放的步骤。
23、在本公开的一些实施例中,所述对各类业务流量接口回放时参数替换场景进行模板化处理包括以下步骤中的至少一项,其中:
24、使用常量值直接进行替换;
25、用于替换的值赋值给一个变量,其中,所述赋值给变量的值来源于工具类接口或业务接口;
26、在流量回放接口待替换位置使用所述变量。
27、在本公开的一些实施例中,所述针对模板化处理后的参数替换场景,按照图形化方式进行参数配置包括:
28、通过调用请求工具接口的返回值获取变量值,其中,所述变量值包括发送方cookie和转发方cookie;
29、创建原始邮件,调用业务接口获取原始邮件的邮件标识,设置原始邮件标识变量,其中,所述原始邮件标识变量用于转发邮件接口的入参使用;
30、根据用户输入,进行当前转发邮件接口的流量录制回放的配置。
31、在本公开的一些实施例中,所述通过调用工具接口的返回值获取变量值包括:
32、通过图形化配置方式,调用请求工具接口的返回值获取变量值,其中,所述请求工具接口的图形化配置项包括请求出参映射信息、执行顺序和接口请求来源,所述请求出参映射信息,用于根据接口信息进行接口请求后,将接口响应中的cookie字段值赋值给所述变量值,所述接口请求来源为构造测试数据的工具、或前置业务接口。
33、在本公开的一些实施例中,所述创建原始邮件,调用业务接口获取原始邮件的邮件标识,设置原始邮件标识变量包括:
34、通过图形化配置方式,调用业务接口获取原始邮件的邮件标识,其中,所述业务接口和所述请求工具接口使用相同的模板,所述业务接口的图形化配置项包括请求入参映射值、请求入参数据头和请求出参映射信息,所述请求入参映射值,用于替换流量中的特定键值,所述请求入参数据头,用于替换字段值为变量发送方cookie的值,所述请求出参映射信息,用于根据上述接口信息进行接口请求,将接口响应中的邮件标识字段值赋值给变量原始邮件标识字段。
35、在本公开的一些实施例中,所述根据用户输入,进行当前转发邮件接口的流量录制回放的配置包括:
36、通过图形化配置方式,进行当前转发邮件接口的流量录制回放的配置,其中,所述当前转发邮件接口的图形化配置项包括比对过滤字段和流量回放次数,所述比对过滤字段,用于根据上述接口信息进行回放后获得的接口响应信息,和服务变更前的接口响应信息,或者同时请求线上和灰度环境的接口响应信息,进行比对,确保是否存在不同,所述接口请求来源为构造测试数据的工具、或前置业务接口,所述流量回放次数用于配置录制的流量分别进行入参替换回放的次数。
37、在本公开的一些实施例中,所述根据用户输入的被测接口标识,确定被测接口相关信息包括:
38、根据所述被测接口标识,查询所述被测接口的回放次数;
39、判断所述被测接口的回放次数是否大于0;
40、在所述被测接口的回放次数大于0的情况下,根据所述被测接口标识,查询所述被测接口的前置接口信息列表;
41、获取前置接口信息的全局变量映射信息和局部变量映射信息。
42、在本公开的一些实施例中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放包括:
43、判断所述被测接口的前置接口列表个数是否大于0;
44、在所述被测接口的前置接口列表个数大于0的情况下,根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换;
45、在当前接口为前置接口的情况下,将前置接口列表个数减1,之后再次执行所述判断所述被测接口的前置接口列表个数是否大于0的步骤;
46、在当前接口为被测业务接口的情况下,将所述被测接口的回放次数减1,之后再次执行所述判断所述被测接口的回放次数是否大于0的步骤;
47、根据被测接口标识查询接口信息,开始进行流量回放。
48、在本公开的一些实施例中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放还包括:
49、在所述被测接口的前置接口数量不大于0的情况下,执行所述根据被测接口标识查询接口信息,开始进行流量回放的步骤。
50、在本公开的一些实施例中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换包括:
51、在所述被测接口的前置接口数量大于0的情况下,读取前置接口的执行顺序字段最小的接口信息;
52、判断当前接口是否为业务类接口;
53、在当前接口不是业务类接口的情况下,根据接口信息进行回放,其中,所述接口信息包括被替换数据的录制接口信息、工具接口信息和被测接口信息中的至少一项;
54、判断请求出参映射信息和请求出参数据头是否包括第一符号;在请求出参映射信息和请求出参数据头包括第一符号的情况下,将第一符号之间的字符串添加到局部变量映射中;
55、判断请求出参映射信息和请求出参数据头是否包括第二符号;在请求出参映射信息和请求出参数据头包括第二符号的情况下,将第二符号之间的字符串添加到全局变量映射中;
56、记录接口原始数据、被替换数据、详细请求和响应信息。
57、在本公开的一些实施例中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换还包括:
58、在当前接口是业务类接口的情况下,从录制的流量库中选取真实用户接口信息;
59、解析前置接口的请求入参映射信息和请求入参数据头是否包括使用变量;在包括使用变量的情况下,在局部变量映射中查询获取变量值,进行替换;在局部变量映射没有该变量值的情况下,在全局变量映射中查询获取变量值,进行替换;在局部变量映射和全局变量映射均没有该变量值的情况下,发送警告到日志中;
60、采用实例化后的请求入参映射信息和请求入参数据头中的变量值,替换录制的真实接口中相同字段的值;之后执行根据接口信息进行回放、判断请求出参映射信息和请求出参数据头是否包括第一符号或第二符号、以及记录接口原始数据、被替换数据、详细请求和响应信息的步骤。
61、在本公开的一些实施例中,所述流量回放方法还包括:
62、在根据被测接口标识查询接口信息,开始进行流量回放的步骤之后,执行从录制的流量库中选取真实用户接口信息、解析前置接口的请求入参映射信息和请求入参数据头是否包括使用变量、以及采用实例化后的请求入参映射信息和请求入参数据头中的变量值、替换录制的真实接口中相同字段的值的步骤。
63、根据本公开的另一方面,提供一种流量回放装置,包括:
64、请求还原模块,被配置为根据流量录制数据还原录制接口请求;
65、接口信息确定模块,被配置为根据用户输入的被测接口标识,确定被测接口相关信息;
66、回放信息生成模块,被配置为根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息;
67、流量回放模块,被配置为根据被测接口流量回放信息,对被测接口进行流量回放。
68、根据本公开的另一方面,提供一种流量回放装置,包括:
69、存储器,被配置为存储指令;
70、处理器,被配置为执行所述指令,使得所述流量回放装置实现如上述任一实施例所述的流量回放方法。
71、根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例所述的流量回放方法。
72、本公开可以针对不同业务的具有上下游依赖关系写接口流量回放的自动化测试,设计出通用化的接口参数替换流量回放方案。
1.一种流量回放方法,包括:
2.根据权利要求1所述的流量回放方法,其中,所述相关字段信息包括请求主体信息和cookie信息,所述请求主体信息包括真实发送方地址和真实接收方地址。
3.根据权利要求1或2所述的流量回放方法,其中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换包括以下步骤中的至少一个步骤,其中:
4.根据权利要求3所述的流量回放方法,其中,所述常量值包括测试发送方地址和测试接收方地址;
5.根据权利要求3所述的流量回放方法,其中,所述根据接口返回的字段值,对所述录制接口请求中的相关字段信息进行参数替换包括:
6.根据权利要求1至5中任一项所述的流量回放方法,还包括:
7.根据权利要求6所述的流量回放方法,其中,所述对各类业务流量接口回放时参数替换场景进行模板化处理包括以下步骤中的至少一项,其中:
8.根据权利要求6所述的流量回放方法,其中,对于邮件转发场景,所述针对模板化处理后的参数替换场景,按照图形化方式进行参数配置包括:
9.根据权利要求8所述的流量回放方法,其中,对于邮件转发场景,所述通过调用工具接口的返回值获取变量值包括:
10.根据权利要求8所述的流量回放方法,其中,对于邮件转发场景,所述创建原始邮件,调用业务接口获取原始邮件的邮件标识,设置原始邮件标识变量包括:
11.根据权利要求8所述的流量回放方法,其中,对于邮件转发场景,所述根据用户输入,进行当前转发邮件接口的流量录制回放的配置包括:
12.根据权利要求6所述的流量回放方法,其中,所述根据用户输入的被测接口标识,确定被测接口相关信息包括:
13.根据权利要求12所述的流量回放方法,其中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放包括:
14.根据权利要求13所述的流量回放方法,其中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放还包括:
15.根据权利要求13所述的流量回放方法,其中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换包括:
16.根据权利要求15所述的流量回放方法,其中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换还包括:
17.根据权利要求16所述的流量回放方法,还包括:
18.一种流量回放装置,包括:
19.一种流量回放装置,包括:
20.一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1-17中任一项所述的流量回放方法。