jmeter基本使用及基于jmeter的数据验证

 

一、工具介绍

Jmeter是一款使用Java开发的,开源免费的,测试工具,主要用来做功能测试和性能测试。JMeter 用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的性能情况。

二、常用组件介绍

2.1 测试计划(Test Plan)

是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。

默认打开时候就存在了,可以自定义容器的名称。

 

2.2 线程组(Thread Group)

代表一定数量的并发用户,它可以用来模拟并发用户发送请求。

 

相关参数说明:

名称:为线程组起名字。

线程属性-线程数:设置发送请求的用户数目 ,即并发数,上图为100个。

线程属性-Ramp-Up Period(in second):线程间的时间间隔,单位是秒。即所有线程在多少时间内启动。

线程属性-循环次数:请求的重复次数,如果选择后面的forever(默认),那么 请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数。

 

2.3 取样器(sampler)

定义实际的请求内容,被线程组包含,主要用HTTP请求。

 

相关参数说明:

名称:HTTP请求的名字。

Web服务器-服务器名称或IP、端口号、HTTP请求,脚本录制时自动添加。

也可以手动输入。

2.4 监听器(Listener)

常用的包括:聚合报告、查看结果树、用表格查看结果,都支持将结果数据写入文件。

结果树可以用于查看请求的状态,返回值等内容

聚合报告可以用于查看请求相应时间,发送、接受字节大小等数据

2.5 逻辑控制器(Logic Controller)

逻辑控制器可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。常用的场景就是一个用户登陆之后,保持登陆状态,循环的做同样的报错(保存数据,查看数据,指定条件查询等)

上图的例子就是表示用10个并发用户,登录后通过循环控制器,分别执行100次保存交易及提交审批的操作。

 

 

2.6 断言(Assertions)

可以用来判断请求响应的结果是否如用户预期。这个可以判断请求是否成功,隔离失败请求。

 

目前用过的有响应断言。

2.7 前置处理器(Pre Processors)和后置处理器(Post Processors)

前置处理器(Pre Processors)和后置处理器(Post Processors)负责在生成请求之前和之后完成工作。

前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。

我们主要在动态关联中用到后置处理器的正则表达式提取器,后面的例子会列举。

 

2.8 定时器(Timer)

定时器(Timer)负责定义请求之间的延迟间隔(相当于loadrunner的思考时间)。

 

 

三、脚本录制

3.1 添加代理

添加组件>>代理服务器

 

 

3.2 本地设置代理

以Google Chrome为例

 

设置完成后,使用Google Chrome 访问指定地址,相关请求就会全部录制下来

注意,这里录制的脚本是每一次请求的,包括获取所有的图片,js,html网页资源,都会包括在里面,可以在代理界面对录制的请求做一次过滤

排除模式里面添加 .*\.(js|css|PNG|jpg|ico|png|gif).*

四、脚本优化

以登录保存一笔交易为例,现在来调整脚本。

4.1 删除多余脚本脚本

以下为删除后的脚本记录

4.2 调整名字

 

4.3 获取Session ID并使用

获取登录的Session ID,并添加cookies管理器,统一使用

查看结果树,需要提取对应的session

 

登录的请求下添加正则表达式提取

 

添加 cookie 管理器,并获取session变量

 

 

 

 

 

如果成功了,可以用结果树查看

 

4.4 获取业务ID并使用

以这次的用户为例,保存生成的交易ID需要在提交审批时候使用,这里还需要将保存请求里面的返回ID,作为提交审批里面的参数使用

首先,查看结果树里面的保存响应数据,以及提交审批的请求数据。

 

所以需要提取保存请求响应数据的approve id,作为提交审批中的serial_no

 

 

 

 

综上所述,了解这些内容之后,就可以做一些接口级的并发测试了。

 

五、基于jmeter数据验证

这是基于外汇交易系统经常需要测试相同数据出的会计分录,头寸,台账内容是否符合预期的场景,想到一个测试思路。每一次更新代码,都需要检查,审核产生的数据,需求灭有变化的情况下,这个回归的流程都是一致的。

首先得指定一个测试库,不断的清库,修改系统日期(后者更为方便),以即期为例,维护一遍即期交易,保存提交审批并审批完成后,继续清算初审、复审,流程完成之后,会生成对应的台账、头寸、分录数据,将这个主要流程录制为jmeter脚本。

后续分别去访问这些节点(分别对应不同的请求),根据返回值的断言,来判断结果是否符合我们的预期,来判断新一轮的程序调整是否有问题。

 

posted @ 2020-09-07 16:54  时念  阅读(976)  评论(0编辑  收藏  举报
Live2D