前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过案例带你轻松玩转JMeter连载(50)

通过案例带你轻松玩转JMeter连载(50)

作者头像
顾翔
发布2022-02-10 15:54:43
3280
发布2022-02-10 15:54:43
举报

JMeter的运行 JMeter可以在GUI下运行也可以在非GUI下运行。由于在GUI下会占用一定的压测机器的资源,所以JMeter官方不支持在GUI下面运行,打开JMeter.bat,在命令行中会显示如图1内容。

图1 JMeter启动界面

代码语言:javascript
复制
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
 Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
 Check : https://jmeter.apache.org/usermanual/best-practices.html

在非GUI模式下,运行JMeter通常有以下三种方法,分别是“通过JMeter自带工具运行”“通过Apache Ant运行”和“通过Taurus运行”,下面一一来进行介绍。

1通过JMeter自带工具运行 通过JMeter自带工具运行即图1,所建议的方法,其格式如下。

代码语言:javascript
复制
jmeter -n -t jmx文件名 -l jtl格式记录文件

比如:

代码语言:javascript
复制
jmeter -n -t ebusiness.jmx -l logfile1.jtl

这个命令中最基本的参数介绍如下。

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

运行结果如下。

代码语言:javascript
复制
D:…\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可以通过JMeter的GUI界面加载到报告中。

2通过Apache Ant运行 Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。由于JMeter是一个由Java开发的软件,因此给Apache Ant的运行提供了可能。下面为配置Apache Ant运行JMeter的方法。

1)安装并且配置Apache Ant 2)修改%JMETER_HOME%\bin\jmeter.properties

代码语言:javascript
复制
jmeter.save.saveservice.output_format=xml

配置build.xml

代码语言:javascript
复制
    <?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">

    <tstamp>

        <format property="time" pattern="yyyyMMddhhmm" />

    </tstamp>

    <!-- 需要改成自己本地的 Jmeter 目录--> 

    <property name="jmeter.home" value="C:\apache\apache-jmeter-5.4.1" />

    <!-- jmeter生成jtl格式的结果报告的路径-->

    <property name="jmeter.result.jtl.dir" 
value="C:\apache\apache-jmeter-5.4.1\bin\test\report\jtl" />

    <!-- jmeter生成html格式的结果报告的路径-->

    <property name="jmeter.result.html.dir" 
value="C:\apache\apache-jmeter-5.4.1\bin\test\report\html" />

    <!-- 生成的报告的前缀--> 

    <property name="ReportName" value="TestReport" />

    <property name="jmeter.result.jtlName" 
value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />

    <property name="jmeter.result.htmlName" 
value="${jmeter.result.html.dir}/${ReportName}.html" />

    

    <target name="run">

        <antcall target="test" />

        <antcall target="report" />

    </target>

    

    <target name="test">

        <taskdef name="jmeter" 
classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />

        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">

             <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->

            <testplans dir="C:\apache\apache-jmeter-5.4.1\scripts" includes="*.jmx" 
/>

 

             <property name="jmeter.save.saveservice.output_format" value="xml"/>

        </jmeter>

    </target>

    

     <path >

        <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               

              classpat 

              force="true"

              

              in="${jmeter.result.jtlName}"

              out="${jmeter.result.htmlName}"

              style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />  

        

        <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->

        <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.4.1\”为JMETER 的安装目录,即%JMETER_HOME%。 “C:\apache\apache-jmeter-5.4.1\scripts”为jmx文件所在位置 运行Ant

代码语言:javascript
复制
C:\apache\apache-jmeter-5.4.1\scripts>ant
Buildfile: C:\apache\apache-jmeter-5.4.1\scripts\build.xml



run:



test:

   [jmeter] Executing test plan: C:\apache\apache-jmeter-5.4.1\scripts\login.jmx ==> 
C:\apache\apache-jmeter-5.4.1\bin\test\report\jtl\TestReport202108190413.jtl

   [jmeter] 八月 19, 2021 4:13:42 下午 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 
C:\apache\apache-jmeter-5.4.1\scripts\login.jmx

   [jmeter] Starting standalone test @ Thu Aug 19 16:13:53 CST 2021 (1629360833026)

   [jmeter] Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message 
on port 4447

   [jmeter] summary +    152 in 00:00:06 =   27.4/s Avg:    31 Min:    11 Max:   255 
Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0

   [jmeter] summary +   1215 in 00:00:30 =   40.6/s Avg:    23 Min:    10 Max:   347 
Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0

   [jmeter] summary =   1367 in 00:00:35 =   38.6/s Avg:    24 Min:    10 Max:   347 
Err:     0 (0.00%)

   [jmeter] summary +   1203 in 00:00:25 =   48.7/s Avg:    20 Min:     9 Max:    62 
Err:     0 (0.00%) Active: 0 Started: 1 Finished: 1

   [jmeter] summary =   2570 in 00:01:00 =   42.7/s Avg:    22 Min:     9 Max:   347 
Err:     0 (0.00%)

   [jmeter] Tidying up ...    @ Thu Aug 19 16:14:54 CST 2021 (1629360894732)

   [jmeter] ... end of run



report:

     [xslt] Processing 
C:\apache\apache-jmeter-5.4.1\bin\test\report\jtl\TestReport202108190413.jtl to 
C:\apache\apache-jmeter-5.4.1\bin\test\report\html\TestReport.html

     [xslt] Loading stylesheet 
C:\apache\apache-jmeter-5.4.1\extras\jmeter-results-detail-report_21.xsl

     [copy] Copying 2 files to C:\apache\apache-jmeter-5.4.1\bin\test\report\html



BUILD SUCCESSFUL

Total time: 1 minute 19 seconds



C:\apache\apache-jmeter-5.4.1\scripts>

根据配置。 C:\apache\apache-jmeter-5.4.1\bin\test\report\jtl 产生jtl格式的报告文件。 C:\apache\apache-jmeter-5.4.1\bin\test\report\html产生html格式的报告文件。如图2所示。

图2 Apache Ant运行JMeter HTML测试报告

3通过Taurus运行 Taurus工具是一个开源测试自动化框架,提供简单的基于YAML的配置格式。要通过Taurus运行,首先要配置好python环境。然后通过pip3 install bzt命令安装Taurus插件。接下来配置blaze_exist_jmeter_config.yml文件。

代码语言:javascript
复制
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

其中ebusiness.jmx为将运行的jmx文件。 最后运行bzt blaze_exist_jmeter_config.yml即可。

代码语言:javascript
复制
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...

得到如图3报告图。

图3 Taurus运行JMeter测试界面

3 总结 本章学习了运行JMeter的三种命令很方式,分别是:通过JMeter自带工具运行、通过Apache Ant运行和通过Taurus运行。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试培训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档