CN118093375A - 流量回放方法和装置、计算机可读存储介质 - Google Patents
流量回放方法和装置、计算机可读存储介质 Download PDFInfo
- Publication number
- CN118093375A CN118093375A CN202410114604.2A CN202410114604A CN118093375A CN 118093375 A CN118093375 A CN 118093375A CN 202410114604 A CN202410114604 A CN 202410114604A CN 118093375 A CN118093375 A CN 118093375A
- Authority
- CN
- China
- Prior art keywords
- interface
- information
- request
- playback
- tested
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 238000012360 testing method Methods 0.000 claims abstract description 55
- 238000013507 mapping Methods 0.000 claims description 76
- 230000004044 response Effects 0.000 claims description 34
- 235000014510 cooky Nutrition 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 14
- 238000001914 filtration Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 5
- 238000011084 recovery Methods 0.000 claims description 2
- 238000011144 upstream manufacturing Methods 0.000 abstract description 9
- 238000013461 design Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 22
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012827 research and development Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000005304 joining Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开涉及一种流量回放方法和装置、计算机可读存储介质。该流量回放方法包括:根据流量录制数据还原录制接口请求;根据用户输入的被测接口标识,确定被测接口相关信息;根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息;根据被测接口流量回放信息,对被测接口进行流量回放。本公开可以针对不同业务的具有上下游依赖关系写接口流量回放的自动化测试,设计出通用化的接口参数替换流量回放方案。
Description
技术领域
本公开涉接口自动化测试技术领域,特别涉及一种流量回放方法和装置、计算机可读存储介质。
背景技术
流量录制回放是一种新的接口自动化测试方法,利用流量即用例的思想,直接将线上流量转化成接口测试用例。与传统接口自动化测试相比,流量回放最大的优势是更真实更全面的业务覆盖场景,能降低测试数据和用例编写的成本。
发明内容
发明人通过研究发现:由于录制流量(例如接口)的独立性,流量回放对于具有幂等性的独立读接口可以直接进行回放,但是以下场景的接口流量不能直接进行回放:对于写接口,为了避免影响线上数据,写接口不能直接用来回放;对于具有接口间依赖关系的需要多个接口组合才能覆盖的测试场景,流量回放无法直接支持。
鉴于以上技术问题中的至少一项,本公开提供了一种流量回放方法和装置、计算机可读存储介质,可以针对不同业务的具有上下游依赖关系写接口流量回放的自动化测试,设计出通用化的接口参数替换流量回放方案。
根据本公开的另一方面,提供一种流量回放方法,包括:
根据流量录制数据还原录制接口请求;
根据用户输入的被测接口标识,确定被测接口相关信息;
根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息;
根据被测接口流量回放信息,对被测接口进行流量回放。
在本公开的一些实施例中,所述相关字段信息包括请求主体信息和Cookie信息,所述请求主体信息包括真实发送方地址和真实接收方地址。
在本公开的一些实施例中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换包括以下步骤中的至少一个步骤,其中:
根据常量值,对所述录制接口请求中的相关字段信息进行参数替换;
根据接口返回的字段值,对所述录制接口请求中的相关字段信息进行参数替换。
在本公开的一些实施例中,所述常量值包括测试发送方地址和测试接收方地址。
在本公开的一些实施例中,所述根据常量值,对所述录制接口请求中的相关字段信息进行参数替换包括:
采用测试发送方地址替换所述录制接口请求中的真实发送方地址;
采用真实发送方地址替换所述录制接口请求中的测试接收方地址。
在本公开的一些实施例中,所述根据接口返回的字段值,对所述录制接口请求中的相关字段信息进行参数替换包括:
针对邮件发送的流量回放中,在邮件发送成功后,获取流量回放返回值中的邮件标识;
针对邮件转发的流量回放中,采用所述返回值中的邮件标识替换录制接口请求中的原始邮件标识字段。
在本公开的一些实施例中,所述流量回放方法还包括:
按照各类业务流量接口回放时参数替换场景对业务流量接口进行归类;
对各类业务流量接口回放时参数替换场景进行模板化处理;
针对模板化处理后的参数替换场景,按照图形化方式进行参数配置,之后执行根据用户输入的被测接口标识,确定被测接口相关信息,根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放的步骤。
在本公开的一些实施例中,所述对各类业务流量接口回放时参数替换场景进行模板化处理包括以下步骤中的至少一项,其中:
使用常量值直接进行替换;
用于替换的值赋值给一个变量,其中,所述赋值给变量的值来源于工具类接口或业务接口;
在流量回放接口待替换位置使用所述变量。
在本公开的一些实施例中,所述针对模板化处理后的参数替换场景,按照图形化方式进行参数配置包括:
通过调用请求工具接口的返回值获取变量值,其中,所述变量值包括发送方Cookie和转发方Cookie;
创建原始邮件,调用业务接口获取原始邮件的邮件标识,设置原始邮件标识变量,其中,所述原始邮件标识变量用于转发邮件接口的入参使用;
根据用户输入,进行当前转发邮件接口的流量录制回放的配置。
在本公开的一些实施例中,所述通过调用工具接口的返回值获取变量值包括:
通过图形化配置方式,调用请求工具接口的返回值获取变量值,其中,所述请求工具接口的图形化配置项包括请求出参映射信息、执行顺序和接口请求来源,所述请求出参映射信息,用于根据接口信息进行接口请求后,将接口响应中的Cookie字段值赋值给所述变量值,所述接口请求来源为构造测试数据的工具、或前置业务接口。
在本公开的一些实施例中,所述创建原始邮件,调用业务接口获取原始邮件的邮件标识,设置原始邮件标识变量包括:
通过图形化配置方式,调用业务接口获取原始邮件的邮件标识,其中,所述业务接口和所述请求工具接口使用相同的模板,所述业务接口的图形化配置项包括请求入参映射值、请求入参数据头和请求出参映射信息,所述请求入参映射值,用于替换流量中的特定键值,所述请求入参数据头,用于替换字段值为变量发送方Cookie的值,所述请求出参映射信息,用于根据上述接口信息进行接口请求,将接口响应中的邮件标识字段值赋值给变量原始邮件标识字段。
在本公开的一些实施例中,所述根据用户输入,进行当前转发邮件接口的流量录制回放的配置包括:
通过图形化配置方式,进行当前转发邮件接口的流量录制回放的配置,其中,所述当前转发邮件接口的图形化配置项包括比对过滤字段和流量回放次数,所述比对过滤字段,用于根据上述接口信息进行回放后获得的接口响应信息,和服务变更前的接口响应信息,或者同时请求线上和灰度环境的接口响应信息,进行比对,确保是否存在不同,所述接口请求来源为构造测试数据的工具、或前置业务接口,所述流量回放次数用于配置录制的流量分别进行入参替换回放的次数。
在本公开的一些实施例中,所述根据用户输入的被测接口标识,确定被测接口相关信息包括:
根据所述被测接口标识,查询所述被测接口的回放次数;
判断所述被测接口的回放次数是否大于0;
在所述被测接口的回放次数大于0的情况下,根据所述被测接口标识,查询所述被测接口的前置接口信息列表;
获取前置接口信息的全局变量映射信息和局部变量映射信息。
在本公开的一些实施例中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放包括:
判断所述被测接口的前置接口列表个数是否大于0;
在所述被测接口的前置接口列表个数大于0的情况下,根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换;
在当前接口为前置接口的情况下,将前置接口列表个数减1,之后再次执行所述判断所述被测接口的前置接口列表个数是否大于0的步骤;
在当前接口为被测业务接口的情况下,将所述被测接口的回放次数减1,之后再次执行所述判断所述被测接口的回放次数是否大于0的步骤;
根据被测接口标识查询接口信息,开始进行流量回放。
在本公开的一些实施例中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放还包括:
在所述被测接口的前置接口数量不大于0的情况下,执行所述根据被测接口标识查询接口信息,开始进行流量回放的步骤。
在本公开的一些实施例中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换包括:
在所述被测接口的前置接口数量大于0的情况下,读取前置接口的执行顺序字段最小的接口信息;
判断当前接口是否为业务类接口;
在当前接口不是业务类接口的情况下,根据接口信息进行回放,其中,所述接口信息包括被替换数据的录制接口信息、工具接口信息和被测接口信息中的至少一项;
判断请求出参映射信息和请求出参数据头是否包括第一符号;在请求出参映射信息和请求出参数据头包括第一符号的情况下,将第一符号之间的字符串添加到局部变量映射中;
判断请求出参映射信息和请求出参数据头是否包括第二符号;在请求出参映射信息和请求出参数据头包括第二符号的情况下,将第二符号之间的字符串添加到全局变量映射中;
记录接口原始数据、被替换数据、详细请求和响应信息。
在本公开的一些实施例中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换还包括:
在当前接口是业务类接口的情况下,从录制的流量库中选取真实用户接口信息;
解析前置接口的请求入参映射信息和请求入参数据头是否包括使用变量;在包括使用变量的情况下,在局部变量映射中查询获取变量值,进行替换;在局部变量映射没有该变量值的情况下,在全局变量映射中查询获取变量值,进行替换;在局部变量映射和全局变量映射均没有该变量值的情况下,发送警告到日志中;
采用实例化后的请求入参映射信息和请求入参数据头中的变量值,替换录制的真实接口中相同字段的值;之后执行根据接口信息进行回放、判断请求出参映射信息和请求出参数据头是否包括第一符号或第二符号、以及记录接口原始数据、被替换数据、详细请求和响应信息的步骤。
在本公开的一些实施例中,所述流量回放方法还包括:
在根据被测接口标识查询接口信息,开始进行流量回放的步骤之后,执行从录制的流量库中选取真实用户接口信息、解析前置接口的请求入参映射信息和请求入参数据头是否包括使用变量、以及采用实例化后的请求入参映射信息和请求入参数据头中的变量值、替换录制的真实接口中相同字段的值的步骤。
根据本公开的另一方面,提供一种流量回放装置,包括:
请求还原模块,被配置为根据流量录制数据还原录制接口请求;
接口信息确定模块,被配置为根据用户输入的被测接口标识,确定被测接口相关信息;
回放信息生成模块,被配置为根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息;
流量回放模块,被配置为根据被测接口流量回放信息,对被测接口进行流量回放。
根据本公开的另一方面,提供一种流量回放装置,包括:
存储器,被配置为存储指令;
处理器,被配置为执行所述指令,使得所述流量回放装置实现如上述任一实施例所述的流量回放方法。
根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例所述的流量回放方法。
本公开可以针对不同业务的具有上下游依赖关系写接口流量回放的自动化测试,设计出通用化的接口参数替换流量回放方案。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开流量回放方法一些实施例的示意图。
图2为本公开流量回放方法另一些实施例的示意图。
图3为本公开一些实施例中配置化工具的示意图。
图4为本公开一些实施例中配置请求工具接口的示意图。
图5为本公开一些实施例中配置转发邮件接口的示意图。
图6为本公开一些实施例中配置转发邮件接口的示意图。
图7为本公开流量回放方法又一些实施例的示意图。
图8为本公开流量回放装置一些实施例的示意图。
图9为本公开流量回放装置另一些实施例的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
发明人通过研究还发现:对于接口流量不能直接进行回放的场景,相关技术的解决方案是具体某业务的测试开发伙伴硬编码判断接口名字,根据接口涉及的具体场景,分析接口的header字段和入参字段哪些需要替换,分别准备替换的值,回放进行某些字段替换的流量(接口)。例如:回放不具有依赖关系的写接口时,分析准备了某测试账号的鉴权信息,然后回放替换了鉴权信息的接口,从而避免了影响线上数据;对于具有上下游依赖关系的接口,会硬编码请求某依赖的上游接口,把上游接口的出参保存,替换下游接口的入参去回放。
相关技术的解决方案的缺点在于:
1、相关技术方案不具有普适性:业务接口的参数替换是硬编码,与业务紧密结合。当接入新业务时,需要针对新业务的上述2类接口,重新进行硬编码准备替换的参数数据,替换后进行回放。
2、相关技术方案对人员技能要求高:相关技术方案需要参与人员既要具备扎实的业务能力,充分理解业务接口的哪些参数要替换,哪些接口的入参依赖哪些接口的出参等;同时还需要具备理解接口自动化测试外围的工具/平台的研发能力以及自动化测试脚本的编码能力。
鉴于以上技术问题中的至少一项,本公开提供了一种流量回放方法和装置、计算机可读存储介质。下面通过具体实施例对本公开进行说明。
图1为本公开流量回放方法一些实施例的示意图。图1实施例可由本公开流量回放装置执行。如图1所示,图1实施例的方法可以包括步骤100至步骤400中的至少一个步骤,其中:
步骤100,根据流量录制数据还原录制接口请求。
本公开重点阐述流量回放的新型方案,对于前提条件的流量录制,不在本专利阐述范围内,假设录制的接口流量已经保存到某数据源(如redis)中,且可根据录制下来的信息还原接口请求,例如如下的HTTP(超文本传送协议)接口流量的数据格式可以包括字段:url、scheme、request_method,request_body、http_cookie以及流量最原始的数据源hostname和request_id,后两个字段不是必须。
邮件发送样例(简称流量1,后文会引用):
邮件转发样例(简称流量2):
步骤200,根据用户输入的被测接口标识,确定被测接口相关信息。
在本公开的一些实施例中,所述相关字段信息包括请求主体信息和Cookie信息,所述请求主体信息可以包括真实发送方地址和真实接收方地址,其中,Cookie是当用户浏览某个网站的时候,由web服务器存储在用户的机器硬盘上的一个小的文本文件。Cookie中记录了用户的用户名、密码、浏览的网页、停留的时间等等信息。
步骤300,根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息。
在本公开的一些实施例中,步骤300中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换的步骤可以包括步骤310和步骤320中的至少一个步骤,其中:
步骤310,根据常量值,对所述录制接口请求中的相关字段信息进行参数替换。
在本公开的一些实施例中,所述常量值包括测试发送方地址和测试接收方地址。
在本公开的一些实施例中,步骤310可以包括步骤311和步骤312中的至少一个步骤,其中:
步骤311,采用测试发送方地址替换所述录制接口请求中的真实发送方地址。
步骤312,采用真实发送方地址替换所述录制接口请求中的测试接收方地址。
步骤320,根据接口返回的字段值,对所述录制接口请求中的相关字段信息进行参数替换。
在本公开的一些实施例中,步骤320可以包括步骤321和步骤322中的至少一个步骤,其中:
步骤321,针对邮件发送的流量回放中,在邮件发送成功后,获取流量回放返回值中的邮件标识。
步骤322,针对邮件转发的流量回放中,采用所述返回值中的邮件标识替换录制接口请求中的原始邮件标识字段。
步骤400,根据被测接口流量回放信息,对被测接口进行流量回放。
图2为本公开流量回放方法另一些实施例的示意图。图2实施例可由本公开流量回放装置执行。如图2所示,图2实施例的方法可以包括步骤10至步骤50中的至少一个步骤,其中:
步骤10,按照各类业务流量接口回放时参数替换场景对业务流量接口进行归类。
在本公开的一些实施例中,步骤10在图1实施例的步骤100之后执行。
在本公开的一些实施例中,接口参数替换主要是替换图1实施例的步骤100的流量中的request_body和http_cookie值中的某个或者某些字段的值,这些替换值的来源主要归类为2类(本公开不限制类别,可以更多),常量值和接口返回的某字段值。
在本公开的一些实施例中,常量值的例子:图1实施例的步骤100中创建邮件流量接口入参的sender(发送方)和receiver(接收方)字段,替换的字段值可以分别是2个测试账号邮件地址,是个常量值“testSender@testDomain.com”“testReceiver@testDomain.com”;流量的request_body字段被替换后,回放时,接口的入参变化如下,仅仅替换了sender和receiver真实用户账号字段,其他不变,便于使用用户的真实场景(subject,body,attachments)。
回放执行后的返回值示例如下:可以验证status和messages字段值。
{
"status":"success",
"message":"Email has been sent successfully",
"emailId":"123456789"
}
本公开上述例子是发送邮件,邮件发送成功后可以获取如上的emailId(如:123456789)。如果转发邮件操作,它依赖上游的发送邮件接口,转发邮件的入参originalemailId字段,是发送邮件的emailId值。
步骤20,对各类业务流量接口回放时参数替换场景进行模板化处理。
在本公开的一些实施例中,步骤20可以包括:各类业务流量接口回放时参数替换场景的抽象模板化。
在本公开的一些实施例中,步骤20可以包括步骤201至步骤203中的至少一项,其中:
步骤201,使用常量值直接进行替换。
在本公开的一些实施例中,步骤201可以包括:使用常量直接配置进行替换,例如sender字段,使用testSender@testDomain.com直接替换realSender@realDomain.Com。
步骤202,用于替换的值赋值给一个变量,其中,所述赋值给变量的值来源于工具类接口或业务接口等接口。
在本公开的一些实施例中,步骤202可以包括:用于替换的值赋值给一个变量(例如Cookie,或者originalemailId),变量声明标识为[],方括号内字符串为变量名字,可以选择任何便于识别的符号即可;如邮件创建后的emailId值123456789赋值给originalemailId,即可在创建接口配置时出参映射时进行配置;{"emailId":[originalemailId]}。
步骤203,在流量回放接口待替换位置使用所述变量$Cookie$或者$originalemailId$。
基于上述的抽象模型,在实际案例中可以扩展更多规则如下:常量的值类型可以扩展为字符串类型,整形,数组等类型;变量可以包括局部变量,全局变量,局部变量标识为[],全局变量标识为%%。
步骤30,针对模板化处理后的参数替换场景,按照图形化方式进行参数配置。
在本公开的一些实施例中,步骤30可以包括:根据步骤20的模板化,可通过如下图形化方式进行配置实现具有上下游依赖关系写接口的流量回放。同时本公开可降低接口的耦合度、自动化难度以及对测试人员的技能要求,提高效率。
图3为本公开一些实施例中配置化工具的示意图。
在本公开的一些实施例中,对于邮件转发场景,步骤30可以包括步骤301至步骤303中的至少一项,其中:
步骤301,通过调用请求工具接口的返回值获取变量值,其中,所述变量值包括发送方Cookie和转发方Cookie。
在本公开的一些实施例中,步骤301可以包括:设置变量senderCookie和forwardCookie,该变量值通过调用工具接口的返回值获取,具体配置如图4所示。图4为本公开一些实施例中配置请求工具接口的示意图。
在本公开的一些实施例中,步骤301可以包括:通过图形化配置方式,调用请求工具接口的返回值获取变量值,其中,如图4所示,所述请求工具接口的图形化配置项包括请求出参映射信息、执行顺序和接口请求来源,所述请求出参映射信息,用于根据接口信息进行接口请求后,将接口响应中的Cookie字段值赋值给所述变量值,所述接口请求来源为构造测试数据的工具、或前置业务接口。
在本公开的一些实施例中,如图4所示,“请求出参映射”,用于根据上述接口信息进行接口请求,接口响应中的Cookie字段值赋值给变量senderCookies。{senderCookies}是一种变量声明方式,可以使用别的特殊符号框起来变量名。
在本公开的一些实施例中,如图4所示,“执行顺序”为:预自动化的接口,其依赖的上游接口或者前置接口一般多余1个,这些被依赖的接口,根据业务场景,有先后顺序.数字越小越先执行。
在本公开的一些实施例中,如图4所示,“接口请求来源”:可以有多种,本实现方案中使用到两种:构造测试数据的工具,前置业务接口;
本公开上述实施例的准备操作中,是构造测试数据,获取测试账号的Cookie信息,这类获取业务账号的Cookie信息,抽离出来作为http工具类别,可以被各种场景共享。本实现方案与访问业务接口的操作方式一样使用了测试数据构造的接口工具。该设计彻底把多业务的特性等部分通过该种方式实现了差异化,也使得该方案可以灵活使用支持多种业务类型,达到通用性目标。且本公开该类工具接口的实现比较简单,由熟悉业务的测试伙伴研发,实现了与业务相关的测试数据沟通工作/自动化配置工作人员和平台研发工作人员的分离,使得双方各自专注和聚焦自己的领域,降低对人员技能的要求。
步骤302,创建原始邮件,调用业务接口获取原始邮件的邮件标识emailId,设置原始邮件标识变量originalEmailId,其中,所述原始邮件标识变量用于转发邮件接口的入参使用。图5为本公开一些实施例中配置转发邮件接口的示意图。
在本公开的一些实施例中,步骤301可以包括:通过图形化配置方式,调用业务接口(转发邮件接口)获取原始邮件的邮件标识。
在本公开的一些实施例中,如图4和图5所示,所述业务接口和所述请求工具接口使用相同的模板。
在本公开的一些实施例中,如图5所示,所述业务接口的图形化配置项包括请求入参映射值、请求入参数据头和请求出参映射信息,所述请求入参映射值,用于替换流量中的特定键值,所述请求入参数据头,用于替换字段值为变量发送方Cookie的值,所述请求出参映射信息,用于根据上述接口信息进行接口请求,将接口响应中的邮件标识字段值赋值给变量原始邮件标识字段。
在本公开的一些实施例中,如图5所示,“请求入参映射值”的配置是替换流量中某些key的值,如:{"sender":"testSender@testDomain.com","receiver":"testReceiver@
testDomain.com"}。
在本公开的一些实施例中,把字段sender的值testSender@testDomain.com替换如下流量例子中的realSender@realDomain.com;receiver的值senderTest@test.com替换如下流量例子中的realReceiver@realDomain.com
流量录制的接口入参值如:
在本公开的一些实施例中,如上真实流量处理后,请求的字段sender和receiver有了变化,其他字段信息保持不变进行回放。
在本公开的一些实施例中,如图5所示,“请求入参header”用于配置请求的header,替换cookie字段值为变量$senderCookies$的值。$$此语法是变量的使用,变量senderCookies通过前置准备操作1已被声明和赋值;
在本公开的一些实施例中,如图5所示,“请求出参映射”,用于根据上述接口信息进行接口请求,接口响应中的emailId字段值赋值给变量originalEmailId。
步骤303,根据用户输入,进行当前转发邮件接口的流量录制回放的配置。图6为本公开一些实施例中配置转发邮件接口的示意图。
在本公开的一些实施例中,步骤303可以包括:通过图形化配置方式,进行当前转发邮件接口的流量录制回放的配置。如图6所示,所述当前转发邮件接口的图形化配置项包括比对过滤字段和流量回放次数,所述比对过滤字段,用于根据上述接口信息进行回放后获得的接口响应信息,和服务变更前的接口响应信息,或者同时请求线上和灰度环境的接口响应信息,进行比对,确保是否存在不同,所述接口请求来源为构造测试数据的工具、或前置业务接口,所述流量回放次数用于配置录制的流量分别进行入参替换回放的次数。
在本公开的一些实施例中,如图6所示,“比对过滤字段”,用于根据上述接口信息进行回放后获得的接口响应信息,和服务变更前的接口响应信息,或者同时请求线上和灰度环境的接口响应信息,需要进行比对,确保是否有diff。通常接口响应中存在很多每次都可能变化的字段值,比如带有时间信息的,或者该例子中每次邮件创建成功后的emailId字段值,为了避免假DIFF,需要把这些干扰项剔除。
在本公开的一些实施例中,如图6所示,“流量回放次数”,用于选取录制的流量分别进行入参替换回放的次数,配置为10,相当于模拟了10个接口的测试场景。通过配置方式,灵活控制回放场景的数量。
在本公开的一些实施例中,前置业务接口(例如前置准备操作中的创建邮件)中声明的变量,每次转发邮件回放时,前置依赖的业务接口都会从录制的流量中重新回放一次,重新赋值一次originalEmailId,从而10次转发邮件的原始邮件都是不同的,转发邮件也是不同的。
步骤40,在接口配置后,后端/服务端进行解析。
在本公开的一些实施例中,步骤40可以包括:假设被测接口的配置信息以及被测接口前置接口的配置信息(如图3至图6任一实施例)都是模式化的,都非常便于保存到数据库中。保存到库中的数据结构形式可以很多,全部保存到一个表中,或者被测接口保存一张表。所有前置接口保存到一张表,数据结构可以多种形式。无论哪种形式,每个接口保存都会有ID,通过ID可以获取所有配置信息。
步骤50,进行接口回放。
在本公开的一些实施例中,接口回放可以请求到线上,也可以请求到灰度测试环境。通过同一条录制下来的流量,通过全局的hostsname变量(域名变量,赋值为灰度测试环境域名,或者线上环境域名)替换录制流量的域名,可以复用流量,提高接口的利用率。
图7为本公开流量回放方法又一些实施例的示意图。图7实施例可由本公开流量回放装置执行。如图7所示,图7实施例的方法(图2实施例的步骤40)可以包括步骤701至步骤720中的至少一个步骤,
其中:
步骤701,选中某被测接口去执行,该操作会把接口ID传给后端。
步骤702,后端根据所述被测接口标识,查询所述被测接口的回放次数。
步骤703,判断所述被测接口的回放次数是否大于0。在所述被测接口的回放次数大于0的情况下,执行步骤704;否则,在所述被测接口的回放次数等于0的情况下,结束。
步骤704,后端根据所述被测接口标识,查询所述被测接口的前置接口信息列表。
步骤705,获取前置接口信息的全局变量映射(MAP)信息和局部变量映射信息。
步骤706,判断所述被测接口的前置接口列表个数是否大于0。在所述被测接口的前置接口列表个数大于0的情况下,执行步骤707;否则,在所述被测接口的前置接口数量不大于0的情况下,执行步骤717。
步骤707,判断所述被测接口的前置接口列表个数是否大于0。在所述被测接口的前在所述被测接口的前置接口数量大于0的情况下,读取前置接口的执行顺序字段最小的接口信息。
步骤708,判断当前接口是否为业务类接口。在当前接口不是业务类接口的情况下,执行步骤712;否则,在当前接口是业务类接口的情况下,执行步骤709。
步骤709,在当前接口是业务类接口的情况下,从录制的流量库中选取真实用户接口信息。
步骤710,解析前置接口的请求入参映射信息和请求入参数据头是否包括使用变量;在包括使用变量的情况下,在局部变量映射中查询获取变量值,进行替换;在局部变量映射没有该变量值的情况下,在全局变量映射中查询获取变量值,进行替换;在局部变量映射和全局变量映射均没有该变量值的情况下,发送警告到日志中。
步骤711,采用实例化后的请求入参映射信息和请求入参数据头中的变量值,替换录制的真实接口中相同字段的值;之后执行步骤712。
步骤712,在当前接口不是业务类接口的情况下,根据接口信息进行回放,其中,所述接口信息包括被替换数据的录制接口信息、工具接口信息和被测接口信息中的至少一项。
步骤713,判断请求出参映射信息和请求出参数据头是否包括第一符号,在请求出参映射信息和请求出参数据头包括第一符号的情况下,将第一符号之间的字符串添加到局部变量映射中;判断请求出参映射信息和请求出参数据头是否包括第二符号,在请求出参映射信息和请求出参数据头包括第二符号的情况下,将第二符号之间的字符串添加到全局变量映射中。
在本公开的一些实施例中,如图7所示,所述第一符号为[];所述第二符号为%%。
步骤714,记录接口原始数据、被替换数据、详细请求和响应信息。
步骤715,在当前接口为前置接口的情况下,将前置接口列表个数减1,之后再次执行步骤706;并执行步骤716。
步骤716,在当前接口为被测业务接口的情况下,将所述被测接口的回放次数减1,之后再次执行步骤703;并执行步骤717。
步骤717,根据被测接口标识查询接口信息,开始进行流量回放;之后执行步骤709。
本公开提出一种解决具有上下游依赖关系写接口流量回放自动化测试的通用化方案,能够解决如下问题:
本公开针对不同业务的具有上下游依赖关系写接口流量回放的自动化测试,设计出通用化的接口参数替换流量回放方案,这种方案具有普适性,各种业务都适用,可以方便新业务的快速接入;
本公开的该种通用化接口参数替换流量方法可以抽象成可配置化或者UI界面化,从而接口要替换的参数通过页面配置化即可完成接口回放时的参数替换,不需要编码。由此擅长业务的测试伙伴通过配置即可完成流量回放的接口自动化测试,不需要进行编码,降低了技能要求,且自动化测试的效率更好。图形化配置后,工具/平台的研发人员只需要按照模板的替换语法进行统一操作,不需要理解具体哪个业务的哪个接口替换参数的业务意义,降低了业务技能的要求。本公开该种方案也实现了业务技能和平台开发技能的分离,使得各自专注自己的领域。
图8为本公开流量回放装置一些实施例的示意图。如图8所示,本公开流量回放装置可以包括请求还原模块81、接口信息确定模块82、回放信息生成模块83和流量回放模块84,其中:
请求还原模块81,被配置为根据流量录制数据还原录制接口请求。
接口信息确定模块82,被配置为根据用户输入的被测接口标识,确定被测接口相关信息。
在本公开的一些实施例中,所述相关字段信息包括请求主体信息和Cookie信息,所述请求主体信息包括真实发送方地址和真实接收方地址。
回放信息生成模块83,被配置为根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息。
在本公开的一些实施例中,回放信息生成模块83,可以被配置为根据常量值,对所述录制接口请求中的相关字段信息进行参数替换;根据接口返回的字段值,对所述录制接口请求中的相关字段信息进行参数替换。
在本公开的一些实施例中,所述常量值包括测试发送方地址和测试接收方地址。
在本公开的一些实施例中,回放信息生成模块83在根据常量值,对所述录制接口请求中的相关字段信息进行参数替换的情况下,可以被配置为采用测试发送方地址替换所述录制接口请求中的真实发送方地址;采用真实发送方地址替换所述录制接口请求中的测试接收方地址。
在本公开的一些实施例中,回放信息生成模块83在根据接口返回的字段值,对所述录制接口请求中的相关字段信息进行参数替换的情况下,可以被配置为针对邮件发送的流量回放中,在邮件发送成功后,获取流量回放返回值中的邮件标识;针对邮件转发的流量回放中,采用所述返回值中的邮件标识替换录制接口请求中的原始邮件标识字段。
流量回放模块84,被配置为根据被测接口流量回放信息,对被测接口进行流量回放。
在本公开的一些实施例中,如图8所示,本公开流量回放装置还可以包括接口配置模块80,其中:
接口配置模块80,被配置为按照各类业务流量接口回放时参数替换场景对业务流量接口进行归类;对各类业务流量接口回放时参数替换场景进行模板化处理;针对模板化处理后的参数替换场景,按照图形化方式进行参数配置,之后指示接口信息确定模块82执行根据用户输入的被测接口标识,确定被测接口相关信息的操作,指示回放信息生成模块83执行根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息的操作,以及指示流量回放模块84根据被测接口流量回放信息,对被测接口进行流量回放的操作。
在本公开的一些实施例中,接口配置模块80在对各类业务流量接口回放时参数替换场景进行模板化处理的情况下,可以被配置为执行以下操作中的至少一项,其中:使用常量值直接进行替换;用于替换的值赋值给一个变量,其中,所述赋值给变量的值来源于工具类接口或业务接口;在流量回放接口待替换位置使用所述变量。
在本公开的一些实施例中,接口配置模块80在针对模板化处理后的参数替换场景,按照图形化方式进行参数配置的情况下,可以被配置为通过调用请求工具接口的返回值获取变量值,其中,所述变量值包括发送方Cookie和转发方Cookie;创建原始邮件,调用业务接口获取原始邮件的邮件标识,设置原始邮件标识变量,其中,所述原始邮件标识变量用于转发邮件接口的入参使用;根据用户输入,进行当前转发邮件接口的流量录制回放的配置。
在本公开的一些实施例中,接口配置模块80在通过调用工具接口的返回值获取变量值的情况下,可以被配置为通过图形化配置方式,调用请求工具接口的返回值获取变量值,其中,所述请求工具接口的图形化配置项包括请求出参映射信息、执行顺序和接口请求来源,所述请求出参映射信息,用于根据接口信息进行接口请求后,将接口响应中的Cookie字段值赋值给所述变量值,所述接口请求来源为构造测试数据的工具、或前置业务接口。
在本公开的一些实施例中,接口配置模块80在创建原始邮件,调用业务接口获取原始邮件的邮件标识,设置原始邮件标识变量的情况下,可以被配置为通过图形化配置方式,调用业务接口获取原始邮件的邮件标识,其中,所述业务接口和所述请求工具接口使用相同的模板,所述业务接口的图形化配置项包括请求入参映射值、请求入参数据头和请求出参映射信息,所述请求入参映射值,用于替换流量中的特定键值,所述请求入参数据头,用于替换字段值为变量发送方Cookie的值,所述请求出参映射信息,用于根据上述接口信息进行接口请求,将接口响应中的邮件标识字段值赋值给变量原始邮件标识字段。
在本公开的一些实施例中,接口配置模块80在根据用户输入,进行当前转发邮件接口的流量录制回放的配置的情况下,可以被配置为通过图形化配置方式,进行当前转发邮件接口的流量录制回放的配置,其中,所述当前转发邮件接口的图形化配置项包括比对过滤字段和流量回放次数,所述比对过滤字段,用于根据上述接口信息进行回放后获得的接口响应信息,和服务变更前的接口响应信息,或者同时请求线上和灰度环境的接口响应信息,进行比对,确保是否存在不同,所述接口请求来源为构造测试数据的工具、或前置业务接口,所述流量回放次数用于配置录制的流量分别进行入参替换回放的次数。
在本公开的一些实施例中,接口信息确定模块82在根据用户输入的被测接口标识,确定被测接口相关信息的情况下,可以被配置为根据所述被测接口标识,查询所述被测接口的回放次数;判断所述被测接口的回放次数是否大于0;在所述被测接口的回放次数大于0的情况下,根据所述被测接口标识,查询所述被测接口的前置接口信息列表;获取前置接口信息的全局变量映射信息和局部变量映射信息。
在本公开的一些实施例中,流量回放装置在根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放的情况下,可以被配置为判断所述被测接口的前置接口列表个数是否大于0;在所述被测接口的前置接口列表个数大于0的情况下,根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换;在当前接口为前置接口的情况下,将前置接口列表个数减1,之后再次执行所述判断所述被测接口的前置接口列表个数是否大于0的操作;在当前接口为被测业务接口的情况下,将所述被测接口的回放次数减1,之后再次执行所述判断所述被测接口的回放次数是否大于0的操作;根据被测接口标识查询接口信息,开始进行流量回放。
在本公开的一些实施例中,流量回放装置在根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放的情况下,还可以被配置为在所述被测接口的前置接口数量不大于0的情况下,执行所述根据被测接口标识查询接口信息,开始进行流量回放的操作。
在本公开的一些实施例中,流量回放装置在根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换的情况下,可以被配置为在所述被测接口的前置接口数量大于0的情况下,读取前置接口的执行顺序字段最小的接口信息;判断当前接口是否为业务类接口;在当前接口不是业务类接口的情况下,根据接口信息进行回放,其中,所述接口信息包括被替换数据的录制接口信息、工具接口信息和被测接口信息中的至少一项;判断请求出参映射信息和请求出参数据头是否包括第一符号;在请求出参映射信息和请求出参数据头包括第一符号的情况下,将第一符号之间的字符串添加到局部变量映射中;判断请求出参映射信息和请求出参数据头是否包括第二符号;在请求出参映射信息和请求出参数据头包括第二符号的情况下,将第二符号之间的字符串添加到全局变量映射中;记录接口原始数据、被替换数据、详细请求和响应信息。
在本公开的一些实施例中,流量回放装置在根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换的情况下,还可以被配置为在当前接口是业务类接口的情况下,从录制的流量库中选取真实用户接口信息;解析前置接口的请求入参映射信息和请求入参数据头是否包括使用变量;在包括使用变量的情况下,在局部变量映射中查询获取变量值,进行替换;在局部变量映射没有该变量值的情况下,在全局变量映射中查询获取变量值,进行替换;在局部变量映射和全局变量映射均没有该变量值的情况下,发送警告到日志中;采用实例化后的请求入参映射信息和请求入参数据头中的变量值,替换录制的真实接口中相同字段的值;之后执行根据接口信息进行回放、判断请求出参映射信息和请求出参数据头是否包括第一符号或第二符号、以及记录接口原始数据、被替换数据、详细请求和响应信息的操作。
在本公开的一些实施例中,流量回放装置在还可以被配置为在根据被测接口标识查询接口信息,开始进行流量回放的步骤之后,执行从录制的流量库中选取真实用户接口信息、解析前置接口的请求入参映射信息和请求入参数据头是否包括使用变量、以及采用实例化后的请求入参映射信息和请求入参数据头中的变量值、替换录制的真实接口中相同字段的值的操作。
在本公开的一些实施例中,本公开流量回放装置可以被配置为执行如上述任一实施例所述的流量回放方法。
图9为本公开流量回放装置另一些实施例的结构示意图。如图9所示,本公开流量回放装置包括存储器91和处理器92。
存储器91用于存储指令,处理器92耦合到存储器91,处理器92被配置为基于存储器存储的指令执行实现上述实施例涉及的流量回放方法。
如图9所示,该流量回放装置还包括通信接口93,用于与其它设备进行信息交互。同时,该流量回放装置还包括总线94,处理器92、通信接口93、以及存储器91通过总线94完成相互间的通信。
存储器91可以包含高速RAM存储器,也可还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。存储器91也可以是存储器阵列。存储器91还可能被分块,并且块可按一定的规则组合成虚拟卷。
此外,处理器92可以是一个中央处理器CPU,或者可以是专用集成电路ASIC,或是被配置成实施本公开实施例的一个或多个集成电路。
根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例所述的流量回放方法。
本公开计算机可读存储介质可以实现为非瞬时性计算机可读存储介质。
本公开涉及接口自动化测试、流量的录制回放和数据传输协议等技术领域。
本公开在流量录制回放过程中,采用变量方式,承接和解决上下游依赖关系。
在本公开的一些实施例中,流量录制和回放为在不影响用户正常使用的前提下,获取线上用户的真实请求和服务响应结果,将其保存或者转发到目标应用。
在本公开的一些实施例中,接口自动化测试为通过工具/平台对系统或组件之间的接口进行自动测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。
本公开中,变量包括局部变量和全局变量,可以解决更复杂的,可能具体到接口有特意性/特性化的变量。本公开中,不同测试环境的域名,可以设置为全局变量,本公开可以实现自动化的复用。
本公开被依赖的接口有来自于业务的,也有来自于数据构造的,使得业务的数据构造的分离方式,进行平台研发和于业务紧密相关的开发工作给测试伙伴,使得平台研发和业务开发分离,也具有了通用性,便于新业务的接入。
本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在上面所描述的流量回放装置、接口配置模块、请求还原模块、接口信息确定模块、回放信息生成模块和流量回放模块可以实现为用于执行本公开所描述功能的通用处理器、可编程逻辑控制器(PLC)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。
本领域普通技术人员可以理解本公开上述实施例方法的全部或部分步骤可以通过硬件来完成,所述硬件可以实现为用于执行本公开所述方法的通用处理器、可编程逻辑控制器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,所述的程序可以存储于一种非瞬时性计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。
Claims (20)
1.一种流量回放方法,包括:
根据流量录制数据还原录制接口请求;
根据用户输入的被测接口标识,确定被测接口相关信息;
根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息;
根据被测接口流量回放信息,对被测接口进行流量回放。
2.根据权利要求1所述的流量回放方法,其中,所述相关字段信息包括请求主体信息和Cookie信息,所述请求主体信息包括真实发送方地址和真实接收方地址。
3.根据权利要求1或2所述的流量回放方法,其中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换包括以下步骤中的至少一个步骤,其中:
根据常量值,对所述录制接口请求中的相关字段信息进行参数替换;
根据接口返回的字段值,对所述录制接口请求中的相关字段信息进行参数替换。
4.根据权利要求3所述的流量回放方法,其中,所述常量值包括测试发送方地址和测试接收方地址;
所述根据常量值,对所述录制接口请求中的相关字段信息进行参数替换包括:
采用测试发送方地址替换所述录制接口请求中的真实发送方地址;
采用真实发送方地址替换所述录制接口请求中的测试接收方地址。
5.根据权利要求3所述的流量回放方法,其中,所述根据接口返回的字段值,对所述录制接口请求中的相关字段信息进行参数替换包括:
针对邮件发送的流量回放中,在邮件发送成功后,获取流量回放返回值中的邮件标识;
针对邮件转发的流量回放中,采用所述返回值中的邮件标识替换录制接口请求中的原始邮件标识字段。
6.根据权利要求1至5中任一项所述的流量回放方法,还包括:
按照各类业务流量接口回放时参数替换场景对业务流量接口进行归类;
对各类业务流量接口回放时参数替换场景进行模板化处理;
针对模板化处理后的参数替换场景,按照图形化方式进行参数配置,之后执行根据用户输入的被测接口标识,确定被测接口相关信息,根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放的步骤。
7.根据权利要求6所述的流量回放方法,其中,所述对各类业务流量接口回放时参数替换场景进行模板化处理包括以下步骤中的至少一项,其中:
使用常量值直接进行替换;
用于替换的值赋值给一个变量,其中,所述赋值给变量的值来源于工具类接口或业务接口;
在流量回放接口待替换位置使用所述变量。
8.根据权利要求6所述的流量回放方法,其中,对于邮件转发场景,所述针对模板化处理后的参数替换场景,按照图形化方式进行参数配置包括:
通过调用请求工具接口的返回值获取变量值,其中,所述变量值包括发送方Cookie和转发方Cookie;
创建原始邮件,调用业务接口获取原始邮件的邮件标识,设置原始邮件标识变量,其中,所述原始邮件标识变量用于转发邮件接口的入参使用;
根据用户输入,进行当前转发邮件接口的流量录制回放的配置。
9.根据权利要求8所述的流量回放方法,其中,对于邮件转发场景,所述通过调用工具接口的返回值获取变量值包括:
通过图形化配置方式,调用请求工具接口的返回值获取变量值,其中,所述请求工具接口的图形化配置项包括请求出参映射信息、执行顺序和接口请求来源,所述请求出参映射信息,用于根据接口信息进行接口请求后,将接口响应中的Cookie字段值赋值给所述变量值,所述接口请求来源为构造测试数据的工具、或前置业务接口。
10.根据权利要求8所述的流量回放方法,其中,对于邮件转发场景,所述创建原始邮件,调用业务接口获取原始邮件的邮件标识,设置原始邮件标识变量包括:
通过图形化配置方式,调用业务接口获取原始邮件的邮件标识,其中,所述业务接口和所述请求工具接口使用相同的模板,所述业务接口的图形化配置项包括请求入参映射值、请求入参数据头和请求出参映射信息,所述请求入参映射值,用于替换流量中的特定键值,所述请求入参数据头,用于替换字段值为变量发送方Cookie的值,所述请求出参映射信息,用于根据上述接口信息进行接口请求,将接口响应中的邮件标识字段值赋值给变量原始邮件标识字段。
11.根据权利要求8所述的流量回放方法,其中,对于邮件转发场景,所述根据用户输入,进行当前转发邮件接口的流量录制回放的配置包括:
通过图形化配置方式,进行当前转发邮件接口的流量录制回放的配置,其中,所述当前转发邮件接口的图形化配置项包括比对过滤字段和流量回放次数,所述比对过滤字段,用于根据上述接口信息进行回放后获得的接口响应信息,和服务变更前的接口响应信息,或者同时请求线上和灰度环境的接口响应信息,进行比对,确保是否存在不同,所述接口请求来源为构造测试数据的工具、或前置业务接口,所述流量回放次数用于配置录制的流量分别进行入参替换回放的次数。
12.根据权利要求6所述的流量回放方法,其中,所述根据用户输入的被测接口标识,确定被测接口相关信息包括:
根据所述被测接口标识,查询所述被测接口的回放次数;
判断所述被测接口的回放次数是否大于0;
在所述被测接口的回放次数大于0的情况下,根据所述被测接口标识,查询所述被测接口的前置接口信息列表;
获取前置接口信息的全局变量映射信息和局部变量映射信息。
13.根据权利要求12所述的流量回放方法,其中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放包括:
判断所述被测接口的前置接口列表个数是否大于0;
在所述被测接口的前置接口列表个数大于0的情况下,根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换;
在当前接口为前置接口的情况下,将前置接口列表个数减1,之后再次执行所述判断所述被测接口的前置接口列表个数是否大于0的步骤;
在当前接口为被测业务接口的情况下,将所述被测接口的回放次数减1,之后再次执行所述判断所述被测接口的回放次数是否大于0的步骤;
根据被测接口标识查询接口信息,开始进行流量回放。
14.根据权利要求13所述的流量回放方法,其中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息,以及根据被测接口流量回放信息,对被测接口进行流量回放还包括:
在所述被测接口的前置接口数量不大于0的情况下,执行所述根据被测接口标识查询接口信息,开始进行流量回放的步骤。
15.根据权利要求13所述的流量回放方法,其中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换包括:
在所述被测接口的前置接口数量大于0的情况下,读取前置接口的执行顺序字段最小的接口信息;
判断当前接口是否为业务类接口;
在当前接口不是业务类接口的情况下,根据接口信息进行回放,其中,所述接口信息包括被替换数据的录制接口信息、工具接口信息和被测接口信息中的至少一项;
判断请求出参映射信息和请求出参数据头是否包括第一符号;在请求出参映射信息和请求出参数据头包括第一符号的情况下,将第一符号之间的字符串添加到局部变量映射中;
判断请求出参映射信息和请求出参数据头是否包括第二符号;在请求出参映射信息和请求出参数据头包括第二符号的情况下,将第二符号之间的字符串添加到全局变量映射中;
记录接口原始数据、被替换数据、详细请求和响应信息。
16.根据权利要求15所述的流量回放方法,其中,所述根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换还包括:
在当前接口是业务类接口的情况下,从录制的流量库中选取真实用户接口信息;
解析前置接口的请求入参映射信息和请求入参数据头是否包括使用变量;在包括使用变量的情况下,在局部变量映射中查询获取变量值,进行替换;在局部变量映射没有该变量值的情况下,在全局变量映射中查询获取变量值,进行替换;在局部变量映射和全局变量映射均没有该变量值的情况下,发送警告到日志中;
采用实例化后的请求入参映射信息和请求入参数据头中的变量值,替换录制的真实接口中相同字段的值;之后执行根据接口信息进行回放、判断请求出参映射信息和请求出参数据头是否包括第一符号或第二符号、以及记录接口原始数据、被替换数据、详细请求和响应信息的步骤。
17.根据权利要求16所述的流量回放方法,还包括:
在根据被测接口标识查询接口信息,开始进行流量回放的步骤之后,执行从录制的流量库中选取真实用户接口信息、解析前置接口的请求入参映射信息和请求入参数据头是否包括使用变量、以及采用实例化后的请求入参映射信息和请求入参数据头中的变量值、替换录制的真实接口中相同字段的值的步骤。
18.一种流量回放装置,包括:
请求还原模块,被配置为根据流量录制数据还原录制接口请求;
接口信息确定模块,被配置为根据用户输入的被测接口标识,确定被测接口相关信息;
回放信息生成模块,被配置为根据被测接口相关信息,对所述录制接口请求中的相关字段信息进行参数替换,生成被测接口流量回放信息;
流量回放模块,被配置为根据被测接口流量回放信息,对被测接口进行流量回放。
19.一种流量回放装置,包括:
存储器,被配置为存储指令;
处理器,被配置为执行所述指令,使得所述流量回放装置实现如权利要求1-17中任一项所述的流量回放方法。
20.一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1-17中任一项所述的流量回放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410114604.2A CN118093375A (zh) | 2024-01-26 | 2024-01-26 | 流量回放方法和装置、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410114604.2A CN118093375A (zh) | 2024-01-26 | 2024-01-26 | 流量回放方法和装置、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118093375A true CN118093375A (zh) | 2024-05-28 |
Family
ID=91152522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410114604.2A Pending CN118093375A (zh) | 2024-01-26 | 2024-01-26 | 流量回放方法和装置、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093375A (zh) |
-
2024
- 2024-01-26 CN CN202410114604.2A patent/CN118093375A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108319547B (zh) | 测试用例生成方法、装置和系统 | |
US7035853B2 (en) | Document management method and document management device | |
US20100058118A1 (en) | Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus | |
CN108427731A (zh) | 页面代码的处理方法、装置、终端设备及介质 | |
CN113079198B (zh) | 一种云平台接口协议转换的方法及装置 | |
CN115099210A (zh) | 一种清算文件构造方法及系统 | |
CN111897828A (zh) | 数据批处理实现方法、装置、设备及存储介质 | |
CN113326026B (zh) | 一种微服务业务流程接口的生成方法与终端 | |
CN112965912B (zh) | 接口测试用例生成方法、装置和电子设备 | |
CN114116801A (zh) | 数据清单核查方法及装置 | |
CN111698310B (zh) | 基于swift网络的多测试环境调度方法及装置 | |
CN113157904A (zh) | 基于dfa算法的敏感词过滤方法及系统 | |
CN118093375A (zh) | 流量回放方法和装置、计算机可读存储介质 | |
CN115827280A (zh) | 消息处理方法、装置、电子设备及存储介质 | |
CN115033590A (zh) | 一种多域数据融合的方法、装置和存储介质 | |
CN115858352A (zh) | 云挡板测试系统调用系统及方法 | |
CN108829968A (zh) | 基于Python扩展函数的电路图审查方法 | |
CN111522748B (zh) | 一种自动化测试案例生成方法、装置、服务器及存储介质 | |
CN108280182B (zh) | 一种灵活应用内部名单的审批方法及系统 | |
CN112597119A (zh) | 一种处理日志的生成方法、装置及存储介质 | |
CN113296847A (zh) | 一种基于自解析节点的工作流引擎的实现方法 | |
CN111680337A (zh) | Pdm系统产品设计需求信息获取方法及系统 | |
WO2024181308A1 (ja) | 情報処理システムおよびコンピュータプログラム | |
CN115001931B (zh) | 报文的处理方法、装置、设备、介质及程序产品 | |
CN114650222B (zh) | 参数配置方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |