Jmeter示例
- 1.Jmeter第一个案例
- 操作步骤
- 2.重点组件
- 线程组
- 1.添加线程组
- 2.线程组的特点
- 3.线程组的分类
- 4.线程组参数详解
- 在取样器执行错误后要执行的动作
- 线程属性
- 调度器配置
- 5.http请求
- 6.查看结果树
- 3.Jmeter 参数化
- 1.用户定义的变量
- 场景
- 操作步骤
- 2.CSV数据文件设置
- 场景
- 操作步骤
- 参数详解(CSV数据文件设置)
- 3.函数(_counter)
- 参数设置
- 参数化调用
- 运行结果
- CSV 和用户定义的变量作用域问题
1.Jmeter第一个案例
需求:使用Jmeter 访问百度首页接口,并查看请求和响应信息
操作步骤
- 启动Jmeter
- 在测试计划下添加线程组
- 在线程组下添加http请求取样器
- 填写http请求的相关请求数据
- 在线程组下添加“查看结构树监听器”
- 点击启动按钮运行,并查看结果
2.重点组件
线程组
说明:线程组是控制Jmeter 将用于执行测试的线程数,也可以把一个线程理解为一个测试用户
1.添加线程组
位置;右键点击测试计划–>添加–>线程(用户)–>线程组
2.线程组的特点
- 模拟多人操作
- 线程组可以添加多个,多个线程组可以并行或串行
- 取样器(请求)和逻辑控制器必须依赖线程组才能使用
- 线程组下可以添加其他元件下的组件
3.线程组的分类
- 线程组:普通的,常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户
- setUp 线程组:一种特殊类型的线程组,可以执行预测试操作
- tearDown线程组:一种特殊类型线程组,可用于执行测试后工作
4.线程组参数详解
在取样器执行错误后要执行的动作
- 继续:如果取样器里的执行出现错误失败的时候,请求不会停止,继续执行
- 启动下一个进程循环:忽略错误,线程当前循环错误,执行下一个循环
- 停止线程:只限当前线程停止,不影响其他线程执行
- 停止测试:当前执行的线程全部执行完毕后结束
- 立即停止测试:立刻停止
线程属性
- 线程数:虚拟用户数
- Ramp-Up 时间(秒):启动全部虚拟用户数所需要的时间
- 循环次数:指定次数或勾选永远
- 延迟创建线程直到需要:测试开始的时候,所有线程都被创建完,勾了此选项,那么线程只会在合适的需要用到的时候创建
- 调度器:勾选后,调度器配置才能使用
调度器配置
- 持续时间:设置脚本压测持续时间
- 启动延迟:启动延迟时间
5.http请求
位置:选中线程组–>右键–>添加–>取样器–>http请求(作用:向服务器发送http 及 https 请求)
- 协议:向目标服务器发送http 请求时的协议,可以是http 也可以是https
- 端口号:目标服务器的端口号,默认为80
- 方法:发送http请求的方法,可用的方法包括GET,POST,HEAD,PUT,OPTIONS 等
- 路径:目标url 路径(不包括服务器路径和端口)
- Content encoding :内容的编码方式:默认为iso8859
- 同请求一起发送参数:get 请求时url 中附带参数可以通过此方式添加
- 消息体数据:POST/PUT 请求JSON数据存放地
6.查看结果树
位置:选中测试计划/线程组–>右键–>添加–>监听器–>查看结果树 (作用:查看请求和响应结果)
- 取样结果:查看响应信息头信息,响应状态码
- 请求:查看请求相关信息(url,方法,参数)
- 响应:查看响应信息
3.Jmeter 参数化
1.用户定义的变量
添加方式:测试计划–> 线程组–> 配置元件–> 用户定义变量
场景
- 请求:https://www.baidu.com:443
- 要求:使用用户定义的变量配置被测系统的协议,域名和端口
操作步骤
- 添加线程组
- 添加用户定义的变量
- 添加http请求
- 添加查看结果树
用户定义的变量:
http 请求设置
参数化格式${参数名}
运行结果
2.CSV数据文件设置
添加方式:测试计划–>线程组–>配置元件–>CSV数据文件设置
场景
- 请求:https://www.baidu.com
- 要求:循环三次,每次请求时附带参数username,password,code 的值不相同
操作步骤
- 定义CSV数据文件
- 添加线程组
- 添加CSV数据文件设置
- 添加HTTP请求
- 添加查看结果树
定义CSV 文件
http请求设置
参数详解(CSV数据文件设置)
- 文件名:CSV 文件路径
- 文件编码:文件编译字符编码,一般设置UTF-8
- 变量名称,多个变量时,使用英文逗号分隔
- 忽略首行:True为忽略,False为不忽略,默认值为False
- 分隔符:如文件中使用的是逗号分割,则添逗号,如果使用的是制表符号,则添\t
- 是否允许带引号:CSV文件中的内容是否允许带引号
- 遇到文件结束符再次循环:当读取文件到结尾时,是否再从头读取文件,False=当读取文件到结尾时,停止读取文件
- 遇到文件结束符停止线程:当“遇到文件结束符再次循环”一项为False时起效;True:当读取文件到结尾时,停止进程
- 线程共享模式:共享模式一般默认即可
- 所有线程:该文件在所有线程之间共享,所有线程循环取值,线程一取第一行,线程二取下一行
- 当前线程组:各个线程组分别循环取值
- 当前线程:每个文件分别为每个线程打开
3.函数(_counter)
计数函数,一般做执行次数统计使用
位置:工具 -->函数对话框
参数设置
TRUE, 每个用户有自己的计数器,FALSE,使用全局计数器
存储结果的变量名(可选)
参数化调用
运行结果
CSV 和用户定义的变量作用域问题
CSV 的作用域是针对线程的,只有两种情况:
-
对所有线程中的线程生效
父节点是测试计划,并且线程共享模式是“所有线程”时,对所有线程组中的线程生效 -
对当前线程组中的线程生效
父节点是某个线程组时,只会对当前线程组生效
用户定义的变量作用域是针对测试计划
无论用户定义的变量组件放在哪里,他都会对整个测试计划生效