线程组相关:
顺序执行和并发执行
直接执行的话,多线程组里的线程组执行顺序是并发执行
在测试计划里选择独立运行每个线程组
线程组执行顺序就会变为顺序执行
setup 和 teardown 线程组
在测试计划里添加setup 和 teardown 线程组,setup线程组会优先执行,teardown线程组会最后执行
线程组设置细节
线程数:模拟的用户量个数
Ramp-Up 时间:所有用户上线的总时间,以秒为单位(比如5,就表示总共耗时5秒,如果是 5个用户,那就意味着 每隔1.25秒上线一个: 5秒/(5-1) = 1.25)
循环次数 :每个用户 做线程组里面定义的动作行为多少轮。 缺省就做一轮。
http请求相关:
http请求默认值
添加http请求默认值,就不用对每个http请求进行单独的设置了
在http请求默认值里添加默认参数
http信息头管理器
在接口当中,我们有时候需要传json格式的数据,有时请求需要加上cookie 这时就需要用到http头信息管理器,来对header添加参数
参数化
用于动态的获取,设置,生成数据,比如说接口之间的参数调用等,主要的实现方法有以下四种:
用户自定义变量
添加配置元件,选择用户自定义变量
调用时使用
${变量名} 例如${val} 就可以取到变量val的值
csv数据文件
csv 是一种特殊的文件格式,使用逗号分隔,例如:
jmeter中添加csv数据文件格式:
结果如下:
用户参数
前置处理器-用户参数
函数
断言
响应断言
添加断言-响应断言
响应断言失败时报错,成功时不显示
断言持续时间
请求到得到结果中间的时间
json断言
对json格式的响应进行断言
逻辑控制器和关联
if逻辑控制器
foreach 逻辑控制器
循环逻辑控制器
接口关联
json提取器
正则提取器同理,只是将JSONPath提取的数据改用正则表达式提取
跨线程组传值
设置全局变量
乱码问题
通过后置处理器BeanShell PostProcessor 输入prev.setDataEncoding("utf-8"); 目的是修改响应数据编码格式为utf-8,保存
性能测试
高并发
在线程组里添加用户个数
在线程组里添加httq请求和同步定时器
添加聚合报告:
Label:请求的名称,就是脚本中Sampler的名称。# Samples(样本):总共发给服务器的请求数量,如果模拟10个用户,每个用户迭代10次,那么总的请求数为:10*10 =100次。Average(平均值):默认情况下是单个Request的平均响应时间,当使用了Transaction Controller(事务控制器) 时,也可以用Transaction的时间,来显示平均响应时间 ,单位是毫秒。Median(中位数):50%用户的响应时间小于该值。90% Line(90% 百分位):90%用户的响应时间小于该值。95% Line(95% 百分位):95%用户的响应时间小于该值。99% Line(99% 百分位):99%用户的响应时间小于该值。Min(最小值):最小的响应时间。Maximum(最大值):最大的响应时间。Error%(异常%):错误率=错误请求的数量/请求的总数。Throughput(吞吐量):默认情况下表示每秒完成的请求数(Request per Second)。Received KB/sec(接收数据):每秒从服务器端接收到的数据量。Sent KB/sec(发送):每秒发送到服务器端的数据量。
高频率
添加常量吞吐量计时器
例如 以20QPS 访问 15秒