ant+jenkins+jmeter环境配置
关于jmeter中build.xml配置(ant+jenkins+jmeter)
To run a test and create the output report:
ant -Dtest=script
To run a test only:
ant -Dtest=script run
To run report on existing test output
ant -Dtest=script report
The "script" parameter is the name of the script without the .jmx suffix.
Additional options:
-Dshow-data=y - include response data in Failure Details
-Dtestpath=xyz - path to test file(s) (default user.dir).
N.B. Ant interprets relative paths against the build file
-Djmeter.home=.. - path to JMeter home directory (defaults to parent of this build file)
-Dreport.title="My Report" - title for html report (default is 'Load Test Results')
</description>
<property name="jmeter.home" value="${user.dir}"/>
<! --${user.dir}当前目录的意思,在此指向%JMETER_HOME%目录 -->
<property name="jmeter.home" value="${basedir}/.."/>
<property name="script.dir" value="${user.dir}/script">
<! --定义Jmeter的脚本存放目录,指向%JMETER_HOME%/script目录 -->
<! --定义jmeter的测试结果存放目录,指向% JMETER_HOME%/result 目录 -->
<property name="jmeter.result" value="${user.dir}/result"/>
<property name="report.title" value=" Performance Test Summary Report "/>
<!-- Name of test (without .jmx) -->
<! --定义测试结果名称 -->
<!-- Should report include response data for failures? -->
<! --测试报告中是否显示失败事务,n为不显示 -->
<property name="show-data" value="n"/>
<! --定义样式版本,有更新时只需要修改此处即可,其他调用处不用更改 -->
<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>
<!-- Allow jar to be picked up locally -->
<! -- 定义依赖包目录 -->
<! -- {$basedir}指向当前目录,此bulib.xml所在的目录 -->
<! -- 把ant-jmeter字符开头的包.jar结尾的包引入进来,在此*一般是版本信息 -->
<! -- 定义任务,即测试活动,依赖于ant-jmeter.jar包 -->
<taskdef
name="jmeter"
classpathref="jmeter.classpath"
classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
<! -- 定义任务,一个是run,即运行脚本,一个是report,即生成报告 -->
<! -- 定义run任务 -->
<! --显示上面定义的${show-data}的取值 -->
<! -- 删除前一次的测试报告,html格式的,上面有定义${test}变量的值-->
<jmeter
jmeterhome="${jmeter.home}"
<! -- 加载运行时设置,设置配置在jmeter.properties文件中 -->
jmeterproperties="${user.dir}/bin/jmeter.properties"
<! -- 是否进行远程执行 -->
runremote="true"
<! -- 测试结果保存目录 -->
resultlog="${jmeter.home}/result/${test}.jtl">
<! -- 制定测试脚本或者测试脚本所在的目录 -->
<! -- 如果是单一脚本,直接指定脚本名称,如果是执行多个脚本,指定脚本所在的目录 -->
<! -- 指定单脚本,名称是csveg1.jmx -->
<! --指定测试结果输出格式,在此指定的xml格式,也可以指定成文本格式以及CSV格式 -->
<! -- -->
testplan ="${testpath}/${test}.jmx"
resultlog="${testpath}/${test}.jtl">
<!--
<jvmarg value="-Xincgc"/>
<jvmarg value="-Xmx128m"/>
<jvmarg value="-Dproperty=value"/>
<jmeterarg value="-qextra.properties"/>
-->
<!-- Force suitable defaults -->
<property name="jmeter.save.saveservice.output_format" value="xml"/>
<! --先暂且指定成xml格式,后续会变化成文本格式-->
<property name="jmeter.save.saveservice.assertion_results" value="all"/>
<property name="jmeter.save.saveservice.bytes" value="true"/>
<property name="file_format.testlog" value="${format}"/>
<! --是否记录错误信息,上面已经定义了 ${funcMode}=n -->
<property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
</jmeter>
</target>
<! --定义依赖包目录-->
<!-- 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是使用xslt来把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>
<! --_massage_xalan被xslt-reportxslt依赖,由它生成报告-->
<xslt
classpathref="xslt.classpath"
force="true"
<! --测试结果输出-->
in="${jmete.home}/result/${test}.jtl"
out="${jmete.home}/result/${test}.html"
<! --xslt定义的模板文件地址-->
<! --即%JMETER_HOME%/extras/jmeter-results-detali-report_21.xsl-->
style="${basedir}/jmeter-results-detail-report${style_version}.xsl">
<! --生成html报告时需要copy图标到报告目录,expand.png展开图标,college.png收起图标-->
<! --判断${jmeter.home}与${basedir}是否指向同一目标-->
<! --检查依赖-->
<!-- Check that the xalan libraries are present -->
<condition property="xalan.present">
<and>
<!-- No need to check all jars; just check a few -->
<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>
<! -仅仅打印前面定义的变量的值,检查是否如你所愿,在定义变量时作调试用,可以去掉--->
< echo>basedir= ${basedir}
< echo>jmeter.home = ${jmeter.home}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!