jmeter

231 阅读5分钟

下载与启动

下载地址:jmeter.apache.org/download_jm…

image.png

解压后得到文件夹,点击bin目录下的jmeter.bat即可启动Jmeter 在这里插入图片描述

运行界面

进入后,首先出现如下界面,然后等待,弹出主界面

image.png

主界面:

image.png

工作流程

image.png

image.png

常用元件

image.png

tps:每秒事务数

线程组

一个线程就是模拟一个用户

image.png

动作按钮详解

  1. 继续:显示错误,请求不会停止,继续执行
  2. 启动下一进程循环:终止当前循环进程,直接进入下一循环(需要设置循环次数
  3. 停止线程:停止掉当前线程 多数情况不使用此按钮
  4. 停止测试:所有线程执行完当前迭代后停止
  5. 立即停止测试:所有线程立即停止 image.png

image.png

线程属性

image.png

每次迭代使用同一个线程

好处:不用重新建新线程,省资源,需结合cookie管理器使用 image.png

发送http请求

新建一个http请求 image.png

设置具体属性 image.png

image.png 如果是post-josn请求,需要在线程组里设置一个http信息头管理器

cookie管理器

image.png

image.png

http服务器代理

原理 image.png

image.png

设置代理服务器的配置 image.png PC端开启服务器代理功能

image.png

点击启动开始录制

image.png

随后在浏览器上操作网页,录制完成后点击停止

image.png 查看取样器,录制成功

image.png

函数

image.png

image.png

函数助手

jmeter内置的

image.png

image.png

image.png

配置CSV数据文件

新建一个TXT,前面为name,后面为age,中间逗号隔开 image.png

添加配置元件 image.png

进行设置 image.png

添加一个java取样器 image.png

设置线程组,因为有两组数据所以跑两次,设置两个线程组也行 image.png

启动后观察结果树

image.png

image.png

CSV配置成功


集合点(Timer)

image.png


image.png

image.png

同步定时器试用

设置100个线程组 image.png

添加同步定时器,让50个线程同时并发 image.png

使用active threads监听器查看 ,不知道为什么我这里只有43个并发

image.png

关联

主要解决测试中多个接口的依赖关系,一般通过后置处理器提取

正则表达式提取器

image.png

  1. 引用名称:自己填写的名称
  2. 正则表达式:你要取值的位置替换成(.*?)
  3. 模板:格式为

image.png

  1. 匹配数字:0是随机,-1是全选,1是第一个,2是第二个,以此类推
  2. 缺省值:当没找到对应数据的时候,用缺省值内的数据替代

注意:这里的模板和匹配数字容易混淆,请分清

类表格中,模板的数字表示第几列,匹配数字是当前列的第几个

例:下图的模板数字为1,说明是第一列的hello,匹配数字为2说明是第二个,所以输出是hello1

image.png

image.png

image.png


学习过程中遇到的问题

调度器和ramp-up时间的冲突问题

当启动时间rampup大于调度器的持续时间时,以ramp时间优先,下图中线程组会启动10秒(一般调度器的持续时间会给的很长,一般不会发生图中这种情况image.png

取样器错误后执行动作详解

image.png

  1. 继续:显示错误,请求不会停止,继续执行
  2. 启动下一进程循环:终止当前循环进程,直接进入下一循环(需要设置循环次数
  3. 停止线程:停止掉当前线程 多数情况不使用此按钮
  4. 停止测试:所有线程执行完当前迭代后停止
  5. 立即停止测试:所有线程立即停止

image.png

浏览器代理服务器启动

在jmeter中添加http服务器代理

image.png

或者使用recording模板直接生成框架

image.png 端口号不要输错 image.png

注意事项:要先启动jmeter的http服务器代理元件,然后在刷新浏览器

线程组之间的并行关系

线程组之间并非一定是线性,如果一定要按照顺序,要勾选“测试计划”里的独立运行每个线程组 image.png

image.png

jmeter+Grafana+influxdb性能测试可视化部署

使用工具:

可视化工具-Grafana

数据库-influxdb

测试软件-jmeter

influxdb的安装与配置

首先通过压缩包解压文件

image.png

进入influxdb-1.7.3-1目录下面,复制地址

image.png

用管理员命令打开cmd,用cd /d进入到刚才复制的地址,输入influxd -config influxdb.conf

启动influx数据库 image.png

启动完毕后,回到influxdb-1.7.3-1目录,在目录内进入cmd image.png

输入influx,进入数据库

image.png

输入create database xxx 创建数据库(库名统一为xxx,自己设置)并输入exit退出,到此influxdb设置完成

jmeter设置后端监听器和断言

在监听器里添加后端监听器,配置如下 image.png

添加beanshell断言,代码如下

if(!ResponseCode.equals("200")){

    Failure = true;

    FailureMessage="FailureResponseCode:" + ResponseCode + "\n";

    String response = new String(ResponseData);

    return;

}

 

String response = new String(ResponseData);

//检查内容替换为自己要设定的检查点即可

Failure = !(response.contains("检查内容"));

if (Failure) {

    Failure = true;

     FailureMessage="FailureResponseMessage:" + response + "\n";

     return;

}

image.png

然后等Grafana设置完毕后,即可在jmeter里运行测试脚本

Grafana

使用网址:localhost:3000登录

image.png 输入初始账号admin,密码11111,进入

此时打开监控面板会显示很多紫红色感叹号:influxdb error:bad gateway,说明data_source选择的数据源“InfluxDB”没能连接到InfluxDB数据库。

image.png

点击设置-data sources,并打开现有的这个名为“InfluxDB”的数据源进行编辑。

image.png

image.png

因为我们上面已经安装好了InfluxDB在本地,所以这边URL保持为localhost:8086不变即可。 拉到下面,data base把原来的“jmeter”改为你在安装InfluxDB后创建的数据库库名,比如你上面执行了create database xxx命令进行建库,那么就把下图中的jmeter改为自己设置的xxx,然后保存即可,回到监控面板,没有弹窗和紫红色的感叹号说明Grafana连接数据库成功。

image.png

image.png

参数化的三种常用方式

CSV

image.png

用户参数

image.png

用户定义的变量

image.png