一、用户定义的变量
1、添加"用户定义的变量"
2、填写"host、port"
二、setUp线程组
1、添加"setUp线程组"
2、设置循环次数"100"
三、CSV 数据文件设置
1、添加"CSV 数据文件设置"
2、填写信息"用户登录数据.csv、username,password"
四、HTTP请求
1、添加"HTTP请求"
2、填写信息"http、{host}、{port}、POST、/user/login、UTF-8、username、{username}、password、{password}"
五、HTTP信息头管理器
1、在"HTTP请求"下添加"HTTP信息头管理器"
2、填写信息,根据抓包"Request Headers"的信息填写
|------------------|-------------------------------------------------------------------------------------------------------------|
| Referer | http://${host}:{port}/user/login.html |
| Accept-Language | zh-CN,zh;q=0.9 |
| Origin | http://{host}:${port} |
| X-Requested-With | XMLHttpRequest |
| Content-Type | application/x-www-form-urlencoded;charset=UTF-8 |
| Accept-Encoding | gzip, deflate, br, zstd |
| Accept | application/json,text/javascript,*/*;q=0.01 |
| User-Agent: | Mozilla/5.0 (Windows NT 10.; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537 |
六、JSON断言
1、添加"JSON断言"进行断言
2、填写信息"$.code、200"
七、JSON提取器
1、添加"JSON提取器"提取token(大量数据写入CSV文件,进行读取)
2、填写"login_token、$.data.token",根据抓包数据填写
八、计数器
1、添加"计数器"
2、填写内容"number"
九、BeanShell断言
1、添加"BeanShell断言"
2、打开"函数助手对话框",
3、填写信息"_setProperty、login_token{number}、{login_token}"
4、填写"BeanShell断言"信息
// 获取的token,保存为全局变量,共享给其他线程组
// 创建100个全局变量:login_token_1,login_token_2,login_token_...
{__setProperty(login_token_{number},${login_token},)}
十、调试取样器
1、添加"调试取样器"
2、把"JMeter 属性"设置为"True"
十一、在另一个线程组填写需要压测的详情页
1、添加"线程组",设置循环次数
2、添加"HTTP请求",填写内容"http、{host}、{port}、GET、UTF-8、参数"
3、添加"函数助手"
先生成"${__Random(1,100,)}"
再生成"{__property(login_token_{__Random(1,100,)},,)}"
4、在"HTTP请求"下添加"HTTP Cookie管理器"
填写内容"Authorization、{__property(login_token_{__Random(1,100,)},,)}、${host}、/"
5、在"HTTP请求"下添加"HTTP信息头管理器"
6、添加"调试取样器",设置"JMeter 属性:True"
7.添加"JSON断言-判断code是否为200"