JMeter——JMeter之ant运行脚本
Posted l7planet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMeter——JMeter之ant运行脚本相关的知识,希望对你有一定的参考价值。
使用win环境演示
环境准备
JAVA JMeter ANT
下载并配置环境变量
都是JAVA开发的,所以此方案具有良好的跨平台
在JMeter目录下,新建result和script文件夹,用来存放脚本和测试结果
配置H:apache-jmeter-5.2.1extrasuild.xml
<?xml version="1.0"?>
<project name="ant-jmeter" default="all">
<description>
</description>
<!-- Jmeter目录,与%JMETER_HOME%指向同一个目录-->
<!-- ${user.dir},当前目录,在次指向%JMETER_HOME%-->
<property name="jmeter.home" value="${user.dir}"/>
<!-- script目录:/Users/wuxi/Documents/apache-jmeter-3.2/script-->
<property name="script.dir" value="${user.dir}/script"/>
<!-- result目录:/Users/wuxi/Documents/apache-jmeter-3.2/result-->
<property name="result.dir" value="${user.dir}/result"/>
<property name="report.title" value="Test Summary Report"/>
<property name="test" value="Test"/>
<property name="show-data" value="n"/>
<property name="format" value="2.1"/>
<condition property="style_version" value="">
<equals arg1="${format}" arg2="2.0"/>
</condition>
<condition property="style_version" value="_21">
<equals arg1="${format}" arg2="2.1"/>
</condition>
<condition property="funcMode">
<equals arg1="${show-data}" arg2="y"/>
</condition>
<condition property="funcMode" value="false">
<not>
<equals arg1="${show-data}" arg2="y"/>
</not>
</condition>
<path id="jmeter.classpath">
<fileset dir="${basedir}">
<include name="ant-jmeter*.jar"/>
</fileset>
</path>
<taskdef
name="jmeter"
classpathref="jmeter.classpath"
classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
<target name="all" depends="run,report"/>
<target name="run">
<echo>funcMode = ${funcMode}</echo>
<!--删除原来的结果-->
<delete file="${result.dir}/${test}.html"/>
<delete file="${result.dir}/${test}.jtl"/>
<jmeter
jmeterhome="${jmeter.home}"
<!--加载运行时设置,设置配置文件-->
jmeterproperties= "${user.dir}/bin/jmeter.properties"
runremote="false"
resultlog="${result.dir}/${test}.jtl">
<!--脚本目录和要执行的脚本-->
<testplans dir="${script.dir}" includes="登录.jmx" />
<!--指定测试输出格式,在此指定xml格式,也可以csv-->
<!--暂且指定xml,后续会变成文本格式-->
<property name="jmeter.save.saveservice.output_format" value="xml"/>
<!--是否记录错误信息-->
<property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
</jmeter>
</target>
<!--定义依赖包目录-->
<property name="lib.dir" value="${jmeter.home}/lib"/>
<!-- Use xalan copy from JMeter lib directory to ensure consistent processing with Java 1.4+ -->
<path id="xslt.classpath">
<fileset dir="${lib.dir}" includes="xalan*.jar"/>
<fileset dir="${lib.dir}" includes="serializer*.jar"/>
</path>
<!--定义格式-->
<!--定义report任务,此任务依赖于xslt-report,copy-images这两个任务-->
<!--xslt-report是使用xml文件转换成html格式来显示-->
<!--copy-images用来copy图片,xslt模板中的图片有copy-images任务copy到报告-->
<target name="report" depends="xslt-report,copy-images">
<echo>Report generated at ${report.datestamp}</echo>
</target>
<target name="xslt-report" depends="_message_xalan">
<tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/></tstamp>
<xslt
classpathref="xslt.classpath"
force="true"
in="${result.dir}/${test}.jtl"
out="${result.dir}/${test}.html"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
<param name="showData" expression="${show-data}"/>
<param name="titleReport" expression="${report.title}"/>
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
</target>
<target name="copy-images" depends="verify-images" unless="samepath">
<copy file ="${jmeter.home}/extras/expand.jpg" tofile="${result.dir}/expand.jpg" />
<copy file ="${jmeter.home}/extras/collapse.jpg" tofile="${result.dir}/collapse.jpg" />
</target>
<!--判断是否相等-->
<target name="verify-images">
<condition property="samepath">
<equals arg1="${jmeter.home}" arg2="${basedir}"/>
</condition>
</target>
<condition property="xalan.present">
<and>
<available classpathref="xslt.classpath" classname="org.apache.xalan.processor.TransformerFactoryImpl"/>
<available classpathref="xslt.classpath" classname="org.apache.xml.serializer.ExtendedContentHandler"/>
</and>
</condition>
<target name="_message_xalan" unless="xalan.present">
<echo>Cannot find all xalan and/or serialiser jars</echo>
<echo>The XSLT formatting may not work correctly.</echo>
<echo>Check you have xalan and serializer jars in ${lib.dir}</echo>
</target>
</project>
在JMeter目录下创建一个run.bat文件。写入
%ANT_HOME%inant -f %JMETER_HOME%extrasuild.xml
运行run.bat
查看测试报告
以上是关于JMeter——JMeter之ant运行脚本的主要内容,如果未能解决你的问题,请参考以下文章
ant运行jmeter的html结果与jmeter自运行的聚合报告结果各个参数相差很大
jenkin运行jmeter自动化脚本(jenkins+jmeter+ant)