Jmeter 分布式测试环境搭建 on Centos

发表于:2017-11-09 14:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Clark_17_    来源:51Testing软件测试网采编

  Jmeter分布式执行原理:
  1、Jmeter分布式测试时,选择其中一台作为调度机(master/Controller),其它机器做为执行机(slave/Agent)。
  2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,应该是通过non-gui命令行模式执行的。
  3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
  注意:
  (1)每一台jmeter远程服务器(slave机器)都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整地运行测试计划,所以根据木桶原理,性能最差的slave可能会影响测试;
  (2)采用JMeter远程模式并不会比独立运行相同数目的非GUI 测试更耗费资源。但是,如果使用大量的JMeter 远程服务器,可能会导致客户端过载,或者网络连接发生拥塞;
  (3)默认情况下,master机器是不执行参与生成并发数据的;
  (4)调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以master自身会有消耗,所以建议单独用一台机器作为master。
  这些简介都是从其他童鞋那里抄的,之前在网上找文档的时候,发现都是windows作为master,本文主要share Centos 的机器搭建的过程,下面是具体的步骤:
  1.配置安装Java & Jmeter
  2.配置 slave
  3.配置 master
  4.non-gui 下,run Jmeter 脚本
  1.配置安装Java & Jmeter
  安装Java,自己找文档去吧,我用的是1.8
  1.png
  安装Jmeter
  Jmeter帮助文档:http://jmeter.apache.org/usermanual/index.html
  Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
  image.png
  进入到自己的目录(/home/username)
  这里要配置环境变量,因为公司Centos设置,一般测试账号拿不到root 权限,于是把环境变量设置在 /home/username/.bashrc里面,
  image.png
  export JMETER_HOME=/home/langzm/apache-jmeter-3.2
  export JAVA_HOME=/opt/java/jdk1.8.0_91
  export JAVA_BIN=/opt/java/jdk1.8.0_91/bin
  export PATH=$PATH:$JAVA_HOME/bin:$JMETER_HOME/bin
  配置以后,执行source ~/.bashrc 或者 source /home/username/.bashrc,在哪儿执行都没有问题。
  安装成功的标志:
  image.png
  2.配置slave
  在配置安装完 Java 和 Jmeter 后,我们要配置两个地方,slave 的IP和端口。
  分别在s1、s2、s3(slave机器)上,进入%JMETER HOME%/bin/目录,
  打开“jmeter.properties”,配置执行机远程启动端口(默认为 1099),
  如改为:
  server_port=1099
  server.rmi.localport=1099
  打开“jmeter-server”,配置执行机远程启动IP
  如改为:
  DIRNAME=dirname $0
  RMI_HOST_DEF=-Djava.rmi.server.hostname=10.31.121.115
  启动slave server:
  image.png
  Using local port: 1099
  Created remote object: UnicastServerRef [liveRef: [endpoint:10.31.121.115:1099,objID:[-19017b68:15d1c7583bc:-7fff, -5417132512864584786]]]
  之前没有配置1099端口和IP,造成如下情况:
  image.png
  后果是master 连不上slave,没有starting ...连接成功的log。
  3.配置master
  在配置安装完 Java 和 Jmeter 后,进入%JMETER HOME%/bin/目录,
  编辑 jmeter.properties 这个文件,修改添加:
  remote_hosts=172.16.129.155:1099,172.16.129.43:1099
  (slave的IP)
  server_port=1099
  client.rmi.localport=0
  server.rmi.port=1234
  server.rmi.localport=1099
  进入%JMETER HOME%/bin/目录,编辑 jmeter.bat这个文件,修改添加:
  set rmi_host=-Djava.rmi.server.hostname=本机ip(控制器ip)
  Set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
  4.non-gui 下,run Jmeter 脚本
  这个可以推荐看一下,我就硬搬过来了,
  先附上参数表:
  image.png
  Demo 1:执行最简单的Jmeter例子
  自己写个test job,里面只访问百度,然后把job 放到master 上面去跑;
  image.png
  baidu.jmx 配置好后,copy到master;
  image.png
  command:
  jmeter -n -t baidu.jmx
  Demo 2:指定Jmeter结果文件及日志路径
  jmeter -n -t /home/langzm/apache-jmeter-3.2/testcase/demo_500_qps.jmx -l /home/langzm/apache-jmeter-3.2/result/demo_500QPS_result.csv
  Demo 3:分布式(远程)执行单个服务器
  jmeter -n -t /home/langzm/apache-jmeter-3.2/testcase/demo_500_qps.jmx -R 11.71.161.115:1099 -l /home/langzm/apache-jmeter-3.2/result/demo_500QPS_result.csv
  Demo 4:多个分布式(远程)执行多个服务器
  jmeter -n -t /home/langzm/apache-jmeter-3.2/testcase/demo_500_qps.jmx -R 11.71.161.115:1099,11.27.221.182:1099,11.81.198.142:1099 -l /home/langzm/apache-jmeter-3.2/result/demo_1500QPS_result.csv
  正经的log:
  image.png
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号