首先保证你的本地服务器是ios或linux系统,windows的暂时
1、一张分布式压力的图解,如下
准备:
1、两台slave
2、一个master
3、待测目标地址 http://XXX
准备环境:linux环境,master如果可以最好有可视化电脑界面,便于jmx文件的随时修改,此处我的master是没有界面的
2、文章参考:
http://www.cnblogs.com/puresoul/p/4844539.html
3、开始分布式压力测试
步骤一: 登录master
前提:master上安装JDK和jmeter
1)ssh 192.168.10.1 --我们假设master IP为192.168.10.1
2)授权 chmod 600 /Users/Desktop/work/performance/ecs-ssh-key.pem
3)登录 (master) ssh -i /Users/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.10.1
--ecs-ssh-key.pem为存放在本地的登录授权证书
4)完成
步骤二:拷贝代码 login.jmx
由于master没有配置界面,我需要在我本地电脑写好代码拷贝到master
拷贝命令:
scp -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.10.1:/home/ec2-user/performanceTest/login.jmx ~/Desktop/work/performance/jmx
步骤三、配置两台slave
前提:安装JDK 和jmeter到两台slaves
1)连接slave
ssh -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.0.1
ssh -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.0.2
2)两台slaves 启动jmeter bin目录下的jmeter-server文件,确保jmeter服务启动
3)拷贝csv文件到slave
jmx文件只需要拷贝到master,两台slave只需要拷贝user.csv文件(csv文件为200个用户登录的实际用户名、密码)
两台slave上csv存放的文件路径需要保持一致,均放置在jmeter bin目录下
步骤四:运行jmx
方式1:修改脚本线程数运行的情况
jmeter -JthreadCount=500 -n -t login.jmx -l result.jtl -e -o ResultReport
方式2:直接运行整个jmx(推荐)
./jmeter -n -t /home/ec2-user/testFile/login.jmx -r -l /home/ec2-user/result/result.jtl
4、controller配置slave
打开master上Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.0.1:8089 192.168.0.2:8089,8089是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。
5、测试报告
以命令方式执行完jmeter脚本后,会生成jtl文件,需要将jtl转换成图标展示出来,便于查看测试报告
方式1:
1)
./jmeter -n -t /home/ec2-user/performanceTest/login.jmx -r -l /home/ec2-user/result/result.jtl
2)
./jmeter -g result.jtl -e -o /home/tester/apache-jmeter-4.0/resultReport
方式2:
./jmeter -n -t login.jmx -r -l result.jtl -e -o /home/tester/apache-jmeter-4.0/resultReport
参数说明:
ps:每次运行完生成的测试报告需要删除,多次运行不能覆盖
6、压缩测试报告拷贝到本机
master上压缩测试结果:(如果master有可视化界面操作,则不需要这一步,直接可在master查阅)
zip -q -r 500report.zip /home/ec2-user/performanceTest/ResultReport
拷贝压缩结果到本地,查看测试结果图表:
scp -i ~/Downloads/ecs-ssh-key.pem ec2-user@192.168.10.1:/home/ec2-user/performanceTest/500report.zip ~/Desktop/work/performance/
scp -i ~/Desktop/work/performance/ecs-ssh-key.pem ec2-user@192.168.10.1:/home/ec2-user/performanceTest/950report.zip ~/Desktop/work/performance/
命令:
删除文件:
rm -f 500report.zip --删除文件
rm -rf 500report.zip --删除文件夹
-r 向下递归,不管有多少级目录,一并删除
-f 直接强行删除,没有任何提示