目录
一. 基础知识
1. 元件基本内容
- 取样器:发送请求
- 逻辑控制器:控制语句执行顺序
- 前置处理器:对请求参数进行预处理
- 后置处理器:对响应结果进行提取
- 断言:检查接口的返回结果是否与预期结果一致
- 定时器:设置等待
- 测试片段:封装一段代码,供其他脚本调用
- 配置元件:测试数据初始化配置
- 监听器:查看Jmeter脚本运行结果
1.1 元件执行顺序
配置元件——前置处理程序——定时器——取样器——后置处理程序——断言——监听器
练习:
正确顺序:
定时器1——请求1——定时器1——定时器2——请求2——定时器1——定时器3——请求3
2. 线程组
2.1 线程组分类
线程组: (最常用)
可以看作一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户
setUp线程组:用于执行预测试操作
tearDown线程组:执行测试后工作
2.2 线程组参数
3.Http请求参数
二、Jmeter参数化
定义:使用不同的测试数据,调用相同的测试方法进行测试
本质:实现测试数据与测试方法的分离
1. 全局变量
(不同线程组可以提取)
- 位置:线程组-配置元件-用户定义的变量
- 引用格式:${变量名}
2. 用户参数
(为每一个用户分配不同的参数值)
- 位置:线程组-前置处理器-用户参数
- 步骤:设置用户参数和用户数—设置线程组中线程数(代表用户数量)
3. 文件方式参数化
(CSV数据文件设置)
场景:多用户登录,登陆后循环添加商品,每次添加商品的参数不能相同
位置:线程组-配置元件-CSV数据文件设置
练习
注意存储格式
4. 函数——随机数据
场景:模拟1000个用户,每个用户循环执行10万次添加商品操作,且请求参数不同
位置:工具—函数—函数助手对话框(版本不同,位置会变化)
四种参数化方式区别?如何选择?
- 用户定义变量:
- 定义全局变量
- 取值为固定值
- 用户参数
- 不同用户取到不同的值
- 一个用户多次循环,只能取相同值
- CSV
- 同一用户多次循环,都可以取到不同的值
- 手动进行测试数据的设置
- 函数
- 数据需要提前设置
- 输入数据有特定业务要求时无法使用