引言
Jmeter是一款 性能测试工具,可以用来进行压力测试,一般小型的压力,用单机就可以进行,但是如果需要 高并发,高压力,往往就不能在windows 上单机进行测试,这个时候我们就需要进行在linux上进行分布式压测,分布式切记在同一内网下
安装JDK(服务器有java环境 可以忽略这一步)
下载 https://www.oracle.com/technetwork/java/javase/downloads/index.html jdk包然后在终端执行以下命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| mkdir /usr/local/java/ 创建目录
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java/ 在jdk压缩包目录下执行此命令,将jdk解压至制定文件夹
vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_171 这里我的压缩包是jdk1.8.0_171所以是这个,大家根据自己的实际情况而定
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile 使配置生效
ln -s /usr/local/java/jdk1.8.0_171/bin/java /usr/bin/java 创建软连接
java -version 压力机,控制机都需要
|
下载 Apache Jmeter
http://jmeter.apache.org/download_jmeter.cgi 并上传至服务器 压力机,控制机将jmeter的路径配置成相同。如都在根目录下 创建一个 ApacheJmeter目录将压缩包解压至指定文件夹。 然后配置环境变量
1 2 3 4 5 6 7 8
| vim /etc/profile
export PATH=/www/wwwroot/apache-jmeter-5.2/bin:$PATH
source /etc/profile 使配置生效
压力机,控制机都需要
|
配置 控制机(master),压力机(slave)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| master机
打开 jmeter bin目录下 jmeter.properties文件
搜索remote_hosts将原有的内容改成以下格式 remote_hosts=ip:端口,ip:端口 ip为slave机的内网ip地址
搜索server.rmi.ssl.disable 将其改成以下内容 server.rmi.ssl.disable=true 关闭校验
sampleresult.default.encoding=UTF-8 此步是设置UTF-8编码格式
slave机
同样是这个jmeter.properties文件
server.rmi.ssl.disable=true 只需改这个
|
执行分布式压测式,需要先执行关闭防火墙命令 systemctl stop firewalld
并且如果是云服务器,需要先去安全组放行端口,这一步可以让你们的运维帮忙,不过最好自己动手,免得被鄙视 =–=
执行测试的命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| 1.执行测试并生成报告
jmeter -n -t SCRIPTS -r -l TEST.JTL -e -o TESTRESULT
2.执行测试生成JTL文件
jmeter -n -t SCRIPTS -r -l TEST.JTL
3.根据JTL生成测试报告
jmeter -g TEST.JTL -e -o TESTRESULT
第二,第三联合起来就是第一的操作
参数声明
-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错
|