`
Rainbow702
  • 浏览: 1075953 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类

通过ant来批量执行jmeter脚本,并生成报告(附: 生成报告时报“Content is not allowed in prolog”这个错误的解决方案)

阅读更多

最近在使用jmeter写脚本来进行测试,最终写了很多份脚本,然后,就在想,这么多脚本,我不可能一个一个的手动去点啊,有没有什么办法来批量运行Jmeter脚本呢?

这个时候,自然而然地想到了万能的ant,希望它能有相应的jmeter task。 

哎,哎,查了一下,还真有,爽歪歪啊。

 

下面简单说明一下,如果使用:

① 首先,为了能够在ant中使用jmeter task,必须将“ant-jmeter-1.1.1.jar”这个jar包放到ant的classpath中去。这个jar包位置 jmeter的安装目录下的 extras 目录中。

    PS:可直接将这个jar拷贝至ant安装目录下的lib目录中去就可以了。

② 编写脚本

    

<?xml version="1.0" encoding="UTF-8"?>

<project name="ant-jmeter-test" default="all" basedir=".">
	<tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
	<!-- 需要改成自己本地的 Jmeter 目录-->
	<property name="jmeter.home" value="F:\xxxxx\Jmeter" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
	<property name="jmeter.result.jtl.dir" value="F:\xxxxx\resultLog\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
	<property name="jmeter.result.html.dir" value="F:\xxxxx\resultLog\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" />
	
	<target name="all">
		<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="D:\test_case_path" includes="*.jmx" />
		</jmeter>
	</target>
		
	<target name="report">
		<xslt 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>

 

③ 生成的结果报告如下图



 

 

④ 下面说一个,我在使用过程中遇到的一个问题: 就是在执行 最后生成报告的 task 时,一直报下面这个错:

    TransformerException,  Content is not allowed in prolog.

后来在ant-jmeter官网上查到了原因: 

Note: As of JMeter 1.9RC2(?), the default results output format is now csv. It must be changed to xml in order to use the xslt task to create the html report:

 所以需要修改Jmeter的一个配置 

jmeter.save.saveservice.output_format=xml

 然后就可以正常生成报告了啊

 

附: ant-jmeter官网:  http://www.programmerplanet.org/projects/jmeter-ant-task/

  • 大小: 147.4 KB
分享到:
评论
7 楼 ylhkaixin 2016-08-09  
请教下大神,我转换报告的时候报错:
report:
     [xslt] Processing D:\tool\apache-jmeter-2.11\demo\result\jtl\TestReport201608091104.jtl to D:\tool\apache-jmeter-2.11\demo\result\html\TestReport201608091104.html
     [xslt] Loading stylesheet D:\tool\apache-jmeter-2.11\extras\jmeter-results-detail-report_21.xsl
     [xslt] : Error! 前言中不允许有内容。
     [xslt] : Error! com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: 前言中不允许有内容。
     [xslt] Failed to process D:\tool\apache-jmeter-2.11\demo\result\jtl\TestReport201608091104.jtl  转换报告格式的时候报这个错

麻烦帮忙看看是怎么回事哈,谢谢
6 楼 Rainbow702 2016-03-15  
alike222 写道
Rainbow702 写道
MyDreamFly2011 写道
大神请教一下,MinTime,显示的是NaN是什么原因导致的,是ant的版本问题吗


MinTime?哪边的MinTime?



URL  Tests  Failures  Success Rate Average Time Min Time Max Time
login 7 7 0.00%       95 ms NaN NaN
login 7 7 0.00%       95 ms NaN NaN
bee 4 0 100.00%       185 ms NaN NaN
bee查询 4 0 100.00%       100 ms NaN NaN

Hi~ RainBow,很高兴看到你再上线,同时也感谢你的这篇博文。
我按你提供的步骤跑下来,Min Time, Max Time都是NaN。
请教一下,有方法可以解决吗?
我还看到了一个人,加入了excel页面展示,大家可以一起学习下。
链接:http://zfy421.iteye.com/blog/2191525
可以加我Q:296628981


请参考 :
http://www.cnblogs.com/puresoul/p/5053035.html
5 楼 alike222 2015-12-03  
Rainbow702 写道
MyDreamFly2011 写道
大神请教一下,MinTime,显示的是NaN是什么原因导致的,是ant的版本问题吗


MinTime?哪边的MinTime?



URL  Tests  Failures  Success Rate Average Time Min Time Max Time
login 7 7 0.00%       95 ms NaN NaN
login 7 7 0.00%       95 ms NaN NaN
bee 4 0 100.00%       185 ms NaN NaN
bee查询 4 0 100.00%       100 ms NaN NaN

Hi~ RainBow,很高兴看到你再上线,同时也感谢你的这篇博文。
我按你提供的步骤跑下来,Min Time, Max Time都是NaN。
请教一下,有方法可以解决吗?
我还看到了一个人,加入了excel页面展示,大家可以一起学习下。
链接:http://zfy421.iteye.com/blog/2191525
可以加我Q:296628981
4 楼 Rainbow702 2015-10-12  
MyDreamFly2011 写道
大神请教一下,MinTime,显示的是NaN是什么原因导致的,是ant的版本问题吗


MinTime?哪边的MinTime?
3 楼 MyDreamFly2011 2015-10-10  
大神请教一下,MinTime,显示的是NaN是什么原因导致的,是ant的版本问题吗
2 楼 Rainbow702 2015-01-29  
xiaozhi920wzb 写道
你好,关于通过ant批量执行jmeter脚本文章中的:<project name="ant-jmeter-test" default="all" basedir=".">  ,其中name值是如何设置的(name="ant-jmeter-test" ),望指点下,谢谢!



这个 name 是任意设置的。没有实际作用的。

关键是  default="all"  指向了下面这个target
<target name="all">  
        <antcall target="test" />  
        <antcall target="report" />  
    </target> 


all  这个target 是用来执行所有的Jmeter脚本的:

它又调用了 test  和 report 这两个 target,
其中,test中的
<testplans dir="D:\test_case_path" includes="*.jmx" />

中的
*.jmx 表示所有 jmx文件
1 楼 xiaozhi920wzb 2015-01-27  
你好,关于通过ant批量执行jmeter脚本文章中的:<project name="ant-jmeter-test" default="all" basedir=".">  ,其中name值是如何设置的(name="ant-jmeter-test" ),望指点下,谢谢!

相关推荐

    ant +jmeter 生成测试报告.docx

    总结来说,通过 Ant 和 JMeter 的集成,我们可以实现自动化测试并生成专业的测试报告,这有助于我们更好地理解和分析测试数据,从而优化系统性能。务必按照上述步骤操作,并根据实际项目需求调整配置,以确保测试...

    【jmeter】jmeter报告可视化:配置生成报告仪表板,jmeter+Jenkins自动化构建生成HTML报告配置文件

    (1)批处理命令bat文件: (2)build.xml文件、 (3)user.properties、jmeterxml.properties、jmetercsv.properties文件。...【jmeter】jmeter报告可视化:配置生成报告仪表板,jmeter+Jenkins自动化构建生成HTML报告

    swagger通过OpenAPI Generator自动生成Jmeter脚本

    swagger通过OpenAPI Generator自动生成Jmeter脚本。 我们熟知,Jmeter可以自身录制脚本,还可以Fiddler录制生成Jmeter脚本,不管是Jmeter本身的录制还是Fiddler录制,都需要耗费较长的时间。今天我们介绍更简便的...

    Swagger转JMeter脚本工具

    Swagger转JMeter脚本工具是一种高效实用的自动化测试解决方案,它能够帮助IT专业人士将基于Swagger定义的RESTful API接口快速转换成JMeter测试脚本。Swagger是一个流行的API设计框架,用于构建、文档化和测试RESTful...

    Jmeter+ant自动生成测试报告的模板

    Jmeter+ant自动生成测试报告的模板,测试报告中增加TPS(Throughput)和90% Line等指标;

    jmeter+ant自动话及优化报告

    综上所述,这个主题涵盖了使用JMeter进行性能测试,通过Ant进行自动化调度,以及利用json-lib处理JSON数据,xalan和serializer进行结果的XSLT转换,最终生成详细的性能测试报告。对于持续集成和性能监控来说,这样的...

    Jmeter+ant实现测试报告build.xml和报告模板jmeter-results-newreport.xsl

    例如,你可以定义一个目标来启动JMeter,另一个目标来生成测试报告,甚至还有一个目标用来发送测试结果的邮件通知。在描述中提到,`build.xml`实现了测试报告和邮件功能,这意味着它可能包含JMeter测试执行、结果...

    ant持续集成插件安装包(ant+jmeter)

    这意味着这个安装包不仅包含了Ant的基本构建功能,还可能包含了JMeter的插件或者配置,使得用户可以直接使用Ant进行JMeter的脚本执行和结果分析。 基于提供的标签"ant+jmeter",我们可以推断这个压缩包可能包含以下...

    jmeter所需ant执行脚本

    配合ant使用,可以让jmeter飞起来,文件中对生成的文件进行了备份归档整理,同时调用两个测试报告模版,让功能更加强大

    定时运行jmeter脚本.bat

    右击用记事本打开,修改对应的文件路径、脚本名称,即可定时运行Jmeter脚本

    Jmeter性能测试报告之曲线图展示

    本文档详细介绍了如何通过JMeter生成性能测试报告,并特别关注了如何通过曲线图来直观展示测试结果。这不仅包括了技术准备步骤,还涉及了具体的配置过程。 #### 技术准备 在进行性能测试之前,确保以下环境设置...

    配置Ant执行Jmeter脚本过程详解

    总结来说,配置Ant执行Jmeter脚本的过程就是通过编辑Ant的build.xml文件,定义执行Jmeter测试计划的具体流程,并通过Ant来管理Jmeter的测试计划的执行以及测试报告的生成。通过这样的自动化流程,可以大大提高测试...

    JMeter+ant测试报告优化

    JMeter+ant测试报告优化

    Integrating JMeter into Ant

    这个自定义任务允许在构建过程中启动指定的 JMeter 测试计划,并将测试结果存储为 XML 文件。此外,他们还提供了一个 XML 样式表 (XSL),通过 Ant 的 XSLT 任务生成易于阅读的 HTML 报告。 **安装与配置步骤:** -...

    JMeter生成Excel测试报告

    首先,我们要知道JMeter本身并不直接支持将测试结果导出为Excel格式,但可以通过第三方库或自定义插件来实现这一功能。在这个场景中,我们使用了两个特定的jar包:`jxl.jar`和`JmeterResult.jar`。`jxl.jar`是Java ...

    jmeter+ant.zip

    总结来说,"jmeter+ant.zip"的组合提供了一个集成JMeter和Ant的实例,它展示了如何利用这两个工具进行性能测试的自动化,并且通过定制报告模板,增强了测试结果的可读性和分析能力。对于初学者,这是一个很好的学习...

    jenkins+ant+jmeter生成html资源

    在这里,Jenkins可能被配置为定期运行JMeter测试脚本,并在每次测试完成后使用Ant脚本来生成HTML报告,这样团队成员就可以方便地查看和分析测试结果。 文件“jenkins +ant +jmeter.docx”很可能是详细的步骤指南,...

    Jmeter自动化测试脚本录制工具

    8. **运行和分析结果**:最后,保存并运行测试计划,JMeter会执行这些脚本,并生成详细的测试报告,包括响应时间、错误率等性能指标。 **JMeter的其他功能** 除了脚本录制,JMeter还支持以下功能: - **线程组**...

    jmeter录制脚本及非gui下生成html测试报告1

    - **在测试结束时生成报告**: 使用命令行运行JMeter测试,并添加参数`-n`(非GUI模式),`-t`(指定JMX脚本路径),`-l`(指定日志文件路径,通常是.jtl或.csv格式),`-e`(生成HTML报告),和`-o`(指定HTML报告...

    Jmeter 优化测试报告模板

    【JMeter 优化测试报告模板】是一份专为性能测试设计的报告模版,它针对JMeter工具进行了定制,旨在帮助测试人员系统性地记录、分析和展示JMeter测试的结果,以便于理解应用的性能瓶颈并进行优化。JMeter是一款开源...

Global site tag (gtag.js) - Google Analytics