Jmeter-Linux环境进行测试
使用Jmeter在Linux环境进行测试。
一、配置JDK环境
-
下载jdk1.8.0_171.tar.gz 装包,上传至服务器中。
-
可通过rz命令将Windows本地文件上传。在/usr/local目录下创建java文件夹,再将 jdk1.8.0_171目录上传到/usr/local/java中。
(1) cd /usr/local
(2) mkdir java
(3) 输入“rz”按回车,选择本地文件。 -
解压:tar -xzf jdk1.8.0_171.tar.gz,生成文件夹 jdk1.8.0_171。
-
配置jdk环境变量。
(1) vi /etc/profile
(2) 在最后面增加两行export JAVA_HOME=/usr/local/java/jdk1.8.0_171 export PATH=$JAVA_HOME/bin:$PATH
(3) 执行命令:source /etc/profile,无需重启配置的环境变量立马生效,或者执行以下命令(必须是root角色,普通角色没有权限)
# export JAVA_HOME=/usr/local/java/jdk1.8.0_144 # export PATH=$JAVA_HOME/bin:$PATH
-
查看是否安装成功,执行命令:java-version
二、安装Jmeter
-
将本地jmeter压缩包,使用Git进行压缩成.tar.gz格式,
(1)在本地jmeter目录下,使用命令:tar -zcvf 压缩包名字.tar.gz 被压缩文件名字。 如:tar -zcvf apache-jmeter-3.1.tar.gz apache-jmeter-3.1。
-
将生成的压缩包apache-jmeter-3.1.tar.gz通过rz指令上传到Linux系统中。
(1)cd /usr/local
(2)rz 选择 apache-jmeter-3.1.tar.gz -
解压缩包:tar -zxvf 压缩文件名.tar.gz,解压到apache-jmeter-3.1目录下
tar -zxvf apache-jmeter-3.1.tar.gz
-
配置Jmeter环境变量。
(1)vi /etc/profile,再添加如下变量
export JMETER_HOME=/usr/local/apache-jmeter-3.1 export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH export PATH=$JMETER_HOME/bin:$PATH
-
source /etc/profile (让配置文件立马生效)
-
查看是否安装成功,执行命令:jmeter -v
三 、接口测试
-
将本地生成的jmx文件上传到服务器。
-
输入命令:# jmeter -n -t /home/mx/Test.jmx -l log.jtl,查看结果。
参数说明:
-n:以NoGUI方式运行脚本
-t:后面接脚本名称
-l:后面接日志名称,保存运行结果
-
在该文件夹下会生成两个文件:jmeter.log、log.jtl
(1)可以将log.jtl发送到windows下查看:添加聚合报告,在聚合报告中打开该文件。
(2)使用指令:sz 文件路径\文件名,将服务器上文件下载到本地。
(3)使用聚合报告查看log.jtl
注:使用该方式查看测试数据只精确到ms,如果是0.25ms,则结果现实的为0。
四 、生成测试报告
1.命令行模式将jtl转成测试图表
注意此方法只使用jmeter3.0以后版本。
在jmeter的bin目录下执行以下指令:
jmeter -n -t VHSM_XC.jmx -l result.jtl -e -o /home/xdja/mxx/Jmeter/resultReport
参数说明:
-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错
开始之后控制台开始打印数据:
运行完成后,可以在指定的目录下看到生成结果文件夹resultReport:
2.下载测试报告到本地
将resultReport文件夹下载到本地windows机器,用浏览器打开index.html文件就能看到报告内容了。
sz 命令
使用xshell从服务器上下载文件,使用命令:
sz [文件名]
sz只能下载文件,需要对resultReport文件夹进行zip压缩。
在使用zip跟unzip命令之前先查看系统有没有安装这两个命令的包,没有的话要自己安装。
// 查看是否安装zip、uzip
rpm -q zip unzip
如果有安装了命令则会显示出命令的版本号。
zip命令
基本用法:
zip [参数] [压缩包名] [压缩的目录或者文件的路径]
常用参数:
zip | 命令的常用参数 |
---|---|
-m | 将文件压缩后,删除原文件 |
-o | 将压缩文件内的所有文件的最新变动时间设为压缩的时间 |
-q | 安静模式,在压缩的时候不显示指令执行的过程 |
-r | 递归压缩,将自定目录下的所有子文件以及文件一起处理 |
-x | ”文件列表“,压缩时排除文件列表中的文件 |
例:
zip -r resultReport.zip resultReport
3.查看报告
将zip压缩包使用sz命令下载到本地。
打开index.xml文件,在浏览器中查看:
解释:
项目 | Value |
---|---|
file | 文件名 |
start time | 开始时间 |
end time | 结束时间 |
filter for display | 过滤器 |
APDEX(Application performance Index) | $应用程序性能指标,计算每笔交易APDEX的容忍和满足阈值基于可配置的值,范围在 0-1 之间,1表示达到所有用户均满意 |
T(Toleration threshold) | 容忍或满意阈值 |
F(Frustration threshold) | 失败阈值 |
requests summary | 中KO指失败率,OK指成功率 |
首页页面往下拉:
解释:
statistics :数据分析, 基本将 Summary Report 和 Aggrerate Report 的结果合并,含义分别为:
请求名称、请求数目、失败请求数目、错误率(本次测试中出现错误的请求的数量/请求的总数)、90%用户响应时间、95%用户响应时间、99%用户响应时间、吞吐量(吞吐量——默认情况下表示每秒完成的请求数Request per Second,当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数)、Kb/sec(每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec)、最小响应时间、最大响应时间
errors错误情况,依据不同的错误类型,将所有错误结果展示
Chart-Over Time-Response Times Over Time:随着时间推移响应时间变化趋势图
Chart-Over Time-Bytes Throughput Over Time:随着时间推移每秒接收和请求字节数变化趋势图,蓝色为每秒发送字节数,黄色为每秒接收字节数:
Chart-Over Time-Latencies Over Time:随着时间推移平均响应延时趋势图,记录客户端发送请求完成后,服务器端返回请求之前这段时间
以上就是over time栏的所有图表,除了over time还有throuput和response times栏。
Throughput栏包括:
Throughput栏 | 解释 |
---|---|
hits per second | 每秒点击率 |
codes per second | 每秒状态码数量 |
Transactions per second | 每秒事务量 |
Response Time Vs Request: | 响应时间点请求的 成功/失败 数 |
Latency Vs Request: | 延迟时间点请求的 成功/失败 数 |
Response Times栏:
Response Times栏 | 解释 |
---|---|
Response Time Percentiles | 响应时间百分比 |
Active Threads Over Time | 随着时间推移活跃线程数 |
Time Vs Threads | 测试过程中的线程数时续图 |
Response Time Distribution | 响应时间分布 |