利用jmeter进行接口自动化测试(Jenkins+ant+jmeter实现持续集成)

本文介绍了如何使用JMeter完成接口自动化测试,并与Jenkins集成,通过ant脚本进行持续集成。测试完成后,文章详细说明了如何生成和发布图形化的HTML测试报告,包括对JMeter配置文件的调整以及build.xml文件的定制。

本文主要记录Jmeter配置完脚本之后,与Jenkins集成测试并发布图形化测试报告

  1. 将Jmeter中配置的测试计划保存成jmx文件
  2. 配置build.xml文件,具体见附录
  3. 下载ant,并在Jenkins中引用
  4. 调用ant进行构建测试
  5. 测试完成后发布生成html文件报告
  6. 发布jmeter生成的jtl报告
  7. 在邮件中引用生成的报告附录一:生成如上报告需优化测试报告,具体如下:下载jmeter.results.shanhe.me.xsl,存放在\apache-jmeter-3.1\extras目录下,且更改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

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

修改bulid.xml文件,如下:

...

        <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" />

...

附录二:build.xml文件配置

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

<project name="JmeterTest" default="all" basedir=".">

    <tstamp>

        <format property="time" pattern="yyyyMMddhhmm" />

    </tstamp>

 

 

     <property name="script" value="script" />

 <property name="result" value="resultLog" />

 

    <!-- 需要改成自己本地的 Jmeter 目录-->

    <property name="jmeter.home" value="F:\testTool\apache-jmeter-3.1" />

    <!-- jmeter生成jtl格式的结果报告的路径-->

    <property name="jmeter.result.jtl.dir" value="${result}/jtl" />

    <!-- jmeter生成html格式的结果报告的路径-->

    <property name="jmeter.result.html.dir" value="${result}/html" />

    <!-- 生成的报告的前缀 -->

    <property name="ReportName" value="XXTestReport" />

    <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="script" value="script" />

 

<target name="clean.result" description="cleanup result">

    <delete dir="${result}"/>

  </target>

 

 

    <!-- 配置生成的报告地址 -->

    <property name="ComputerName" value="user-PC" />

    <target name="all" depends="clean.result">

<mkdir dir="${jmeter.result.jtl.dir}"/>

    <mkdir dir="${jmeter.result.html.dir}"/>

        <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="${script}" 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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值