jmeter进行接口性能测试,占用内存较大,在模拟千万计并发用户时,使用分布式部署进行分压测试。
操作步骤:选择一台机器作为调度机,其他机器作为执行机
一、jmeter分布式部署
前提条件:A、执行机和调度机之间可以互相ping通;B、执行机上要有jmeter且运行jmeter-server(Windows电脑是 jmeter-server.bat,linux/mac是 jmeter-server)
C、如果有参数化文件,其他的电脑上放一份,参数化文件放在jmeter的bin目录下就可以不用写绝对路径,只写文件名就ok了
1、执行机配置
A、jmeter的bin目录,找到Jmeter.properties文件,打开文件,修改server_port、server.rmi.localport 两个参数的端口,若注释则去掉#,默认端口号1099
B、启动执行机上的Jmeter-server.bat,配置完成
2、调度机配置
A、jmeter的bin目录,找到Jmeter.properties文件,查找:remote_hosts=127.0.0.1 将执行机的IP添加到remote_hosts=127.0.0.1 之后
此配置文件中localhost是本机,1099是jmeter分布式默认端口,10.165.124.57:1099是另一台部署了jmeter的机器,如果有多台执行机,这里需要把所有的执行机的IP地址和端口号都加入进来。中间用,分隔。
B、启动调度机上的Jmeter-server.bat,配置完成
3、调度机上打开jmeter.bat.选择菜单“运行”--->“远程启动”,选择任意一台执行机运行 ,也可以直接选择“远程全部启动”运行调度机和所有执行机
4、添加线程组、编辑线程数,添加查看结果树和聚合报告,查看执行结果.例如:设置100个线程数,循环2次,一台机器发送线程数*循环此时=100*2=200个请求,若设置2台电脑去跑,则总请求书为200*2=400个请求。
二、linux下分布式部署
1、执行机配置
A、jmeter的bin目录,找到Jmeter.properties文件,打开文件,修改server_port、server.rmi.localport 两个参数的端口
B、执行机上执行命令:./jmeter-server -Djava.rmi.server.hostname=XXX.XXX.XXX.XXX
2、调度机配置
A、jmeter的bin目录,找到Jmeter.properties文件,查找:remote_hosts=127.0.0.1 将执行机的IP添加到remote_hosts=127.0.0.1 之后
B、执行脚本输出结果 jmeter -n -t xx.jmx -R xxx.xxx.xxx.xxx:端口号,xxx.xxx.xxx.xxx:端口号 -l xxx.jtl -j xxx.log;例如:jmeter -n -t c://sdfsdf/sdfsdfs/baidu.jmx -l c://xx/Desktop/result.jtl
C、打开jmeter的聚合报告或者查看结果树;选择浏览 打开上面生成的jtl文件就ok
备注: -n表示run JMeter in nongui mode;
-t,-testfile表示要运行的jmeter测试脚本文件;
-R表示选择执行=远程启动;
-r表示启动所有执行机=远程全部启动;
-l,-logfile表示记录结果的文件;