jmeter+ant本地生成测试报告

本文档详细介绍了如何配置和使用Ant来自动化执行JMeter测试,并生成XML和HTML格式的结果报告。首先确保电脑安装了Java、Ant环境,以及必要的JAR库。接着,配置JMeter的jmeter.properties文件以保存详细测试数据。然后,在build.xml文件中设置测试脚本路径、结果存储位置、报告生成和邮件发送参数。通过Ant的test、report和sendEmail目标分别执行测试、生成报告和发送邮件。最后,尽管邮件发送功能目前存在问题,但整个流程为自动化性能测试提供了一种有效的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1说明

1电脑必须安装java环境
在这里插入图片描述
2电脑安装ant环境
在这里插入图片描述
3脚本必须正常使用
在这里插入图片描述
4 发送邮件必须有mail.jar、commons-email-1.5.jar、activation.jar,这些jar可以在阿里云仓库中下载对应的jar
在这里插入图片描述
在这里插入图片描述

5邮箱必须开启smtp
在这里插入图片描述
6修改jmeter下bin目录中的配置文件jmeter.properties

jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
# Only available with HttpClient4
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true

7修改build.xml

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

<project name="ant-jmeter-test" default="run" basedir="F:\work\jmeter\apache-jmeter-5.4.3\extras">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->  
    <property name="jmeter.home" value="F:\work\jmeter\apache-jmeter-5.4.3" />
    <!-- jmeter生成jtl格式的结果报告的路径--> 
    <property name="jmeter.result.jtl.dir" value="F:\work\jmeter\apache-jmeter-5.4.3\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="F:\work\jmeter\apache-jmeter-5.4.3\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" />
    <!--接受测试报告的邮箱-->
    <property name="mail_from"  value="abc@qq.com"/>
    <property name="mail_to"  value="abc@qq.com"/>
    
    <target name="run">
        <antcall target="test" />
        <antcall target="report" />
        <antcall target="sendEmail" />
    </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="F:\work\jmeter\apache-jmeter-5.4.3\demojmx" includes="*.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> 
    
    <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>
    <!--发送邮件-->
    <target name="sendEmail">
		<mail  mailhost="smtp.qq.com" mailport="587"  subject="Test Report"  messagemimetype="text/html"  user="abc@qq.com" password="abc">
		<from address="${mail_from}"/>
		<to address="${mail_to}"/>
			<message>This email was sent aytomatically by ANT. Please check the automation test report.Thank you!</message>
			<attachments>
				<fileset dir="${jmeter.result.html.dir}">
					<include  name="${ReportName}${time}.html"/>
					<include name="collapse.png" />	
					<include name="expand.png" />
				</fileset>
			</attachments>
		</mail>
    </target>
</project>

二 启动ant

F:\work\jmeter\apache-jmeter-5.4.3\extras
ant run

在这里插入图片描述

三 查看报告文件

在这里插入图片描述
在这里插入图片描述

四 目前发邮件的功能暂未成功,一直无法读取到文件内容,暂时也没有弄明白问题出在哪里
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值