Jenkins+ant+jmeter小白入门总结篇(四)

截止目前为止:整体的自动化集成测试基本已经搞定,唯一美中不足的就是,在jmeter中没有找到断言失败自动发送邮件的判断条件。有知道的同学可以给我留言解惑一下,问题是这样的:我在jmeter中通过如果(if)控制器,来判断cese中是否有断言失败的,如果有则发送邮件

  • 先看看成果吧

  • 现在有3个任务再跑。做的定时任务,每天早晚各一次。

job.png
  • 每个任务的配置在构建成功后自动发送邮件,为防止发送邮件服务器异常特地将发送邮件时间分开。

email.png
  • 喜出望外的情况就是HTML Report 和 Performance Trend 两个插件的功能,能够一定程度弥补一下jmeter那个邮件的问题:其中HTML Report可以直接点击查看测试报告,模板很清晰,执行中的各项数据也很直观:

HTML Report.png
  • 如果有错误在summary那里就能直接看出来了,另外一个优点就是如果有错误,直接点击就可以实现跳转,算是一个小功能吧。

HTML Report.png
  • Performance Trend 这个插件也很强大,能直接检测出当前jmeter-case中断言/执行失败的个数,然后在视图中都会显示出来,线性图表,另一个维度的感觉:

Performance Trend.png
  • 从图中可以看出来,第四次构建没有失败但是有一个错误,然后打开当前的HTML Report,确实有一次失败情况存在,这里提供的两种视图均可以点击查看详细。

    特地上2张比较明显的图片供参考:

    responding time.png

    percentage of errors.png
  • 通过建立3个job,所以对bild.xml有了一点小了解,也做了一点优化,很简单的变动了一下参数,这样在每次新建job的时候,只需要在原有的基础上修改一下项目名称就行了,(前提:workplace不变,否则需要把workplace修改下)

      <?xml version="1.0" encoding="utf-8"?>
    <project name="JmeterTest" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 这里耍了个小聪明构建项目配置信息-->
    <property name="project.name" value="a-client\" />
    <property name="project.workspace" value="E:\Jenkins\workspace\" />
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="E:\workplace-jenkins\apache-jmeter-2.13\" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="${project.workspace}${project.name}jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="${project.workspace}${project.name}" />
    <!-- 生成的报告的前缀 -->
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
    <!-- 接收测试报告的邮箱 -->
    <property name="mail_to" value="XX@qq.com" />
    <!-- 电脑地址 -->
    <property name="ComputerName" value="andre" />
    <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="${project.workspace}${project.name}case" 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>
  • 每次新建项目,只需要在${project.workspace}下,新建一个叫做${project.name}的文件夹,然后将之前项目里面的文件夹全部拷贝过来即可。别忘了再将build.xm中${project.name}修改下就行了,很简单吧。
  • 转自:http://www.jianshu.com/p/7ca5b30bfb66

posted @ 2017-06-13 11:30  先定一个小目标  阅读(2259)  评论(0编辑  收藏  举报