ljzsdut
GitHubToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto modeBack to homepage

00 Jmeter入门介绍

一、创建helloworld测试用例

创建一个最简单的测试用例:线程组–>取样器–>断言–>监听器(结果)

Jmeter用户行为
线程组用户(用户数)
取样器请求(协议)
断言判断请求是否成功
监听器结果分析

添加线程组

image-20210424141342246

添加取样器

在线程组中添加取样器(HTTP请求)

image-20210424141452852

修改取样器参数

image-20210424141948048

添加配置元件——Cookie管理器

添加许可,无需修改

image-20210424142020139

添加监听器

监听器作用是为了查看结果

image-20210424142235408

运行测试用例

image-20210424142533578

二、Jmeter元件

注意:元件是有作用域的。

测试计划

image-20210424145133513

线程组

线程组可以理解为一个任务,其中的每个线程相当于一个用户。

image-20210425140113607

常用的线程组类型

  • 普通线程组
  • setUp线程组:会在所有的线程组运行之前运行,一般用于初始化操作
  • tearDown线程组:会在所有的线程组运行之后运行,一般用于收尾操作

相关配置

线程数:相当于模拟的用户数。(每个请求也是依次执行的,如果要同时执行,可以使用”同步定时器“)

Ramp-Up:表示使用多长时间启动所有的线程。

  • 参考值:50<线程数/ramp-up<100
  • 如果太大,会导致第1个线程已经运行完毕退出,而后面的线程还没有启动,达不到并发的效果。
  • 如果太小,短时间内启动大量的线程会导致Jmeter出现瓶颈,而不是服务端出现瓶颈。

循环次数:

永远+调度器:调度器就是一个定时任务

断言

image-20210424150515724

image-20210424150746955

监听器

监听器主要是为了查看jmeter的结果。可以采用不同的监听器从不同的维度分析结果:

  • 查看结果树
  • 汇总报告
  • 聚合报告
  • 图形结果

定时器

image-20210424152228796

固定定时器,类似loadruner中的思考时间:尽可能模拟用户使用情况 同步定时器,类似loadruner中的集合点:让所有的请求在同一时刻同时发送

配置元件

配置元件是对jmeter的测试脚本做一些配置。

http请求默认值

可以为多个http取样器设置默认参数,这样就可以不用为每个http采样器设置了。一般用于多个http采样器共用参数的设置。例如请求地址

image-20210424154128022

逻辑控制器

逻辑控制器类似于编程语言的流程控制语句,控制取样器等的处理逻辑。比如事务控制器可以让一组请求组成一个事务进行测试。

image-20210424152810527

三、参数化

将参数值放到一个文件中,jmeter从文件中读取参数值。文件格式可以是.csv或.txt。

➜  ~ cat Desktop/jmeter相关/login_users.txt
sq001,123456
sq002,123456
sq003,123456
sq004,123456
sq005,123456
sq006,123456
sq007,123456
sq008,123456
sq009,123456
sq0010,123456

文件名可以写绝对路径,也可以写相对路径。如果有分布式的情况,且分布式的几台机器位于不同的操作系统,那么应该写相对路径。

创建"CSV数据文件"元件

image-20210424154825578

配置参数化

image-20210424155842941

使用参数化

image-20210424160053025

四、前置/后置处理器

前置处理器:发送请求之前的处理操作

后置处理器:接受到相应后的处理操作

对报文内容进行提取。常用的:

  • 正则表达式提取器
  • json提取器

image-20210424162512789

五、关联脚本