Jmeter高阶用法(一、分布式、非GUI模式)

1.分布式
1)分布式的概念
由多台电脑共同完成一个任务的部署称为分布式。
为什么使用分布式:
(1)一台电脑的CPU和内存有限,无法满足更高的测试需求
(2)需要对服务器进行压力测试

2)分布式的原理

3)解决方案分析

4)技术难点分析

5)执行机配置
(1)安装Jmeter
(2)在cmd窗口中运行ipconfig,查看本机IP地址
(3)打开jmeter/bin/jmeter.properties,找到“remote_host=127.0.0.1”,修改为“remote_host=本机ip:1099”,1099是端口号。修改完成后保存文件。
(4)执行机关闭防火墙
(5)禁用其它网卡(包括虚拟机的网卡),保证本机只用只有一个ip可用
(6)运行jmeter-server.bat文件,等待控制机启动

6)控制机配置
(1)将执行机的ip写入jmeter/bin/jmeter.properties文件中,如果有多个执行机,它们的ip用“,”隔开。如果控制机也要执行测试脚本,也需要添加控制机的ip。修改完成后保存文件,并重启jmeter。

(2)运行jmeter-server.bat文件,如果控制机不执行脚本,就不用打开
(3)执行机关闭防火墙
(4)禁用其它网卡(虚拟机的网卡),保证本机只用只有一个ip可用

7)执行脚本
(1)配置线程数
(2)运行->远程启动:可选择一个执行机运行,也可以选择全部启动

(3)执行机中显示任务开始和任务结束

(4)在聚合报告中查看结果

8)注意事项:
(1)执行机中也需要放置jmeter脚本,并且放置路径要和控制机一致。
(2)如果测试数据用到CSV或其他方式进行参数化,要将数据文件复制到每台执行机中,而且放置路径要和控制机一致。
(3)控制机和执行机必须在同一个子网中。
(4)控制机和执行机的JDK、jmeter以及插件等版本一致
(5)检查防火墙是否关闭,端口是否被占用
(6)禁用其它网卡(包括虚拟机的网卡),保证本机只用只有一个ip可用
(7)远程启动模式,默认查看结果树中的响应数据为空,只有错误信息会被报回
(8)如果并发较高,建议控制机只启动测试脚本和 收集汇总测试结果,在配置文件中去掉控制机的IP
(9)分布式测试中,如果1s启动100个模拟请求,有5个执行机,那么需要将脚本的线程数设置为20(205=100)。如果设置成100,模拟请求数会变为500(1005=500)
(10)控制机或执行机jmeter-server启动报错问题,修改jmeter/bin/jmeter.properties文件中server.rmi.ssl.disable=true

2.非GUI模式运行
使用非GUI模式可以节省CPU和内存资源,命令行方式支持windows和linux环境。
1)执行路径:
执行命令需要在JMeterin目录下。如果Jmeter脚本不在当前目录,需要使用绝对路径;如果要把执行结果保存在其它目录,也要使用绝对路径。命令中不指定测试计划和测试结果路径时,默认保存在当前目录下。

2)命令:
jmeter -n -t -l
-h 帮助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-r 分布式执行 -> 在Jmter.properties文件中指定的所有执行机
-R 指定IP的分布式执行 -> 在命令行中指定ip,忽略Jmter.properties文件中指定的执行机
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
-e 生成测试报告
-o 指定测试报告路径 -> 需要路径不存在或为空
-g 指定测试结果文件路径 -> 仅用于生成测试报表,参数:csv结果文件

3)实操:
(1)将脚本文件复制到bin目录下

(2)在地址栏输出cmd并回车,在当前目录下打开cmd窗口


(3)输入jmeter命令,并回车
命令:jmeter -n -t 001test.jmx -l 001result.jtl -e -o 001tableresult

(4)执行结束

(5)查看生成的文件

(6)生成的jtl结果文件,可以在各种监视器中打开,查看执行结果


(7)查看测试报告,测试报告的内容非常丰富

原文地址:https://www.cnblogs.com/bdzxh/p/14043070.html