1.控制机和负载机器的配置:
控制机和负载机器都是需要打开防火墙
控制机的IP地址设置100个,172.160.0.2~172.160.0.100 在加上172.160.0.211
负载机的IP地址设置100个,172.160.0.101~172.160.0.200 在加上172.160.0.211
控制机和负载机必须要在同网段的IP,并且网络可以连通
控制机配置:
打开jmeter.properties,搜索remote_hosts,加上远程负载机的IP:1099,重启jmeter才能生效
控制机要执行测试的话,需要打开jmeter-server.bat
批量删除控制的IP: for /L %%i in (101,1,200) do netsh interface ip delete address "以太网" 172.31.0.%%i
每个机器有100IP,而且不能冲突
账户和密码的文件必须分开,每份100个,不重复,分别复制到控制和负载机
负载机的配置:
安装JDK,实际安装jre足以支持测试,但是控制机一定要安装JDK
端口号必须要是1099,与控制机匹配
执行测试需要打开jmeter-server.bat
参数化文件,每个负载机必须要有一份,但是数据不同(,比如IP,用户名、密码),
最好都放在jmeter的bin路径下,使用相对路径
脚本中的参数文件位置要设置正确
每个负载机均衡负担设置的线程数:
比如200个线程,总共台机器,那么每个机器的现在为100
批量增加控制的IP: for /L %%i in (101,1,200) do netsh interface ip add address "以太网" 172.31.0.%%i 255.255.0.0
在以下这一行前 加 ram表示注释这一行
for /L %%i in (101,1,200) do netsh interface ip aa address "以太网" 172.31.0.%%i
删除一个IP:netsh interface ip delete address "以太网" 172.31.0.211
控制机和负载机配置完成后,需要重新再jmeter中修改脚本和参数文件的位置,确保没问题
多机联合负载运行测试
1.jmeter中的运行》远程启动中可以选择负载机的IP
2.或者 在运行》远程启动所有,就可以启动所有的机器,包括控制机和负载机
3.测试之前一定要打开所有机器的jmeter-server.bat
场景监控
线程组右键添加监听器》图形结果
线程组右键添加监听器》聚合报告
线程组右键添加监听器》用表格查看结果
监控硬件资源:
解压Severagent到被监控的计算机中
Windows服务器运行 startAgent.bat文件监控,必须先打开这个,才能监控资源
解压 ServerAgent-2.2.1.zip 到被监控计算机中
解压 ServerAgent-2.2.1.zip 到被监控计算机中
解压 ServerAgent-2.2.1.zip 到被监控计算机中
Linux 服务器运行startAgent.bat文件才可以监控
将JmeterPlugin.jar包复制到jmeter的安卓目录下\lib\ext下
重新启动jmeter
右键添加监听器》选择监听器jp@gc-PerfMon Metrics Collector
单机Add Row,添加服务器的ip,选择要监控的CPI,内存,硬盘,网络等资源
jp@gc-PerfMon Metrics Collector
Perf代表erforcemance,性能
Mon代表monitor,监控
Metrics 是指标
Collector 采集器
安装性能监控插件(jmeter-plugins)后报如下错误,由于jmeter版本过高3.3,jmeter3.1可以成功
取样器和聚合报告结果分析
取样器结果的参数解释:
Thread Name 线程组名称
Sample Start启动开始时间
Load time 加载时长
Connect time 连接时长
Latency等待时长
Size in bytes发送的数据总大小
Headers size in bytes 发送数据的头部部分大小
Body size in bytes 发送数据的正文部分大小
Sample Count发送统计
error count 错误统计
Response code 状态码
Response message响应信息
Response Headers响应的头部信息i
聚合报告
Label 请求的步骤
#sample 一共发送的请求数量
Average 平均响应时间,默认情况下是的那个request的平均响应时间
Median 中间值,有一半的服务器响应时间低于该值么人另一半高于该值
90%line 90%请求的响应时间
Min 服务器响应的最短时间
Max服务器响应的最长时间
Error%
测试出现的错误请求数量百分比
确认是否允许错误的发生或者错误率允许在多大的范围内
若出现错误就要看服务端的日志,配合开发查找定位原因
Throught 简称TPS,吞吐量
默认情况下每秒出路的请求数,也就是指服务器的处理能力,tps越大,说明服务器处理能力越好
吞吐量默认以request/second的来衡量,即每秒错少个请求
KB/sec 以KB/sec来衡量吞吐量
用表格查看结果分析
Sample# 每个请求的序号
Start Time 每个请求开始时间
Thread Name 每个线程的名称(代表一个虚拟用户)
Label Http 请求名称
Sample Time 每个请求所花时间,单位毫秒
Status 请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes 请求的字节数
Latency 等待时长
Connect time 连接时长
样本数目 也就是请求个数,成功的情况下等于你设定的并发数目乘以循环次数
最新样本 表示服务器响应最后一个请求的时间
平均 每个线程请求的平均时间
偏离 服务器响应时间变化、离散程度测量值的大小
非GUi运行测试
1.修正脚本和设置
安装性能监控插件(jmeter-plugins)后报如下错误,由于jmeter版本过高3.3,jmeter3.1可以成功
jmeter/bin/jmeter.log存放jmeter的日志
解决察看结果树中的汉字乱码问题
修改 jmeter-properties 文件sampleresult.default.encoding=utf-8
日志中显示参数和断言信息
修改 jmeter-properties 文件 log_level.jmeter=DEBUG
日志中的部分文本含义 .ResponseAssertion
断言 FileServer: Read
读文件
ü 运行负载测试时不显示
ü 在调试的时候可以调整日志级别来看输出,但是正常情况下要将日志的级别调
高(INFO),减少日志输出,以提高 jmeter 本身性能
设置资源图并保存位置_非GUI运行测试_导出测试结果
文件名手动写入图形保存的位置,不能点击浏览按钮
文件名一般保存为 jtl 格式
进入jmeter bin的路径,输入以下命令
jmeter -n -t jmx 脚本文件名 -r -l 结果文件名.jtl
jmeter -n -t case/Webtours.jmx -l case/result.jtl
把jtl文件生成报告
jmeter -g case/result.jtl -o case/test
“-r”指开启远程负载机
"-n" 指非GUI方式运行
“-t"指定运行的测试脚本地址与名称,可以使用相对路径
若使用“-r"必须要事先启动jmeter-server.bat
若不使用“-r"表示不适用负载机 jmeter -n -t jmx 脚本文件名 -l 结果文件名.jtl
远程机列表在jmeter.properties中指定remote_host
若要监控硬件资源,需要先打开Server-Agent中的startAgent.bat
Windows查看端口号:
netstat -ano|findstr "4444"
将 ServerAgent-2.2.1 放到要监控的服务器中待使用。
把jtl文件生成报告报错
jmeter -g case/result.jtl -o case/test
执行命令路径没错,最后百度找到原因是jmeter.properties文件配置中支持xml,
这里需要用的是csv格式就可以了,打开文件Ctrl+F“”'jmeter.save.saveservice.output_format“”如图所示
jmeter -g case/result.jtl -o case/test
生成的测试报告是一个test的文件夹,里面包含很多文件
如果需要移动,那么整个文件夹都需要一起copy,不能改动相对位置
执行脚本并生成报告
jmeter -n -t Login_All_Tab_Check.jmx -l 20200911_Login_All_Tab_Check_50_10min_01.jtl -e -o report/20200911_Login_All_Tab_Check_50_10min_01 -j 20200911_Login_All_Tab_Check_50_10min_01.log
使用批处理命令执行,制作run.bat 文件。直接双击运行即可
@echo off
at 17:30 start
md D:\test\jtl\
md D:\test\report
md D:\test\log\
jmeter -n -t Login_All_Tab_Check.jmx -l D:\test\jtl\20200911_Login_All_Tab_Check_50_10min_01.jtl -e -o D:\test\report\20200911_Login_All_Tab_Check_50_10min_01 -j D:\test\log\20200911_Login_All_Tab_Check_50_10min_01.log
pause
50解决导出结果汉字乱码问题 ·
需要替换ApacheJMeter_core.jar 包
硬件资源图
非 GUI 运行结束正常导出结果,不用导出 PerfMon Metrics Collector
运行结束后打开 PerfMon Metrics Collector 视图,“浏览”数据文件test.jtl(先前保存的文件),再将图存为图片