美文网首页测试升华互联网软件测试过程
Jenkins+ant+jmeter小白入门总结篇(四)

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

作者: 古佛青灯度流年 | 来源:发表于2016-07-05 15:55 被阅读920次

    截止目前为止:整体的自动化集成测试基本已经搞定,唯一美中不足的就是,在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}修改下就行了,很简单吧。
    • 这次的持续集成接口测试,就暂时告一段落了,暂时能满足我的需求了,如果后期还有进一步的需求升级,我在继续研究!

    相关文章

      网友评论

      • 测试的旅途中:我在jmeter中通过如果(if)控制器,来判断cese中是否有断言失败的,如果有则发送邮件这个问题有进步优化吗?我目前也是这个思路,但是总感觉不太合适
      • 0163aec55889:请问:构建后的控制台输出中,ant调jmeter脚本的命令中多了ant的地址,不知是啥原因?
        古佛青灯度流年:问题比较微观,得具体问题具体分析了。一步一步跟踪,可以找到是第几步出现的问题,然后在去修改。

      本文标题:Jenkins+ant+jmeter小白入门总结篇(四)

      本文链接:https://www.haomeiwen.com/subject/jubhjttx.html