1.安装并配置jdk环境变量java -version
C:\Users\davi>java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
C:\Users\davi>
2.安装并配置jmeter环境变量jmeter -v
C:\Users\davi>jmeter -v
Writing log file to: C:\Users\davi\jmeter.log
_ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____
/ \ | _ \ / \ / ___| | | | ____| | | \/ | ____|_ _| ____| _ \
/ _ \ | |_) / _ \| | | |_| | _| _ | | |\/| | _| | | | _| | |_) |
/ ___ \| __/ ___ \ |___| _ | |___ | |_| | | | | |___ | | | |___| _ <
/_/ \_\_| /_/ \_\____|_| |_|_____| \___/|_| |_|_____| |_| |_____|_| \_\ 3.1 r1770033
Copyright (c) 1999-2016 The Apache Software Foundation
C:\Users\davi>
3.安装并配置ant环境变量ant -version
C:\Users\davi>ant -version
Apache Ant(TM) version 1.10.7 compiled on September 1 2019
C:\Users\davi>
4.将\apache-jmeter-3.2\extras下面的ant-jmeter-1.1.1的jar包复制到ant的lib目录,如图所示
5.配置jmeter.propertise文档
找到jmeter.properties文档,在jmeter/bin目录下,打开该文档并编辑,修改jmeter报告输出格式为xml:
改jmeter.save.saveservice.output_format=csv 为jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#
# legitimate values: xml, csv, db. Only xml and csv are currently supported.
#jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.output_format=xml
6.准备一个jmeter脚本,存放到一个文件夹中
7.准备build文件,build文件是用来引导ant执行测试计划的,主要配置jmeter的路径、执行的脚本路径、执行脚本生成的数据的路径、测试报告的路径和测试报告的样式等,如下,你可以复制到txt文件中,根据实际替换里面的参数然后将文件后缀改为xml格式:
<?xml version="1.0" encoding="GBK"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己的 Jmeter 安装目录-->
<property name="jmeter.home" value="C:\apache-jmeter-3.1" />
<!-- jmeter生成jtl格式结果的路径-->
<property name="jmeter.result.jtl.dir" value="C:\Users\davi\Desktop\jmeter\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="C:\Users\davi\Desktop\jmeter\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}${time}.html" />
<!-- 这里定义这次测试目标名称,为run,执行时就是“ant run”这个命令-->
<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:\Users\davi\Desktop\jmeter" includes="baidu.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<!-- 这里用的是jmeter的extend目录里面的jmeter-results-detail-report_21.xsl报告模板 -->
<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>
8.在build.xml所在目录打开命令窗口(鼠标在空白处按下shift键后在右键),
或者命令行cd到build.xml文件所在目录,输入ant run
回车,执行测试
输入ant run
回车
C:\Users\davi\Desktop\jmeter>ant run
Buildfile: C:\Users\davi\Desktop\jmeter\build.xml
run:
test:
[jmeter] Executing test plan: C:\Users\davi\Desktop\jmeter\baidu.jmx ==> C:\Users\davi\Desktop\jmeter\jtl\TestReport202005180242.jtl
[jmeter] Writing log file to: C:\apache-jmeter-3.1\bin\jmeter.log
[jmeter] Creating summariser <summary>
[jmeter] Created the tree successfully using C:\Users\davi\Desktop\jmeter\baidu.jmx
[jmeter] Starting the test @ Mon May 18 14:42:34 CST 2020 (1589784154348)
[jmeter] Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
[jmeter] summary + 1 in 00:00:00 = 7.7/s Avg: 62 Min: 62 Max: 62 Err: 0 (0.00%) Active: 1 Started: 1 Finished: 0
[jmeter] summary = 1 in 00:00:00 = 6.2/s Avg: 62 Min: 62 Max: 62 Err: 0 (0.00%)
[jmeter] Tidying up ... @ Mon May 18 14:42:34 CST 2020 (1589784154554)
[jmeter] ... end of run
report:
[xslt] Processing C:\Users\davi\Desktop\jmeter\jtl\TestReport202005180242.jtl to C:\Users\davi\Desktop\jmeter\html\TestReport202005180242.html
[xslt] Loading stylesheet C:\apache-jmeter-3.1\extras\jmeter-results-detail-report_21.xsl
[copy] Copying 2 files to C:\Users\davi\Desktop\jmeter\html
BUILD SUCCESSFUL
Total time: 1 second
C:\Users\davi\Desktop\jmeter>
执行成功并生成了html报告