本次文章只是介绍部署过程,运行示例,并没有做分布式性能测试
环境介绍
一台ubuntu10系统服务器,简称A
一台centos7系统服务器,简称B
使用A做控制机(Controller),B做执行机(Agent)
JDK环境准备
写这篇文章时,jmeter最新版本为5.0版本
官网下载链接http://jmeter.apache.org/download_jmeter.cgi
从4.0版本开始都是需要java 8 or 9
这里由于A、B服务器上的jdk版本是 1.7,所以笔者还是使用jmeter 3.0版本。
jmeter安装
- 下载tgz或zip包
- 上传到服务器存放的路径,并复制路径
- 解压包
- 添加环境变量,使用vim /etc/profile
添加复制的jmter路径,并把bin路径添加到PATH配置,示例如下
export JMETER_HOME=/home/ling/apache-jmeter
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$PYTHON_HOME:$PATH:$JMETER_HOME/bin
- source /etc/profile
- 验证jmeter -v ,显示如下信息,说明安装成功
(如果遇到问题,查看文章最后,是否和笔者一样的问题)
_ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____
/ \ | _ \ / \ / ___| | | | ____| | | \/ | ____|_ _| ____| _ \
/ _ \ | |_) / _ \| | | |_| | _| _ | | |\/| | _| | | | _| | |_) |
/ ___ \| __/ ___ \ |___| _ | |___ | |_| | | | | |___ | | | |___| _ <
/_/ \_\_| /_/ \_\____|_| |_|_____| \___/|_| |_|_____| |_| |_____|_| \_\ 3.0 r1743807
Copyright (c) 1999-2016 The Apache Software Foundation
A、B两台服务器都进行如上操作后。
jmeter配置与启动
- 进行A控制机(Controller)jmeter的bin路径下vim jmeter.properties
第228行,修改remote_hosts为B执行机(Agent)的IP加端口1099,如果控制机也同时作执行时,就把127.0.0.1加到后面。多个ip之间用逗号隔开。
- B执行机(Agent)启动jmeter-server,进入jmeter的bin路径下执行 ./jmeter-server
运行分布式测试
1,A控制机jmeter路径下新建script路径,并存放jmx脚本,在该路径下执行脚本
命令示例
jmeter -n -t test.jmx -R ip1,ip2,ip3 -l testReport.jtl
jmeter -n -t test.jmx -R 200.200.200.11 -l testReport.jtl
2,查看B执行机(Agent)会有运行的日志输出,执行完成可以看到A控制机的script路径下生成了testReport.jtl
3,执行命令,分析testReport.jtl
jmeter -g testReport.jtl -e -o report/
4,report文件夹下导出查看index.html文件,报告比较详细,有各种响应图,详细的介绍,功能参考博客
https://www.cnblogs.com/miaomiaokaixin/p/6118081.html
遇到的问题
问题1: jmeter -v 时提示bash: /home/ling/apache-jmeter/bin/jmeter: 权限不够
解决:进入该路径下,执行命令chmod 777 *
问题2:控制机运行jmx脚本时,会提示如下信息,导致测试跑不起来:
Waiting for possible shutdown message on port 4445
进入目录/apache-jmeter/bin:
vim jmeter.properties
这个是用于监听shutdown message的,如果不需要,可以直接设置为0即可。(小于1000都可以)
问题3:报告中乱码的问题
解决:听说使用高版本的jmeter已经解决了这个问题,可能jmeter3.2以上都没有这个问题