Jmeter linux 分布式压测方法、原理及注意事项(使用2.13版本)

本文详细介绍如何使用JMeter进行分布式测试,包括机器分布、配置修改、启动命令及执行原理。掌握正确配置方法,实现高效负载测试。

机器分布:

  • 1 master 2 slave

修改内容:

  • 修改jmeter-server文件(slave机器):

    • 修改/添加如下代码:RMI_HOST_DEF=-Djava.rmi.server.hostname=**** (****为每台server自己的ip)
  • 修改jmeter.properties文件(master机器)
    • jmeterengine.nongui.port=0 (大概1038行,修改/添加)
  • 启动slave机器:
    • 启动命令:./jmeter-server
    • 成功将回显:
      • (Created remote object: UnicastServerRef [liveRef: [endpoint:[xxxx:12989](local),objID:[-2a48d839:1633e9e77f3:-7fff, -6740358428425422313]]])
  • 启动master机器:
    • 指定slave机器的方式:
      • (1)运行命令,指定slave ip的方式,启动时-R指定slave ip,逗号分割;
        • 启动命令:./jmeter -n -t ws_test.jmx -R ***,*** -l test.jtl -e -o /apache-jmeter-3.2/test/report/
      • (2)配置文件指定slave ip的方式,文件指定修改master机器的jmeter.properties文件中,指定执行机器remote_hosts=ip:port,ip1:port1,slave的port可以到slave机器的jmeter-server文件查看SERVER_PORT
        • 启动命令:./jmeter -n -t ws_test.jmx -r -l test.jtl -e -o /apache-jmeter-3.2/test/report/
    • 成功将回显:


分布式执行原理:

  • Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave);
  • 执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行;
    • 举例:如果当前有5台slave机器,预期你要提供500线程的压力,那么jmx文件中只需要设置100线程即可;
  • 执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

注意事项:

  • jmeter在slave各个机器上的版本要一致,否则引起报告数据统计可能异常;
  • 如果是参数化构建(比如设置csv-data数据),则需要将对应的csv-data数据分发到各个slave机器指定目录,并在jmx文件中指定好统一目录;
  • 在non-gui模式下,如果要生成带有分位点信息的报告,执行时增加 -l my.jtl参数;执行完成后,将my.jtl文件放入gui模式下的『聚合报告』中打开(浏览->选择my.jtl文件)即可;

    • 注意务必每次导入的时候要清理一下数据(点击"扫帚"),否则,每次的数据会与上次的数据进行叠加处理,引起数据失真;

 

Linux环境下搭建JMeter分布式环境时,可能会遇到一些问题。其中一个常见问题是启动./jmeter-server时出现"Cannot start. localhost.localdomain is a loopback address"的错误信息。解决这个问题的方法是编辑jmeter-server文件,设置固定的代理服务器主机IP。具体步骤如下: 1. 打开Linux中的jmeter-server文件: ``` cd /opt/apache-jmeter-4.0/bin vi jmeter-server ``` 2.jmeter-server文件中找到RMI_HOST_DEF这一行,并取消注释: ``` # One way to fix this is to define RMI_HOST_DEF below RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.248.130(当前机器ip) ``` 将当前Linux主机查询到的IP地址填入RMI_HOST_DEF的值中。 另外,还需要确保CLASSPATH环境变量正确设置。可以使用以下命令设置CLASSPATH: ``` export CLASSPATH=${JMETER}/lib/ext/ApacheJMeter_core.jar:${JMETER}/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:${CLASSPATH} ``` 此外,还需要在jmeter.properties文件中进行一些配置。可以通过编辑jmeter.properties文件,将以下配置项设置为true: ``` jmeter.save.saveservice.output_format=xml jmeter.save.saveservice.response_data=true jmeter.save.saveservice.samplerData=true jmeter.save.saveservice.requestHeaders=true jmeter.save.saveservice.url=true jmeter.save.saveservice.responseHeaders=true ``` 通过以上步骤,你就可以在Linux环境下成功搭建JMeter分布式环境了。 #### 引用[.reference_title] - *1* [Linux环境下搭建jmeter分布式](https://blog.csdn.net/shanezhijian/article/details/124668524)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Jmeter分布式环境搭建](https://blog.csdn.net/weixin_51084345/article/details/127261500)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值