初识
组成
https://www.cnblogs.com/marton/p/11220650.html
做压力测试的时候最好不要加断言,因为我们关心的是程序稳定,不是准确,
当然不是说准确不重要.准确性在在功能测试的时候就测试完成了.可以利用postman yapi等.
线程组
负载发生器,用多线程或多进程的方式模拟用户并发访问.
逻辑控制器
脚本逻辑判断控制.
控制满足什么条件执行哪一步操作.
比如用if控制器,奇数浏览主页,偶数编号下单
实战:
我们先定义一个用户自定义变量
添加变量
判断变量
这里需要注意,它已经提示我们使用__jexl3或者__groovy
格式
${__groovy(${变量名}逻辑比较)}
例如:${__groovy(${isAccessBaidu}==1)}
多个的话 用关系符号连接,例如
${__groovy(${isAccessBaidu}==1 && ${admin}!=0)}
https://www.cnblogs.com/saryli/p/9875553.html
结果:
配置管理
例如上面的添加用户变量
还有就是参数化,cookie管理等.
用JDBC连接一下mysql数据库
下载jdbc驱动
直接去maven仓库下载
找一个符合自己数据库的版本
将下载的jar包放到自己jmeter安装路径lib路径下的ext文件
重启jmeter
添加jmeter连接数据库配置
jdbc:mysql://ip:port/dbname
写一个sql语句
运行
查看结果(提前加个监听器):
请求预处理
通过前置处理器
添加一个shell脚本取样器
简单的打印一下变量
执行
打印到哪里去了呢?
如果你是用jmeter.bat启动的话.会有一个命令行窗口
这个就是相当于控制台
集合点 和 定时并发
定时器: 用于操作和操作之间的设置等待时间
我们添加一个简单的定时器
过5秒钟开始执行
你可以看着结果查看数,当点击执行后,是不是过一会才出结果的
各种请求发送
在Sampler(取样器中)
这些东西都是自带的jar包实现的,要是想有其他功能,可以添加环境变量
debug
可以看到一些中间结果变量等
实现关联
就是上一步结果用到这次
用后置处理器
提取Sampler发出请求得到的响应结果中的数据.
先建立一个请求.
然后添加后置处理器.
然后我们把拿到的结果给下一个处理.比如给shell处理器,打印出来.
运行结果
控制台结果:
数据预判
就是断言.判断结果和我们的预期是否一样.
但是用的并不多,因为jmeter关注的是性能,并且高并发下难免有失败的,特别是服务器块崩溃的时候.
做接口测试的时候可以使用这个断言.
我们运行后肯定不包含这个字符串.
然后我们运行一个成功的.
请求成功是不显示断言结果的.
监控数据可视化
这里监控的是请求结果.
要是想监控服务器,需要做扩展.
我们常用的是: 查看结果数,聚合报告之类.
如果用到了类似图形结果的查看器,需要点击不停顿开始按钮.
JMeter函数助手
有很多助手.
举例:
随机数(__Random)
参数化(_CSVRead)
计数器(__counter)
唯一数(__UUID)
__Random
新建一个shell取样器演示一下:
运行结果:
_Random String
__UUID
其他的也是类似.