天天看点

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

初识

  • 组成
  • 线程组
  • 逻辑控制器
  • 配置管理
    • 用JDBC连接一下mysql数据库
  • 请求预处理
  • 集合点 和 定时并发
  • 各种请求发送
    • debug
  • 实现关联
  • 数据预判
  • 监控数据可视化
  • JMeter函数助手
    • __Random
    • _Random String
    • __UUID

组成

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手
https://www.cnblogs.com/marton/p/11220650.html

做压力测试的时候最好不要加断言,因为我们关心的是程序稳定,不是准确,

当然不是说准确不重要.准确性在在功能测试的时候就测试完成了.可以利用postman yapi等.

线程组

负载发生器,用多线程或多进程的方式模拟用户并发访问.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

逻辑控制器

脚本逻辑判断控制.

控制满足什么条件执行哪一步操作.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

比如用if控制器,奇数浏览主页,偶数编号下单

实战:

我们先定义一个用户自定义变量

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

添加变量

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

判断变量

这里需要注意,它已经提示我们使用__jexl3或者__groovy

格式

${__groovy(${变量名}逻辑比较)}
例如:${__groovy(${isAccessBaidu}==1)}
多个的话 用关系符号连接,例如
${__groovy(${isAccessBaidu}==1 && ${admin}!=0)} 
           
https://www.cnblogs.com/saryli/p/9875553.html
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

结果:

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

配置管理

例如上面的添加用户变量

还有就是参数化,cookie管理等.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

用JDBC连接一下mysql数据库

下载jdbc驱动

直接去maven仓库下载

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

找一个符合自己数据库的版本

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

将下载的jar包放到自己jmeter安装路径lib路径下的ext文件

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

重启jmeter

添加jmeter连接数据库配置

jdbc:mysql://ip:port/dbname
           
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

写一个sql语句

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

运行

查看结果(提前加个监听器):

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

请求预处理

通过前置处理器

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

添加一个shell脚本取样器

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

简单的打印一下变量

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

执行

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

打印到哪里去了呢?

如果你是用jmeter.bat启动的话.会有一个命令行窗口

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

这个就是相当于控制台

集合点 和 定时并发

定时器: 用于操作和操作之间的设置等待时间

我们添加一个简单的定时器

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

过5秒钟开始执行

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

你可以看着结果查看数,当点击执行后,是不是过一会才出结果的

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

各种请求发送

在Sampler(取样器中)

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

这些东西都是自带的jar包实现的,要是想有其他功能,可以添加环境变量

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

debug

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

可以看到一些中间结果变量等

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

实现关联

就是上一步结果用到这次

用后置处理器

提取Sampler发出请求得到的响应结果中的数据.

先建立一个请求.

然后添加后置处理器.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

然后我们把拿到的结果给下一个处理.比如给shell处理器,打印出来.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

运行结果

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

控制台结果:

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

数据预判

就是断言.判断结果和我们的预期是否一样.

但是用的并不多,因为jmeter关注的是性能,并且高并发下难免有失败的,特别是服务器块崩溃的时候.

做接口测试的时候可以使用这个断言.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

我们运行后肯定不包含这个字符串.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

然后我们运行一个成功的.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

请求成功是不显示断言结果的.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

监控数据可视化

这里监控的是请求结果.

要是想监控服务器,需要做扩展.

我们常用的是: 查看结果数,聚合报告之类.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

如果用到了类似图形结果的查看器,需要点击不停顿开始按钮.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

JMeter函数助手

有很多助手.

举例:

随机数(__Random)

参数化(_CSVRead)

计数器(__counter)

唯一数(__UUID)

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

__Random

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

新建一个shell取样器演示一下:

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

运行结果:

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

_Random String

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手

__UUID

其他的也是类似.

4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手
4. JMeter初次认识--各种控件介绍组成线程组逻辑控制器配置管理请求预处理集合点 和 定时并发各种请求发送实现关联数据预判监控数据可视化JMeter函数助手