一、jmeter在Windows环境下的分布式压测
分布式压测我理解的就是有一台主控机和几台压力机。主控机通过远程控制压力机启动测试,来实现系统不同级别访问量情况下的性能验证。操作步骤如下:
1、启动jmeter自动化工具,界面显示如下图所示
2、在“测试计划”单击鼠标右键,选择【添加】->【线程(用户)】->【线程组】,添加一个线程组
3、添加线程以后,设置线程组。
“线程组”可以类似于虚拟用户组,设置“线程数”为100,即我们要测试的是100个用户并发的情况;“Ramp-Up Period(in seconds)”的意思是达到最大线程所需要的时间(单位是秒)。
线程数:100
Ramp-Up Period(in seconds):10
理解为当线程数达到100时,所花费的时间是10秒
4、在“线程组”单击右键,选择【添加】->【取样器】->【HTTP请求】,为线程组添加HTTP请求
5、设置HTTP请求参数如下(例子模拟的是100用户同时打开搜狗导航网址):
协议:https
服务器名称或IP:baidu.com
端口号:无
方法:GET
路径:/
6、在“测试计划”单击右键,选择【添加】->【监听器】->【查看结果树】,添加结果树,用于查看测试结果
7、到这里,其实就是普通的压力测试了。分布式压测怎么做呢?有几点要求:一是有几台电脑与控制机在同一局域网内。也就是可以互相访问。二是压力机也要安装jmeter。
在主控机的jmeter的bin目录找到配置文件jmeter.properties。找到里面的remote_hosts部分,修改内容为:remote_hosts=xx,xx代表的是压力机的ip。如果是多个压力机,之间使用【,】分隔。
8、接下来就是启动压力机jmeter的bin目录下的jmeter-server.bat文件。
9、然后在主控机的jmeter里面。点击【运行】——【远程启动】可以看到所有的压力机,可以选择一台启动,也可以点击【运行】——【远程全部启动】。
10、运行结束以后,在查看结果树或是聚合报告中查看即可。
二、Linux下使用Jmeter进行分布式压力测试
1、安装配置jmeter:
上传至linux服务器: rz命令
解压tgz包
配置jmeter环境变量
查看是否安装成功:jmeter –v 或者 $jmeter_home/bin/jmeter.sh –v
使用3台linux测试机部署jmeter,定义好哪一台服务器作为控制机Master和负载机slave。
2、3台linux测试机需安装相同版本的jdk和jmeter
Agent节点配置:
①、然后打开配置文件 /bin/jmeter.properties 找到并取消这段配置的注释 server.rmi.ssl.disable=false ,false改成true。
②、输入命令:jmeter-server -Djava.rmi.server.hostname=ip ,启动 anget 节点。jmeter-server 后面的参数指定 agent 的 IP
3、控制机配置
①、开配置文件 /bin/jmeter.properties 配置 agent 节点的 IP
remote_hosts = ip:端口号,IP:端口号
②、运行命令: jmeter -n -t test.jmx -R ip,ip -l test.jtl 或jmeter -n -t test.jmx -r -l test.jtl
参数 n:非gui运行
t:指定测试脚本
R:指定多少个 agent 启动并参与测试
r: 代表全部 agent 启动并参与测试
l:生成测试结果文件
温馨提示:
A、若是脚本中设置的并发线程数是100,采用3台slaver机器去施加压力,那么对于服务端来说,此时的并发线程数是300。
B、为了减少出错的可能性,最好按照如下Jmeter 分布式要求:
1、各个机器在相同目录下安装相同版本的jdk;
2、各个机器在相同的目录下安装相同版本的jmeter;
3、配置/etc/hosts的IP和hostname的映射。
4、修改各个机器的jmeter的默认内存参数,从512m调整为合适大小。