jmeter 高并发测试报告_Jmeter分布式如何做

当单机没有足够能力来模拟较重的负载,可以使用jmeter分布式测试功能, 通过一个Jmeter控制台来远程控制多个Jmeter引擎完成测试.

每个线程均独立运行测试计划。因此,线程组常用来模拟并发用户访问。假如客户机没有足够的能力来模拟较重的负载,可以使用Jmeter的分布式测试功能来通过一个Jmeter控制台来远程控制多个Jmeter引擎完成测试。

我们通过单个jmeter 客户端就可以控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试。

54dc900c882cc2691d3607e2441c1f15.png

d2013714d1c1e1aa272331b5452d64d9.png

Jmeter分布式需要2台+ 以上 (含2台)的测试机, 其中一台作为控制机, 另外N台作为远程服务机

手上有两台机器 mac 192.168.5.11(控制机Contorller), windows 192.168.29.94(远程机)

先来配置远程服务机windows

远程服务机需要java环境和jmeter, 推荐和控制机版本保持一致.

修改%JMETER_HOME%/bin/jmeter.properties

bb30ede5ac0f54d5cdd9203d914ad11b.png

d2013714d1c1e1aa272331b5452d64d9.png

修改端口号:

推荐远程服务机和控制机设置同一个端口, 默认是1099, 这里设置7890

再来配置控制机

同样是修改jmeter home目录下jmeter.properties

e167630b16d02cb0f973b115fa3f9170.png

d2013714d1c1e1aa272331b5452d64d9.png

控制机在remote_host后面加远程服务机, 有多台用逗号隔开.

在启动jmeter时候会看到如下提示:

==============================================================

Don't use GUI mode for load testing, only for Test creation and Test debugging !

For load testing, use NON GUI Mode:

jmeter -n -t [jmx file] -l [results file] -e -o [Path to output folder]

& adapt Java Heap to your test requirements:

Modify HEAP="-Xms512m -Xmx512m" in the JMeter batch file

==============================================================

官方推荐使用非GUI模式, 在非GUI模式下关闭各类监听, 它会消耗不必要的开销.

配置完成后既可以启动:

上述配置完成后需要重启jmeter, 进入jmeter GUI模式, 可以看到远程启动多了服务机

c88572c866ea92439221b45e5f649076.png

d2013714d1c1e1aa272331b5452d64d9.png

现在还是无法启动远程服务机的

需要启动一个agent 服务, 他在 JMETER_HOME/bin/jmeter-server.bat 或 JMETER_HOME/bin/jmeter-server

启动方法是进入上述bin目录:

e1b30283566a4a0ce792db739fc3fc9d.png

d2013714d1c1e1aa272331b5452d64d9.png

至此控制机和远程服务机分布式部署和配置完成, 现在就可以进行压测了

切记, 控制机和服务机都需要启动这个jmeter-server

控制机

e0d82581b718f6a3cb61aff0b70e052e.png

d2013714d1c1e1aa272331b5452d64d9.png

远程服务机

32b06b7ad0d76549e14ef0445495b06c.png

d2013714d1c1e1aa272331b5452d64d9.png

命令行执行脚本:

jmeter -JthreadNum=100 -Jtime=200 -n -t demo/baidu.jmx -r -l demo/log.jtl

3986631ab21d656c6769d48b47ad15f7.png

d2013714d1c1e1aa272331b5452d64d9.png

GUI模式同样效果, 线程组设置10个, 两台机器每台是分配到10个, 共2*10=20

97c3a138cb340b7a34e4690816c3d72e.png

d2013714d1c1e1aa272331b5452d64d9.png

注意事项

  1. 保持Contorller和远程机器的JDK、jmeter以及插件等配置版本一致;
  2. 测试数据有用到CSV或者其他方式进行参数化,需要将data pools在每台远程机上复制一份,且读取路径必须保持一致;
  3. 确保Contorller和远程机器在同一个子网里面;
  4. 检查防火墙是否被关闭,端口是否被占用(防火墙会影响脚本执行和测试结构收集,端口占用会导致远程机报错);
  5. 分布式测试中,通过远程启动代理服务器,默认查看结果树中的响应数据为空,只有错误信息会被报回;
  6. 如果并发较高,建议将Contorller机设置为只启动测试脚本和收集汇总测试结果,在配置文件里去掉Contorller机的IP;
  7. 分布式测试中,如果1S启动100个模拟请求,有5个Agent机,那么需要将脚本的线程数设置为20,否则模拟请求数会变成500,和预期结果相差太大。

今日推荐阅读文章精选推荐

为什么要做接口测试

JMeter数据库操作

Jmeter接口测试-正则表达式

JMeter中文返回乱码

Jmeter接口测试-参数化

JMeter接口测试-基础

测试-感想

咨询工作加微信

https://u.wechat.com/EPBj_hTn9Jo5UXt3hBJNCuA (二维码自动识别)

d2013714d1c1e1aa272331b5452d64d9.png

扫描二维码

欢迎自荐和推荐, 需要的微信推送简历!

请猛戳下面二维码了解更多

842292de4b1d28a15cff85679b048378.png

d2013714d1c1e1aa272331b5452d64d9.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值