目录
一、线程组
1.1.线程组的介绍
1).作用
通过配置线程组中的线程数来模拟用户。线程数就是用户数,线程组就是用户组
2).特点
2.1).设定线程数 (模拟多人操作)
2.2).取样器(请求)和逻辑控制器必须依赖线程组才能使用
2.3).线程组可以添加多个,多个线程组可以并行或串行
1.并行:默认情况下线程组为并行执行
2.串行:在测试机会下勾选”独立运行每个线程组“
2.4).线程组下可以添加其他元件下组件
3).线程组分类
3.1).普通线程组
用于执行业务测试的脚本
3.2).setUp线程组
用于测试前的预处理操作,在所有的线程组中最先执行
3.3).tearDown线程组
用于测试后的后置处理(恢复环境、数据)的操作,在所有的线程组中最后执行
1.2.线程组属性
1).线程数:模拟虚拟用户数
2).Ramp-up时间:虚拟用户启动所需要的时间
3).循环次数:
3.1).配置指定次数:控制脚本循环执行的次数
3.2).配置循环永远
1.需要调度器配置使用
2.运行时间:脚本执行的时间
3.延迟启动时间:脚本等待特定的时间才能开始运行
4).线程数m和循环次数n的关系
4.1).如果同时配置,实际发送的HTTP请求数应该为m*n
4.2).虽然发送请求的次数相同,但是不能相互替换
1.线程数:代表并发用户数,体现服务器的负载量
2.循环次数:代表执行时间
二、参数化
2.1.JMeter参数化常用方式
1).用户定义的变量
2).用户参数
3).CSV Data Set Config
4).函数
2.2.用户定义的变量
1).方式一
1.1).添加方式:测试计划-->线程组-->配置元件-->用户定义的变量
1.2).配置:参数名+参数值
1.3).使用:在HTTP请求的取样器中引用定义的变量.${参数名}
2).方式二
2.1).配置:在测试计划中配置用户定义的变量
2.2).使用:在HTTP请求的取样器中引I用定义的变量.${参数名}
2.3.用户参数
1).添加
线程组--->前置处理器--->用户参数
2).配置
2.1).参数:添加变量
2.2).参数值:添加用户--针对每个用户配置不同的参数值
3).使用
在HTTP请求的取样器中引I用定义的变量.S{参数名}
2.4.CSV数据文件设置
1).添加
线程组--配置元件--CSV数据文件设置
2).编写CSV数据文件(.cSV作为后缀)
2.1).多个参数写为多例,其中用逗号分隔
2.2).多组参数值,则使用多行来设置
3).配置
3.1).文件名:填写CSV文件的路径,建议使用相对路径
3.2).文件编码:UTF-8
3.3).变量名称:从CSV数据文件读取的数据需要保存的变量名,有多个变量时用逗号分隔
3.4).是否忽略首行:是否从CSV数据文件第一行开始读取
3.5).分隔符:要求与CSV数据文件中多列的分隔符一致
3.6).遇到文件结束符是否再次循环:默认TRUE
3.7).遇到文件结束符是否停止线程:当前一个参数为FALSE,该参数有效,一般设置为TRUE
2.5.函数方式参数化(counter)
1).添加
工具--函数助手对话框--上面函数选择counter--生成$[_counter(false,)}
2).counter
2.1).TRUE:每个用户使用独立的计数器
2.2).FALSE:每个用户使用全局的计数器
3).使用
在取样器中使用${_counter(false,》来使用即可
4).应用场景
当需要参数化的数据只有唯一性要求,但是对具体的参数值无明确要求时,建议使用函数方式
三、断言
3.1.作用
让脚本自动化执行的过程中,能够自动的判定执行结果是否正确,需要添加断言
3.2.断言的概念
1).断言:让程序判断预期结果和实际结果是否一致。
2).提示:JMeter断言是在请求的返回层面增加一层判断机制:因为请求成功了,并不代表结果一定正确,因此需要检测机制提高测试准确性。
3.3.常用断言
1).响应断言
2).JSON断言
3).持续时间断言(Duration Assertion)
3.4.响应断言
1).添加
线程组---HTTP请求--断言--响应断言
2).配置
2.1).测试字段:需要检查的字段
2.2).模式匹配规则:需要使用什么规则来进行检查
且、或者、非
2.3).测试模式:需要校验的值
填写多个值
3.5.JSON断言
1).应用场景
适用于返回的HTTP响应为JSON格式
2).添加
线程组--HTTP请求--断言--JSON断言
3).配置
3.1).JSON PATH:$.内容
3.2).勾选"Additonal assertvalue”
3.3).在expectedvalue里填写期望值
3.6.持续时间断言
1).应用场景
适用于性能测试时,检查HTTP请求的响应时间是否超过预期值
2).添加
线程组--HTTP请求--断言--断言持续时间
3).配置
预期时间