1.准备工作
Jmeter下载地址:jmeter.apache.org/download_jm…
解压后可通过修改jmeter.bat脚本,修改head -Xmx -Xms给jmeter增加内存;
可通过option->choose language切换中文
2.配置线程组和请求
2.1 为默认的测试计划,新增线程组,右键->添加->线程->线程组
参数: 线程数为Ramp-up时间内启用本地线程数(并发数);
循环次数:若勾选永远,可用调度器选择持续时间;
2.2 配置http请求
配置参数:协议头、ip、端口号、请求方法、路径、请求内容…
Keep alive单选框:默认勾选,复用tcp/ip连接,若压测较高,可能出现地址绑定异常(java.net.BindException:address already in use:connect)。
解决方式:
- 增加window系统tcp/ip连接端口数量:(修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters,新建 DWORD值,name:MaxUserPort,value:65534(十进制));
- 改成短连接:不勾选keep-alive选项,每次请求回收连接,重新发起连接;
请求内容(消息体数据)若json格式,需要指定http-header:content-Type=application/json
3.模拟用户登录
请求参数需要登录获取token,或者请求需要模拟多用户。
通过JSON提取器+BeanShell后置处理程序处理
3.1 导入csv账户数据,模拟多账户登录;
返回结果树中,查看对应响应数据结构,由json解析器解析。
3.2 JSON提取器
解析返回json为局部变量(线程组内可访问)
3.3 Beanshell提取器
局部变量设置为全局可见(跨线程组可访问)
4.查看执行结果
4.1返回树
请求右键添加->监听器->结果树
4.2 汇总报告
线程组右键添加->监听器->汇总报告
写在最后
文章中并发压测多用户登录的方式,如果多条线程组(都需要token)同时压测,在实际场景可能会对登录接口压力较大,暂时没有找到更合理方式,欢迎留言指教!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END