威尼斯人棋牌-威尼斯欢乐娱人城-首页

一种基于流量录制生成自动化测试案例的方法与流程

文档序号:24942034发布日期:2021-05-04 11:35

本发明属于App开发和App测试技术领域,具体涉及一种基于流量录制生成自动化测试案例的方法。



背景技术:

在互联网行业中,通常需要对系统进行测试。一般来说,传统方案通常是测试人员基于测试进行分析,然后基于测试分析的结果进行自动化测试案例编写。

在实际操作中,此种处理方式对于生产上存在的各种场景,以及生产上请求的数据多样,考虑不够充分,容易造成场景验证不全,发生生产事故。



技术实现要素:

基于以上问题,本发明提供一种基于流量录制生成自动化测试案例的方法,克服了传统方案对于场景验证不全的问题,保证了测试案例场景多样性,生成的案例可以反复多次实行,接口请求数据的真实性及多样性得以保存。

为解决技术问题,本发明所采用的技术方案是:

一种基于流量录制生成自动化测试案例的方法,包括以下步骤,

步骤1:录制被测系统的流量,具体为获得流量的http协议元素,将解析出来的数据按照自定义的的格式保存到数据库;

步骤2:案例模型设计,具体为基于多场景进行模型设计建立模型库,回放保存在数据库的录制流量,将录制到的http协议元素的自定义格式数据与模型库里模型进行匹配,生成测试场景,保存为测试案例集;

步骤3:基于测试案例集生成自动化测试脚本,具体为将案例集里的每个测试场景逐个读出,调用自动生成案例功能模块,自动生成测试案例脚本,在测试案例中将录制到的http协议元素里面不能多次反复使用的数据,即录制到的http协议元素里面不能多次反复使用的数据,进行随机或者其他预设方式生成,保证多次运行唯一性,其他数据保持为录制的数据。

在本发明一实施中,上述步骤1具体包括如下:

步骤1.1:使用tcpcopy提供的功能,监听被测服务器对外进行数据交互的端口;

步骤1.2:将tcpcopy监听的被测服务器与外部进行数据交互完成复制,然后将该数据转发到指定的流量录制服务器上;

步骤1.3:在流量录制服务器上,使用mitproxy对通过tcpcopy复制的流量进行拦截,然后对tcp进行解析,将流量解析为http协议流量;

步骤1.4:使用python脚本对http协议进行解析,获得http协议元素,将解析出来的数据按照自定义的的格式保存到数据库。

进一步的,在步骤1.4中,http协议元素包括流量的请求路径,请求参数,响应返回。

在本发明一实施中,上述步骤2具体包括如下:

步骤2.1:进行模型设计,具体为,基于ip地址对访问频率最高的用户进行模型设计;对访问量最大请求的接口进行模型设计;对访问响应提示,权限不足被拒场景进行模型设计;对访问响应报错场景进行模型设计;对访问响应时间最长的场景进行模型设计,完成建立模型库;

步骤2.2:回放保存在数据库的录制流量,将录制到的http协议元素的自定义格式数据与步骤2.1设计的模型库里的所有模型进行匹配,将满足匹配条件的流量请求筛选出来进行保存,然后生成若干测试场景,并保存为测试案例集。

在本发明一实施中,上述步骤3具体包括如下:

步骤3.1:读取步骤2.2生成的测试案例集信息,将案例集里的每个测试场景逐个读出;

步骤3.2:将测试场景里包含的流量请求数据读出,将请求数据的各种http协议元素逐个读出,然后通过调用自动生成案例功能模块,自动生成测试案例脚本;

步骤3.3:对步骤3.2自动生成的测试案例脚本,将录制到的http协议元素里面不能多次反复使用的数据,进行随机或者其他预设的方式生成,保证多次运行唯一性,其他数据保持为录制的数据。

进一步的,在步骤3.2中http协议元素包括请求路径,请求参数,响应返回,在步骤3.3中录制元素里面不能多次反复使用的数据包括请求头、请求路径、请求参数。

进一步的,对于测试案例中有授信验证要求的接口,可加入前置步骤,具体为进行授信获取。

与现有技术相比,本发明具有以下有益效果:

1.本发明将录制到的被测系统流量请求,通过模型匹配生成若干测试场景,保证了测试案例场景多样性。

2.本发明将请求头、请求路径、请求参数等录制元素里面不能多次反复使用的数据,进行随机等方式进行生成,保证多次运行数据具有唯一性;其他数据替换为录制的数据,然后再通过调用自动化案例生成功能模块,生成自动化测试案例,生成的案例经过了前述的数据处理,可以反复多次实行且接口请求数据的真实性及多样性也得以保存。

具体实施方式

下面结合实施例对本发明作进一步的描述,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域的普通技术人员在没有做出创造性劳动前提下所获得的其他所用实施例,都属于本发明的保护范围。

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例作简单的先容。显而易见地,下面描述仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以将本说明书应用于其它类似情景。

一种基于流量录制生成自动化测试案例的方法。

该方案包含以下几个主要步骤:

步骤1:录制被测系统的流量。

步骤1.1:使用tcpcopy提供的功能,监听被测服务器对外进行数据交互的端口。

步骤1.2:将tcpcopy监听的被测服务器与外部进行数据交互完成复制,然后将该数据转发到指定的流量录制服务器上。

步骤1.3:在流量录制服务器上,使用mitproxy对通过tcpcopy复制的流量进行拦截,然后对tcp进行解析,将流量解析为http协议流量。

步骤1.4:使用python脚本对http协议进行解析,获得流量的请求路径,请求参数,响应返回等各种http协议元素,将解析出来的数据按照自定义的的格式保存到数据库。

步骤2:案例模型设计。

步骤2.1:进行模型设计:具体为,基于ip地址对访问频率最高的用户进行模型设计;对访问量最大请求的接口进行模型设计;对访问响应提示,权限不足被拒场景进行模型设计;对访问响应报错场景进行模型设计;对访问响应时间最长的场景进行模型设计以及其他多种场景建模,从而建立模型库。

步骤2.2:回放保存在数据库的录制流量,将录制到的http协议元素的自定义格式数据与步骤2.1设计的模型库里的所有模型进行匹配,将满足匹配条件的流量请求筛选出来进行保存,然后生成若干测试场景,并保存为测试案例集。

步骤3:基于测试案例集生成自动化测试脚本。

本步骤可以采取如下步骤:

步骤3.1:读取步骤2.2生成的测试案例集信息,将案例集里的每个测试场景逐个读出。

步骤3.2:将测试场景里包含的流量请求数据读出,将请求数据包含的请求路径,请求参数,响应返回等各种http协议元素逐个读出,然后通过调用自动生成案例功能模块,自动生成测试案例脚本。

步骤3.3:对步骤3.2自动生成的测试案例脚本,将请求头、请求路径、请求参数等录制元素里面不能多次反复使用的数据,进行随机或者其他预设方式例如序列化进行生成,保证多次运行也具有唯一性,其他数据保持为录制的数据,从而实现生成的自动化测试案例可以反复多次实行,且最大限度保证了数据的多样性与真实性。

步骤3.4:对测试案例中有授信验证要求的接口,可加入前置步骤,具体为进行授信获取。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过App的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确先容和描述的实施例。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

威尼斯人棋牌|威尼斯欢乐娱人城

XML 地图 | Sitemap 地图