性能测试Jmeter 性能测试四:线程组常用组件介绍

Thread Group下常用组件介绍

  1. Pre Processors,发出请求前要做哪些准备工作,类似于 Unittest 中的 setUp
  2. Post Processor:请求之后的处理,常用的就是正则,通过正则表达式将其他接口需要的某些数据存在变量里,其他接口的请求参数就可以直接调用生成好的变量。也可以断言或者做数据关联.
  3. Assertions,用来对结果做断言,检查实际结果和预期是否一致。
  4. Timer,定时器。设置sleep时间,还可以控制请求发送速度,比如10分钟发送100次请求。
  5. Test Fragment片段,类似于一个函数,其他控制器可以引用。
  6. Config Element配置元件,可以提前设置一些信息,供后续公共使用。CSV date set config 将本地数据文件形成数据池(date 
    pool)
  7. Listener监听器,对测试结果进行可视化处理,可以分析响应结果和报告。

Thread Group下组件执行顺序

  1. 配置元件-前置处理器-定时器-取样器-后置处理器-断言-监听器

补充

  1. User Defined Variables 的 3 种方式
    1. test plan中添加变量,可以通过${变量名}在任意位置引用
    2. Config element中添加变量,如下图。如果同时在test plan和config element中添加了同样的一个变量名,则根据就近原则,会取config element中的变量,但是定义的时候最好不要变量同名。
    3. User parameter,可以针对不同的线程定义不同的变量。目前总共有两个用户,三个变量,设置三个http请求,在每个请求中,url1  url2  url3填入请求地址中:设置线程数为1,执行,可以看到只执行了user1的三个变量参数,同理,如果设置线程数为2,则user2的三个变量参数也被执行。如果设置线程数为3,则在第三个线程中会随机从user1或者user2中选择变量参数执行:

插件生成器

下载https://jmeter-plugins.org/downloads/all/ 

下载后将插件包放到jmeter 的lib/ext目录下并重启jmeter

定时器

作用域:

定时器是在每个 sampler(采样器)之前执行的,而不是之后(无论定时器位置在

sampler 之前还是下面);

当执行一个 sampler 之前时,所有当前作用域内的定时器都会被执行;

如果希望定时器仅应用于其中一个 sampler,则把定时器作为子节点加入;

如果希望在 sampler 执行完之后再等待,则可以使用 Test Action

集合点的设置,设置好后还需要在thread group中设置:

Loop controller设置

如果同时设置了线程组thread group的循环次数和循环控制器的循环次数,那循环控制器的子节点运行的次数为两个数值相乘的结果。Forever 选项:勾选上这一项表示一直循环下去。即下截图中总共会运行6次。

用文件做参数化

设置两个http request,设置thread group 循环次数为3:

一共执行了6次,数据文件datetest.txt 中只有4个 url,CSV Data Source配置的是 Recycle  on EOF,所有后面两个请求和开始的是重复的。

更改配置继续执行,则只执行4次。

将测试结果保存到文件中

将测试结果倒出到HTML

jmeter -n -t D:\program\apache-jmeter-5.0\samples\28.summary_report.jmx -l 
d:\summary.jtl -e -o d:\result 
D:\program\apache-jmeter-5.0\samples\28.summary_report.jmx:表示要执行的脚本 
d:\summary.jtl:生成后的脚本 
d:\result :web 页面报告的存储路径

生成随机变量的 3 种方式

  1. Random variable
  2. Function helper dialog中设置随机变量
  3. Counter,在整个线程组内设置一个全局变量,该变量的值是唯一的
  4. 对变量还可以做附加操作,如通过javascript、增加字符串、substring函数对变量做改变对变量处理后再使用:
    1. __javaScript 处理 counter_num
    2. 增加字符串,${__javaScript(${counter_num}+'abc',result)}
    3. substring,${__substring(${counter_num},0,1,)}等价于:${__javaScript("${counter_num}".substring(1),result)}

将响应数据保存到指定文件

根据响应数据的内容保存成不同的格式,比如 html/xml/.zip 等。如果响应的数据太多,导致 View Results Tree 不能很好的展示,可以 用此插件功能保存到文件。目录是相对于 jmeter 的 bin 目录的相对路径,如果不写的话默认就在 bin 目录下,生成 
的文件根据实际响应的数据类型保存为对应的格式,不需要写后缀名。

HTTP Mirror Server

在本地临时搭建一个 HTTP 服务器,将服务器接收到的请求原样返回,这样就可以看到发出请求的具体内容,供调试使用。

 

猜你喜欢

转载自blog.csdn.net/chang_jinling/article/details/94122941