在非GUI模式下运行JMeter的三种方法

简介: 在非GUI模式下运行JMeter的三种方法

JMeter是目前比较广泛使用的性能测试工具。JMeter通过Java的多线程来模拟性能的多用户的功能。JMeter可以在GUI下运行也可以在非GUI下运行。由于在GUI下会占用一定的压测机资源,所以JMeter官方不支持在GUI下面运行,打开JMeter.bat,在命令行中会显示如下内容:


image.png


通过日常的工作,我总结除了,在非GUI模式下运行JMeter的三种方法。



1 最通用的方式


格式:

jmeter -n -t jmx文件名 -l jtl格式记录文件


比如:

jmeter -n -t  ebusiness.jmx -l logfile1.jtl

在这里有几个最基本的参数:

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


运行结果如下

D:\DOCUMENT\培训与演讲\培训\软件性能测试\JMeter Script\CLI>jmeter -n -t ebusiness.jmx -l  logfile1.jtl
Jun 07, 2021 5:38:23  PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not  open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002.  Windows RegCreateKeyEx(...) returned error code 5.
Creating summariser  <summary>
Created the tree  successfully using ebusiness.jmx
Starting the test @  Mon Jun 07 17:38:24 CST 2021 (1623058704060)
Waiting for possible  Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary +      1 in 00:00:03 =    0.3/s Avg:    17 Min:     17 Max:    17 Err:     0 (0.00%) Active: 2 Started: 2 Finished:  0
summary +   1792 in 00:00:29 =   61.2/s Avg:   300 Min:     2 Max:   7292 Err:    19 (1.06%) Active:  20 Started: 20 Finished: 0
summary =   1793 in 00:00:32 =   55.3/s Avg:   300 Min:     2 Max:   7292 Err:    19 (1.06%)
summary +   1877 in 00:00:30 =   62.6/s Avg:   322 Min:     2 Max:   6837 Err:    15 (0.80%) Active:  20 Started: 20 Finished: 0
summary =   3670 in 00:01:02 =   58.8/s Avg:   312 Min:     2 Max:   7292 Err:    34 (0.93%)
summary +   1663 in 00:00:30 =   55.2/s Avg:   373 Min:     3 Max:   6995 Err:    16 (0.96%) Active:  20 Started: 20 Finished: 0
summary =   5333 in 00:01:33 =   57.6/s Avg:   331  Min:     2 Max:  7292 Err:     50 (0.94%)


运行产生的logfile1.jtl以通过JMeterGUI界面加载到报告中。

image.png


2 通过Taurus运行


要通过Taurus运行,首先要配置好python环境。然后通过pip3 install bzt命令安装Taurus插件。

接下来配置blaze_exist_jmeter_config.yml文件

execution:
  - scenario: simple
scenarios:
   simple:
        script: ebusiness.jmx
modules:
    jmeter:
download-link:  https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-{version}.zip
        version: 5.2.1


最后运行bzt blaze_exist_jmeter_config.yml即可。


D:\DOCUMENT\培训与演讲\培训\软件性能测试\JMeter Script\Taurus>bzt  blaze_exist_jmeter_config.yml
17:54:16 INFO: Taurus  CLI Tool v1.14.2
17:54:16 INFO:  Starting with configs: ['blaze_exist_jmeter_config.yml']
17:54:16 INFO:  Configuring...
17:54:16 INFO:  Artifacts dir: D:\DOCUMENT\培训与演讲\培训\软件性能测试\JMeter Script\Taurus\2021-06-07_17-54-16.816972
17:54:16 INFO:  Preparing...
17:54:18 WARNING:  There is newer version of Taurus 1.15.3 available, consider upgrading. What's  new: http://gettaurus.org/docs/Changelog/
17:54:21 INFO: 3  obsolete CookieManagers are found and fixed
17:54:27 INFO:  Starting...
17:54:27 INFO:  Waiting for results...
17:54:27 INFO: Did  not mute console logging
17:54:28 INFO:  Waiting for finish...

image.png


3 通过Ant启动



1)  安装并且配置Apache Ant

2)  修改%JMETER_HOME%\bin\jmeter.properties


jmeter.save.saveservice.output_format=xml

 

配置build.xml

<!--需要改成自己本地的Jmeter目录-->
    <property  name="jmeter.home" value="C:\apache\apache-jmeter-5.1.1\"  />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property  name="jmeter.result.jtl.dir" value="C:\apache\apache-jmeter-5.1.1\demoant\report\"  />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property  name="jmeter.result.html.dir" value="C:\apache\apache-jmeter-5.1.1\demoant\report\"  />
    <!--生成的报告的前缀-->
    <property  name="ReportName" value="电子商务系统测试报告" />
    <property  name="jmeter.result.jtlName"  value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property  name="jmeter.result.htmlName"  value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
    <!--电脑地址-->
    <property  name="ComputerName" value="JerryGu" />
    <target  name="all">
        <antcall  target="ebusiness" />
        <antcall target="report"  />
    </target>
    <target  name="ebusiness">
        <taskdef  name="jmeter"  classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"  />
        <jmeter  jmeterhome="${jmeter.home}"  resultlog="${jmeter.result.jtlName}">
            <!--声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
            <testplans  dir=" D:\DOCUMENT\培训与演讲\培训\软件性能测试\JMeter  Script\Ant\" includes="*.jmx" />
        </jmeter>
    </target>
            <!--定义生成报告日期-->
    <path  id="xslt.classpath">
        <fileset  dir="${jmeter.home}/lib" includes="xalan*.jar"/>
        <fileset  dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    </path>
    <target  name="report">
        <tstamp>  <format property="report.datestamp" pattern="yyyy/MM/dd  HH:mm" /></tstamp>
        <xslt
               classpathref="xslt.classpath"
               force="true"
               in="${jmeter.result.jtlName}"
               out="${jmeter.result.htmlName}"
               style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
              <param  name="dateReport" expression="${report.datestamp}"/>
         </xslt>
        <!--因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝-->
        <copy  todir="${jmeter.result.html.dir}">
            <fileset  dir="${jmeter.home}/extras">
                <include  name="collapse.png" />
                <include  name="expand.png" />
            </fileset>
        </copy>
    </target>
</project>


其中

  • C:\apache\apache-jmeter-5.1.1\”为%JMETER_HOME%
  • D:\DOCUMENT\培训与演讲\培训\软件性能测试\JMeterScript\Ant\”为jmx文件所在位置


  • “电子商务系统测试报告”为报告的头文件。


运行Ant

D:\DOCUMENT\培训与演讲\培训\软件性能测试\JMeter Script\Ant>ant
Buildfile:  D:\DOCUMENT\培训与演讲\培训\软件性能测试\JMeter  Script\Ant\build.xml
all:
ebusiness:
   [jmeter] Executing test plan: D:\DOCUMENT\培训与演讲\培训\软件性能测试\JMeter Script\Ant\ebusiness.jmx  ==> C:\apache\apache-jmeter-5.1.1\demoant\report\电子商务系统测试报告202106070611.jtl
   [jmeter] 六月 07, 2021 6:11:24 下午  java.util.prefs.WindowsPreferences <init>
   [jmeter] 警告: Could not open/create prefs  root node Software\JavaSoft\Prefs at root 0x80000002. Windows  RegCreateKeyEx(...) returned error code 5.
   [jmeter] Creating summariser  <summary>
   [jmeter] Created the tree successfully  using D:\DOCUMENT\培训与演讲\培训\软件性能测试\JMeter Script\Ant\ebusiness.jmx
   [jmeter] Starting the test @ Mon Jun 07  18:11:25 CST 2021 (1623060685033)
   [jmeter] Waiting for possible  Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
   [jmeter] summary +      1 in 00:00:03 =    0.3/s Avg:    23 Min:     23 Max:    23 Err:     0 (0.00%) Active: 2 Started: 2 Finished:  0
   [jmeter] summary +   1660 in 00:00:28 =   58.4/s Avg:   330 Min:     3 Max:   5740 Err:     0 (0.00%) Active:  20 Started: 20 Finished: 0
   [jmeter] summary =   1661 in 00:00:32 =   52.5/s Avg:   330 Min:     3 Max:   5740 Err:     0 (0.00%)
   [jmeter] summary +   1714 in 00:00:30 =   57.1/s Avg:   343 Min:     3 Max:   6958 Err:     3 (0.18%) Active:  20 Started: 20 Finished: 0
   [jmeter] summary =   3375 in 00:01:02 =   54.7/s Avg:   336 Min:     3 Max:   6958 Err:     3 (0.09%)
   [jmeter] summary +   1792 in 00:00:30 =   59.7/s Avg:   340 Min:     3 Max:   6744 Err:     2 (0.11%) Active:  20 Started: 20 Finished: 0
   [jmeter] summary =   5167 in 00:01:32 =   56.4/s Avg:   338 Min:     3 Max:   6958 Err:     5 (0.10%)
   [jmeter] summary +   1842 in 00:00:30 =   61.4/s Avg:   312 Min:     2 Max:   6929 Err:    10 (0.54%) Active:  20 Started: 20 Finished: 0
   [jmeter] summary =   7009 in 00:02:02 =   57.6/s Avg:   331 Min:     2 Max:   6958 Err:    15 (0.21%)


测试产生的报告,根据build配置产生在C:\apache\apache-jmeter-5.1.1\demoant\report中。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
Java Shell Linux
Jmeter运行java程序的一个方法
Jmeter运行java程序的一个方法
Jmeter运行java程序的一个方法
|
存储 XML Java
JMeter JMeter自身运行性能优化
JMeter JMeter自身运行性能优化
232 0
|
存储 JSON 数据格式
Jmeter系列(45)- 详解 Jmeter 跨线程组取参数值的方法,免代码!
Jmeter系列(45)- 详解 Jmeter 跨线程组取参数值的方法,免代码!
327 0
Jmeter系列(45)- 详解 Jmeter 跨线程组取参数值的方法,免代码!
|
监控 Java Linux
linux环境运行jmeter脚本并生成测试报告
jmeter是一个java开发的利用多线程原理来模拟并发进行性能测试的工具,一般来说,GUI模式只用于创建脚本以及用来debug,执行测试时建议使用非GUI模式运行。
linux环境运行jmeter脚本并生成测试报告
|
数据可视化 测试技术
JMeter笔记15 | JMeter场景运行
JMeter笔记15 | JMeter场景运行
131 0
JMeter笔记15 | JMeter场景运行
|
JSON 数据格式
JMeter笔记13 | JMeter元件运行顺序
JMeter笔记13 | JMeter元件运行顺序
94 0
JMeter笔记13 | JMeter元件运行顺序
|
BI 测试技术 Windows
Jmeter系列(54)- 详解 Runtime Controller 运行周期控制器
Jmeter系列(54)- 详解 Runtime Controller 运行周期控制器
481 0
Jmeter系列(54)- 详解 Runtime Controller 运行周期控制器
|
Java BI 测试技术
Jmeter系列(40)- 详解 Jmeter CLI 模式
Jmeter系列(40)- 详解 Jmeter CLI 模式
257 0
Jmeter系列(40)- 详解 Jmeter CLI 模式
|
Linux 测试技术
Jmeter系列(33)- 跨平台运行 Jmeter,CSV 文件路径如何设置?
Jmeter系列(33)- 跨平台运行 Jmeter,CSV 文件路径如何设置?
158 0
Jmeter系列(33)- 跨平台运行 Jmeter,CSV 文件路径如何设置?