JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。
今天通过一个我工作中的实际案例给大家分享下怎么使用 Jmeter 工具做 TCP 协议的性能测试并生成生成图形报告。
环境安装
在安装Jmeter之前,请先检查下电脑有没有装JDK:开始->运行->然后输入cmd->进入命令行界面,输入 java -version , 出现以下信息就是此电脑已安装了 JDK。
下载完成后,解压、打开 bin/jmeter.bat 就可以在 windows 下运行其图形界面。
Jmeter是一款纯java的性能测试工具,跨平台运行方便、提供图形化界面设置、简单易用。
配置 Jmeter 环境变量
(1)我的电脑>鼠标右键菜单>属性>高级系统设置>环境变量;
( 2 ) 在系统变量中添加 2 个属性
Python
① JMETER_HOME=C:\apache-jmeter\apache-jmeter-4.0 (就是jmeter保存的路径)
② CLASSPATH=%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar; %JMETER_HOME%\lib\jorphan.jar; (这个复制上去就ok)
1
2
3
①JMETER_HOME=C:\apache-jmeter\apache-jmeter-4.0(就是jmeter保存的路径)
②CLASSPATH=%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;(这个复制上去就ok)
( 3 ) 在用系统变量path后面加上 %JMETER_HOME%\bin 注意是系统变量
最后在cmd输入 jmeter 可以直接启动 Jmeter说明环境变量设置成功。
Jmeter项目配置
在 file 中新建 Test Plan,填入 Plan 的名称。
在 plan 下右键新建一个线程,写入你需要执行的线程数、线程执行时间、循环次数、调度器配置(在特定时间执行)。
在线程下右键,添加–sampler–TCP取样器,下图中红框中为必填项。
TCPClient classname 有三种设置:
TCPClientImpl:文本数据
BinaryTCPClientImpl:传输二进制数据,指定包结束符。
LengthPrefixedBinaryTCPClientImpl:数据包中前2个字节为数据长度。可在bin/jmeter.properties配置文件中 tcp.binarylength.prefix.length 设置。
服务器 ip 和端口:应该不用多说了,根据实际情况填写即可;
要发送的文本:这里就是 16 进制的数据了,可能会有朋友问这数据从哪里获取啊!当然是抓包获取了,也可以直接查日志找到的。
在线程下右键,添加–监听器,添加图形结果、聚合报告、查看结果树等,这些是为了执行脚本后查看结果了,下图是我执行后的数据。
生成 HTML 格式的性能测试报告
首先我再电脑桌面上新建了文件夹tcp,tcp 里新建 ResultReport 文件夹
Jmeter 执行测试后在 cmd 中执行命令
Python
jmeter -n -t C:\apache-jmeter\apache-jmeter-4.0\bin\签到.jmx -l C:\Users\guixianyang\Desktop\tcp\result.csv -e -o C:\Users\guixianyang\Desktop\tcp\ResultReport
1
jmeter-n-tC:\apache-jmeter\apache-jmeter-4.0\bin\签到.jmx-lC:\Users\guixianyang\Desktop\tcp\result.csv-e-oC:\Users\guixianyang\Desktop\tcp\ResultReport
三个路径依次是:xxx.jmx文件路径,输出xxx.csv文件路径,要保存的ResultReport的文件路径。xxx.csv文件目录和ResultReport的文件目录必须为空,不然会报错。
这样就可以看到 HTML 报告了,发性能报告邮件也不愁没图了。