
使用分布式压测,是因为单个压测机并发到不到系统要求,所以多个压测机同时去压。
一般是由一个主机(master)和几台压力机(slave)组成。
主机 主要是起到启动和收集结果功能(当然也可以参与压测但不建议),测试脚本jmx在这台机器下,执行的时候会发送给每台压力机。
压力机 主要接受主机发送的压测脚本,同时进行压测,并把结果回传给主机。
以下是本人的压测环境,可以参考的去配置:
都是在Linux环境下(有些是主机Windows,压力机Linux,都是这样配置)
master主机:10.244.162.8
slave压测机(三台):10.244.162.9,10.244.162.10,10.244.162.11
主机ping一下压测机,是否可以ping通,否则关闭防火墙或者多个网卡(一台机器可能配置多个网卡多个IP,尤其是Windows当做主机)。
jdk,jmeter安装在主机和压力机下,尽量版本统一,jmeter在这几个机器服务都可以启动jmeter -v,如果权限不够到bin/目录下,命令: chmod 777 jmeter jmeter-server jmeter.sh 。(安装比较简单,这里就不多赘述)
保存。
在apache-jmeter-5.1.1/bin下执行./jmeter-server(代表jmeter启动,监听状态,等待主机发送测试脚本和执行命令) ,
有些启动命令:./jmeter-server -Djava.rmi.server.hostname=10.244.162.10(当前机器的ip),我觉得都行,没编辑配置文件那一项这样启动。
启动就设置完成。
如果是Windows当主机,重启一下jmeter在运行-远程启动既可以看到压测机。
如果是Linux下主机,需要用到命令:
我是在测试jmx脚本的目录下执行,这样方便收集信息。
sh (jmeter启动) -n -t (jmx脚本) -R (压力机ip,多个中间用英文逗号隔开) -l (test.jtl) -e -o (压测报告结果html文件夹)
sh /app/apache-jmeter-5.2.1/bin/jmeter.sh -n -t test.jmx -R 10.244.162.9,10.244.162.10 -l test.jtl -e -o test
注意:主机只传jmx给压力机,如果压测脚本有引用变量文件,比如csv,txt文件等是不传的,压力机也要有这些变量文件,复制过去存放的目录和上面压力机./jmeter-server启动的目录一致(就是你在哪个目录启动的就放在哪个目录下),否则压力机找不到变量文件,执行会报错或者直接结束无测试结果。
方法/步骤 1 打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具。 2 在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序。注意直接双击无法正确运行。 3 执行ab命令成功后,可以看到如图提示。该帮助很清楚详细的介绍了ab的用法以及各个参数的含义。 ab 的用法是:ab [options] [http://]hostname[:port]/path 例如:ab -n 5000 -c 200 http://localhost/index.php 上例表示总共访问http://localhost/index.php这个脚本5000次,200并发同时执行。 ab常用参数的介绍: -n :总共的请求执行数,缺省是1; -c: 并发数,缺省是1; -t:测试所进行的总时间,秒为单位,缺省50000s -p:POST时的数据文件 -w: 以HTML表的格式输出结果 4 执行测试用例:ab -n 1000 -c 100 -w http://localhost/index.php >>c:\1.html 上面的测试用例表示100并发的情况下,共测试访问index.php脚本1000次,并将测试结果保存到c:\1.html文件中。 5 测试报告如图,可知在该100并发访问的情况下,共测试访问1000次,失败了852次。可知该脚本在此环境无法满足100并发访问的要求。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)