Jmeter以non-gui模式进行分布式测试

由于Jmeter是一个纯JAVA的应用,用GUI模式运行压力测试时,对客户端的资源消耗是相当惊人的,所以在进行正式的压测时一定要使用non-gui模式运行,如果并发数很高或者客户端的硬件资源比较一般的话,还可以以server模式用多个client进行分布式测试。

下面以武汉快网CMCC项目为例,结合官方文档和自己的实际经验来谈一谈,Jmeter如何以non-gui模式进行分布式测试。

前置工作

linux下安装jdk1.7

负载机使用的是CentOS 6.7版本的linux系统, 自带有OpenJDK runtime environment (openjdk),它是一个在linux上实现开源的java 平台。

1 . 查看CentOs自带的JDK是否已安装,输入:yum list installed |grep java

查看JDK是否安装

2 . 若有自带安装的JDK,则表示JAVA环境已经安装成功,可以查看安装的java版本信息

输入:java -version可查看Java版本;

查看Java版本

3 . 如果想卸载CentOS系统自带Java环境,可输入:yum -y remove java1.7.0-openjdk* (*表示卸载掉java1.7.0的所有openjdk相关文件)

4 . 卸载tzdata-java输入:yum -y remove tzdatajava.noarch,当结果显示为Complete,即卸载完毕。

5 . 检查CentOS系统网络连接是否正常

使用yum方式安装需要连接网络下载相应安装文件,故需要使用ping命令测试网络,如ping www.baidu.com

测试网络

6 . 查看yum库中的java安装包,输入:yum -y list java*

查看yum中java安装包

7 . 使用yum安装java环境,输入:yum -y install java1.7.0-openjdk*,当结果显示为Complete,即安装完毕。

安装JMeter

安装好java环境,就可以在此基础之上安装jmeter。

1 . 将jmeter安装包上传到服务器指定目录,比如:/root/mobile/

2 . 解压zip安装包,输入:unzip apache-jmeter-2.13.zip

解压jmeter安装包

非GUI模式下运行Jmeter

JMeter远程测试原理图如下:

Jmeter远程测试原理图

如果运行JMeter客户端的机器性能不能满足测试需要,那么测试人员可以通过单个JMeter客户端来控制多个远程JMeter服务器,以便对服务器进行压力测试,模拟足够多的并发用户。通过远程运行JMeter,测试人员可以跨越多台低端计算机复制测试,这样就可以模拟一个比较大的服务器压力。

用一台机器(称为JMeter客户端)上的jmeter同时启动另外几台机器(称为JMeter远程服务器)上的jmeter。

1 . 保证jmeter客户端和jmeter远程服务器采用相同版本的jmeter和JVM。
2 . jmeter客户端和jmeter远程服务器最好在同一个网段内。
3 . 在jmeter远程服务器上运行root/mobile/apache/jmeter-2.13/bin/jmeter-servere脚本。指定server的ip,如:./jmeter-server -Djava.rmi.server.hostname=118.192.6.15,jmeter-server正常启动会提示”创建远程服务”
4 . 在jmeter客户端上修改/bin/jmeter.properties文件,找到属性"remote_hosts",使用JMeter远程服务器的IP地址作为其属性值。可以添加多个服务器的IP地址,以逗号作为分隔。

找到Jmeter属性文件

例如:

1
2
remote_hosts=118.192.6.15:1099,118.192.6.16:1099   #RMI port to be used by the server (must start rmiregistry with same port)
server_port=1099

修改Jmeter属性

5 . 在jmeter客户端上启动jmeter。

1
./jmeter -n -t plan.jmx -l result.jtl -r

plan.jmx测试计划可以在windows环境下先创建,最好不要添加监听器,应为命令行启动的话监听器可能会占用资源而且有没有任何视图效果。

参数说明 :

-n 告诉jmeter使用nogui模式运行测试

-t 执行的测试脚本名

-l 后面跟着测试结果记录的路径与文件名

-r 表示远程启动 (remote)

jmeter客户端会自动向jmeter远程服务器上分发测试计划。
最后,可以将result.jtl结果文件下载到windows机上在不同的监听器上分析测试结果。

文章目录
  1. 1. 前置工作
    1. 1.1. linux下安装jdk1.7
    2. 1.2. 安装JMeter
  2. 2. 非GUI模式下运行Jmeter