Jmeter在linux下命令行运行实例讲解

您所在的位置:网站首页 jmeter命令行参数 Jmeter在linux下命令行运行实例讲解

Jmeter在linux下命令行运行实例讲解

2024-07-11 20:30| 来源: 网络整理| 查看: 265

1. 简介

使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资

本文介绍windows下以命令行模式运行的方法。

 

 

1.1. 命令介绍 jmeter -n -t -l 示例: jmeter -n -t testplan.jmx -l test.jtl 示例含义:则表示以命令行模式运行testplan.jmx文件,输出的日志文件为test.jtl 在后台不挂断执行,并把文件输出到指定文件  nohup sh jmeter.sh -n -t /workspace/ptest/script/0608.jmx >o6o8openapi.out &  1.2. 参数介绍

这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令,Jmeter官网用户手册介绍如下:

-h, –help -> prints usage information and exit -n, –nongui -> run JMeter in nongui mode -t, –testfile -> the jmeter test(.jmx) file to run -l, –logfile -> the file to log samples to -r, –runremote -> Start remote servers (as defined in remote_hosts) -H, –proxyHost -> Set a proxy server for JMeter to use -P, –proxyPort -> Set proxy server port for JMeter to use

具体的含义如下:

-h 帮助 -> 打印出有用的信息并退出 -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter -t 测试文件 -> 要运行的 JMeter 测试脚本文件 -l 日志文件 -> 记录结果的文件 -r 远程执行 -> 在Jmter.properties文件中指定的所有远程服务器 -H 代理主机 -> 设置 JMeter 使用的代理主机 -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

例如:jmeter -n -t test1.jmx -l logfile1.jtl -H 192.168.1.1 -P 8080

2. 实例介绍 2.1. 脚本运行

JMeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录。比如你在 C:\tools\apache-jmeter-2.11\bin 目录下执行以上命令,JMeter 会去该目录下寻找 test.jmx 脚本并把执行结果放在该目录。

如果你的脚本在其他目录,而且想要把执行结果放在另外文件夹,需要使用绝对路径告诉 JMeter,如下:

上述测试结果展示为:执行3条用例,错误率为33.33%,说明有1条用例执行错误。

2.2. 报告查看

上述的命令有要求测试结果保存到c:\logfile1.jtl中,如果需要可以在GUI模式下查看测试报告。

1、打开Jmeter GUI界面

2、在测试计划下,添加对应的测试报告元件,此处演示,增加了:聚合报告、查看结果树、Summary Report测试报告

3、在所有数据写入一个文件,浏览中选择对应的日志文件

4、下面就会有对应的表格展示,具体见下图

 

 

 

 

 

 

 

 

 

 

其他总结:

之前在用JMeter做性能测试时基本都用自己的笔记本电脑。

考虑到网络传输和占用系统资源情况时进行了以下分析:

1 在笔记本上,开始-cmd "ping 服务器",得到传输时间。在某linux机器上"ping 服务器"得到传输时间,两个时间相差无几,认为不会影响测试结果

2 一般我用来测试的linux测试机和笔记本电脑,都是4核 8G。

可是!今天公司网络很不好!严重影响了我的测试。忍无可忍,干脆在linux上测试算啦。

只需一行命令:sh jmeter.sh -n -t http.jmx -l result_*.jtl

步骤:

一 安装jmeter

1 把你笔记本的jmeter添加到压缩包 jmeter.zip

2 上传jmeter.zip到linux服务器:我用rz方式上传到了/opt/soft

3 解压,进入路径/opt/soft/jmeter/bin

4 查看jmeter.sh是否能够执行,若不能未其添加执行权限,我直接  chmod 777 jmeter.sh,可用  sh jmeter.sh -v 来检测命令是否可用。

二 编写测试计划

1 在GUI模式下,新建一个测试计划,保存并上传到linux机器对应目录(上传文件到服务器可以使用rz命令),可在测试计划里添加对应的定时器,聚合报告等。

2 在linux目录下找到你的测试计划,vim打开进行编辑

200 线程数 100 固定定时器的时间间隔 添加过的元器件其对应参数都可以在里面找到,进行参数调整时只要在这里编辑就ok了。

三 结果文件

结果文件即之前保存过的result.jtl格式文件

该文件可以使用 GUI 模式下的聚合报告查看,可以打开 JMeter GUI 界面 -> 测试计划 -> 添加线程组 -> 添加聚合报告 -> 点击 "浏览..." 按钮找到你刚生成的 jtl 文件打开即可统计结果进行分析。

四 这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令:

-h 帮助 -> 打印出有用的信息并退出 -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter -t 测试文件 -> 要运行的 JMeter 测试脚本文件,指定生成测试结果的保存文件,jtl文件格式 -l 日志文件 -> 记录结果的文件 -r 远程执行 -> 启动远程服务 -H 代理主机 -> 设置 JMeter 使用的代理主机 -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

        例如:jmeter -n -t test1.jmx -l logfile1.jtl -H 192.168.1.1 -P 8080

      shay 自己实践中常用的命令示例:

                        deploy@VECS08352:/workspace/ptest/jmeter/bin$ sh jmeter.sh -n -t /workspace/ptest/script/soaFuse.jmx 

     补充: -e: 测试结束后,生成测试报告

               -o: 指定测试报告的存放位置

 

     示例:想要在linux 执行一个测试脚本并把结果打印到报告中:原文:https://www.cnblogs.com/Zfc-Cjk/p/8286874.html

jmeter -n -t D:\gongju\apache-jmeter-3.2\bin\lsmsp.jmx -l result.jtl -e -o D:\gongju\apache-jmeter-3.2\bin\HttpReport

 

 

 

          

 

 

五 问题

1)Error in NonGUIDriver java.lang.NullPointerException 产生该错误的原因,目前有两种情况: 情况1,低版本的JMeter运行高版本的测试计划(测试计划是在高版本的JMeter上编制的)。解决方法:使用相同或更高版本JMeter运行该计划。 情况2,使用第三方插件生成的测试计划,运行在没有该第三方插件的JMeter上。解决方法:在JMeter上安装插件或重新生成不包含插件的测试计划。 2)写了一个scf压测jar包,因为网络通信的关系,放到同台服务器上运行。 运行没多久看到一个进程cpu飙到了600%(8核),load到了50多。服务端已经不怎么能处理了。以为服务不行了 仔细看了下,cpu 600多的进程是我的jmeter执行命令,因为我没在jmeter端进行限制,所以发请求发疯了。后来加了定时器,限制其每秒发的请求数,服务可正常运行了。  


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3