Jmeter+Ant实现自动生成测试报告并发送测试报告邮件

目录

  1. 下载&安装ant
  2. 配置ant环境变量
  3. 下载整理jar包
  4. 修改 jmeter 的配置文件
  5. 编写 build.xml文件
  6. 执行build.xml文件

一、ant官网下载&安装:

1、进入官网:

     https://ant.apache.org/

在这里插入图片描述

2、找到资源地址:

在这里插入图片描述

3、我下载的最新版本的zip包,不需要安装,下载完成后可以直接解压到我们的目标目录下,

 之后再配置环境变量,然后就可以使用了。

在这里插入图片描述

二、Ant环境变量配置

1、在“我的电脑”右键单击,选择“属性”,点击进入下面的界面,

在这里插入图片描述

新建:

变量 值

ANT_HOME 绝对路径

classpath 绝对路径

我这里选择输入的都是绝对路径,主要原因有时候配置相对路径会导致一直无法配置成功。
在这里插入图片描述

添加:

在Path项中新建,也输入绝对路径。
在这里插入图片描述

配置已完成。
最后,我们需要验证一下配置是否正确。

Win + R 组合键,输入 “cmd”,点击“确定”

在这里插入图片描述

在DOS窗口输入命令“ant”,

在这里插入图片描述

如果出现:

“Buildfile:build.xml does not exist!

Build failed”

则说明配置成功,

否则会提示:

“ 'ant’不是内部或外部命令,也不是可运行的程序或批处理文件。“

如果觉得配置没有问题,可以重启下电脑,再执行命令验证一下配置结果。

ant -v 或者 ant -version 可以查看一些版本信息。
在这里插入图片描述

三、下载整理jar包

1、在 jmeter 的 .\JMeter\apache-jmeter-3.2\Extras 目录下找到 ant-jmeter-1.1.1.jar 文件,将它复制到 ant 的 \lib 目录下

2、在网站上下载commons-email.jar包,然后放在 ant 的 \lib 目录下

3、在网站上下载activation-1.1.1.jar包,然后放在 ant 的 \lib 目录下

4、在网站上下载javax.mail.jar包,然后放在 ant 的 \lib 目录下

四、修改 jmeter 的配置文件

打开 jmeter 的 bin 目录,找到 jmeter 的配置文件(jmeter.properties),做如下修改:把输出的默认存储模式改为xml,也就是把 jmeter.save.saveservices .output_format = csv 改为 jmeter.save.saveservices .output_format = xml

<?xml version="1.0" encoding="UTF8"?>
<!-- 获取当前时间 -->
<tstamp><format property="time" pattern="yyyyMMddhhmm" /></tstamp>

<!-- jmeter环境配置 -->
<property name="jmeter.home" value="${jmeterPath}"/>
<!-- jtl测试结果存放路径 -->
<property name="jmeter.result.jtl.dir" value="G:\文件包\jmeter-JDK\apache-jmeter-5.1.1\demo\report\jtl"/>
<!-- html测试结果存放路径 -->
<property name="jmeter.result.html.dir" value="G:\文件包\jmeter-JDK\apache-jmeter-5.1.1\demo\report\html"/>
<!-- 定义测试报告标题前缀 -->
<property name="htmlReportNameSummary" value="TestReport"/>
<!-- 将jtl报告全称存放路径 -->
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${htmlReportNameSummary}${time}.jtl"/>
<!-- 将html报告全称存放路径 -->
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${htmlReportNameSummary}${time}.html"/>

<!-- 执行配置 -->
<target name="all">
    <antcall target="test"/>    <!-- 测试用例执行类 -->
    <antcall target="report"/>   <!-- 生成测试报告类 -->
    <antcall target="sendEmail"/>  <!-- 发送测试报告类 -->
</target>
   
<!-- 执行接口测试 -->
<target name="test">
    <echo>执行接口自动化测试用例</echo>
    <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />   <!-- 运行jmeter -->
    <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
         <!--<testplans dir="D:/interfaceTestSuite/Scripts" includes="填写运行的脚本,"*.jmx"指运行此目录下的所有jmeter脚本" /> -->
		<testplans dir="G:\文件包\jmeter-JDK\apache-jmeter-5.1.1\demo" includes="*.jmx" />
         <property name="jmeter.save.saveservice.output_format" value="xml" />
    </jmeter>
</target>

<!-- 解决报告中NAN字段显示问题-->
<path id="xslt.classpath">
    <fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar" />
    <fileset dir="${jmeter.home}/lib" includes="serializer-2.7.2.jar" />    
</path>

<target name="report">
    <echo>生成接口自动化测试报告</echo>
        <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_23.xsl"  >   <!-- 填写报告生成的模板-->
              <param name="titleReport" expression="${mailsubject}${time}"/> 
              <param name="dateReport" expression="${report.datestamp}"/>
        </xslt>   
              
        <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->  
        <copy file="${jmeter.home}/extras/expand.png" tofile="${jmeter.result.html.dir}/expand.png" />
        <copy file="${jmeter.home}/extras/collapse.png" tofile="${jmeter.result.html.dir}/collapse.png" />
        
</target>

<target name="sendEmail">
    <echo>发送测试报告</echo>
        <mail mailhost="${mail_host}" 
              ssl="true"
              user="${username}"
              password="${password}"
              mailport="${mail_port}"
              subject="${mailsubject}"
              messagemimetype="text/html"
              tolist="${mail_to}"  >
        <from address="${mail_from}" />
        
            <attachments>
                <fileset dir="${jmeter.result.html.dir}">
                    <include name="${htmlReportNameSummary}${time}.html" />
					<!-- 
					<include name="collapse.png" />
                    <include name="expand.png" />
					-->
                </fileset>
            </attachments>
            
            <message>
            ${message}
            </message>           
        
        </mail>
</target>

五、执行

在\apache-jmeter-4.0\apache-jmeter-4.0\extras目录下打开CMDER,运行"ant.bat -file build.xml -Dtest=Test" (2019-09-26更新:直接执行ant即可;完成之后可以在build.xml中设置的路径中找到html格式的测试报告,无须执行这么长了). 查看\apache-jmeter-4.0\extras目录下是否出现Test.jtl、Test.html文件,若有,则构建成功会显示 BUILD SUCCESSFUL。PS:Test.jmx是默认存在的Sample脚本文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值