Jmeter——Jmeter之ant运行脚本

一、Jmeter提供ant执行的方式去自定义执行脚本

1、安装jdk,配置环境变量

2、安装ant
配置环境变量
export ANT_HOME=/Users/wuxi/Documents/apache-ant-1.10.1
export PATH=$ANT_HOME/bin:$PATH

jmeter目录结构设计:主要是通过build.xml配置
新建result作为报告输出目录

新建script作为jmx脚本存放路径


build.xml内容如下
<?xml version="1.0"?>
<project name="ant-jmeter" default="all">
	<description>
     </description>
	<!-- Jmeter目录:/Users/wuxi/Documents/apache-jmeter-3.2--> 
	<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="测试计划_Wireshark.jmx" />
            <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>

	<!--定义格式-->
	<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.home目录下新建run.sh:
ant -f /Users/wuxi/Documents/apache-jmeter-3.2/extras/build.xml

执行run.sh执行结果如下

打开result中html文件

参考书籍:全栈性能测试修炼宝典JMeter实战

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值