1、首先肯定是添加线程组和http请求:见上一篇Jmeter的安装和基础使用:Jmeter实现接口压测 - for MacOSX
2、涉及到cookie的添加到header中
3、在使用Jmeter进行压力测试时,如果提交的参数不变,那么就会读取缓存数据,无法测试出服务器真正的负载能力,所以要对提交的参数进行参数化来解决这一问题。
在Jmeter中经常使用 CSV Data Set Config
读取外部数据源完成参数化
说明:
Filename:保存参数化数据的文件目录
File encoding:UTF-8
Variable Names(comma-delimited):对应参数文件每列的变量名, (如:有几列参数,在这里面就写几个参数名称,每个名称中间用分隔符分割)
Delimitet:参数文件分隔符,用来在“Variable Names”中分隔参数,与参数文件中的分隔符保持一致即可;
Allow quote data:是否允许引用数据,默认false,选项选为“true”的时候对全角字符的处理出现乱码 ;
Recycle on EOF?:是否循环读取参数文件内容
Stop thread on EOF?:当Recycle on EOF为False时(读取文件到结尾),停止进程,当Recycle on EOF为True时,此项无意义
Sharing Mode: 多线程的时候参数化取值策略
(1)某个参数新建.csv文件,写入要key:value
(2)添加外部引用设置项,引用已建文件
(3)传参时引用方式(以post请求为例)
4、压测结果输出到文件内
(1)新建文件,用来接收返回结果
(2)设置需要的返回结果
(3)结果文件
相关参数说明:
elapsed:请求的消耗时间,从发送到接收完成全程消耗的时间
Latency:请求发送到刚开始接收响应时
Connect:请求连接建立的时间
responseCode:请求返回错误码
responseMessage:请求返回错误信息
5、当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理,Jmeter可以通过“后置处理器”中的“正则表达式提取器”来处理关联
说明:
引用名称:下一个请求要引用的参数名称,如填写supplyCluesId,则可用${supplyCluesId}引用它
正则表达式:正则表达式提取器根据该处的设置进行信息匹配,()括起来的部分就是要提取的。
模板:代表从正则表达式结果引用的样式,其实结果是一组,而不是一个。$1$代表这一组结果的第1个,以此类推;
匹配数字:0代表正则表达式结果组中随机,1代表全部
缺省值:当引用不对时显示传递的信息,一般写一个ERROR。
6、聚合报告
数据分析:
Samples:发出请求数量
Average:平均响应时间(单位:)。默认是单个Request的平均响应时间
Median:中位数,也就是50%用户的响应时间
90%Line:90%用户的响应时间
95%Line:95%用户的响应时间
99%Line:99%用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:出错率
Throughput:吞吐量,默认情况下表示每秒完成的请求数
KB/sec:每秒从服务器端接受到的数据量
(1)结果展示图
(2)数据可导出至文件内,记得勾选 Save Table Header
,这样报告中才有对应的header
(3)导出的数据长这样