由于大量压测需求,在一台测试机器并不能满足我的需求,于是我查询了如何使用jmeter免费开源软件进行分布式压测我先在网上查到了这两篇文章,
【Jmeter篇】Jmeter踩坑记—分布式调度压测部署(二) - 云+社区 - 腾讯云 (tencent.com)https://cloud.tencent.com/developer/article/1527534
分布式压测怎么做 - 简书 (jianshu.com)https://www.jianshu.com/p/c4e3670c3cf5按照操作步骤执行:
先找到准备两台测试机:192.168.8.149,192.168.8.148
修改:Jmeter/bin/jmeter.properties
1.控制机+执行机:192.168.8.149:找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,192.168.8.148:1099
启动执行机jmter-server.bat 会出现如下情况
Could not find ApacheJmeter_core.jar ...
... Trying JMETER_HOME=..
Found ApacheJMeter_core.jar
Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
An error occurred: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
errorlevel=1
请按任意键继续. . .
搜索查看下面文章jmeter-server.bat启动报Server failed to start: java.rmi.server.ExportException: Listen failed on port:_青少儿编程STEAM-CSDN博客https://blog.csdn.net/weixin_42274149/article/details/906741752.将控制机和执行机jmeter-5.0\bin中jmeter.properties文件#server.rmi.ssl.disable=false修改为server.rmi.ssl.disable=true
Could not find ApacheJmeter_core.jar ...
... Trying JMETER_HOME=..
Found ApacheJMeter_core.jar
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.8.149:14670](local),objID:[-5dfe658a:17f863d4e3c:-7fff, -1975431153667862392]]]
执行机:192.168.8.148:找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,
启动执行机jmter-server.bat
Could not find ApacheJmeter_core.jar ...
... Trying JMETER_HOME=..
Found ApacheJMeter_core.jar
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.8.149:14670](local),objID:[-5dfe658a:17f863d4e3c:-7fff, -1975431153667862392]]]
启动jmeter.bat,在jmeter客户但上编写脚本(验证阶段,只取一个线程数)
运行-远程启动-选择两个执行机进行执行
Starting the test on host 192.168.8.149:1099 @ Mon Mar 14 10:24:20 CST 2022 (1647224660008)
Finished the test on host 192.168.8.149:1099 @ Mon Mar 14 10:24:20 CST 2022 (1647224660864)
执行完成后发现响应为空
再查询百度得知还需要改一个参数
3.打开jmeter.properties文件,找到mode=Standard,去掉前面的#,重新启动jmeter。
改后正常请求到自己需要的内容
发现原来分布式压测这么简单,哈哈,不过就是又一个不是很懂,为啥修改的端口号是自己随机起的呢而不是启动jmter-server.bat时显示的[endpoint:[192.168.8.149:14670](并且这个端口号一直是变动的)
期间还出现了几次下面的问题,都是因为端口号的缘由
java.net.ConnectException:连接被拒绝:连接
no such object in table
-----2022-3-16--------------------------------------------------------------------------------------------------------------
之后又发现了下面这一片文章,知晓了
实战:Jmeter分布式压力测试_村东头老杨的博客-CSDN博客_jmeter分布式压测实战https://blog.csdn.net/weixin_38337769/article/details/106059064
当然启动时端口也是可以自定义的。
在slave机器的 Jmeter的bin目录下,修改jmeter.properties文件下的server_port和server.rmi.localport两个配置项。比如修改为1000:
server_port=4444
server.rmi.localport=4444
启动后的ip和port为:192.168.10.131:4444
版权归原作者 静文·红·精灵 所有, 如有侵权,请联系我们删除。