jenkins + ant + jmeter 集成测试报告发送邮件

一、什么是接口测试?

  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 

  接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。 

  接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。

  基于接口测试的重要性,以及它比较容易自动化的特性,通过持续集成的接口监控能够及时的发现项目中存在的问题,这对持续运营的项目来说,非常重要。

二、接口测试的流程

  1、 项目启动后,测试人员要尽早找到开发人员拿到接口测试文档 

  2、 获取接口测试文档后,就可以进行接口用例的编写和调试 

  3、 接口用例编写调试完成后,部署到持续集成的测试环境中,

  4、 设定脚本运行频率,告警方式等基本参数,进行接口的日常监控 

  5、 每日进行接口脚本的维护更新,接口异常的处理

三、jenkins + ant + jmeter 集成测试报告发送邮件

环境准备

安装Jdk

JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

鼠标右击计算机(此电脑)->属性->高级系统设置->高级->环境变量

在系统变量中,点击新建,新建JAVA_HOME变量,变量的值:JDK的安装目录

在系统变量中找到Path变量,双击打开,新增两个变量%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin,点击确定

在系统变量中新建CLASSPATH变量,变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意前面的.),点击确定,保存退出。

检查是否配置成功,win+R输入cmd,然后回车,在黑乎乎的窗口输入java -version,能够看到你安装的jdk版本信息,即环境配置成功。

安装Ant

ant 是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点: 

1、跨平台性:Ant是纯Java语言编写的,所以具有很好的跨平台性。 

2、操作简单:Ant是由一个内置任务和可选任务组成的,用ant任务就像是在dos中写命令行一样。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。

3、维护简单、可读性好、集成简单:由于Ant构建文件 时XML格式的文件,所以很容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开 发环境中去。

以下是解压后的目录布局。

apache-ant-1.10.8

+--- README, LICENSE, fetch.xml, 其他文本文件. //基本信息

+--- bin // 包含安装程序脚本

|

+--- lib // 包含Ant JARs plus必要的依赖项

|

+--- manual // Ant文档 (必读 ;-)

|

+--- etc // 包含xsl工具:

         // - 可以从xml输出的各种任务中创建一个增强型的报告。

         // - 迁移你的构建文件,并摆脱 "已废弃 "的警告

         // - ... 更多 ;-)

点击http://ant.apache.org/bindownload.cgi进入ant官网,下载对应的安装包。

将下载的.zip压缩包解压到对应文件夹

配置环境变量

ANT_HOME  H:\Ant\apache-ant-1.10.2

path       H:\Ant\apache-ant-1.10.2\bin

classpath   H:\Ant\apache-ant-1.10.2\lib

验证是否安装成功

依次选择:win + R –>cmd,输入如下命令:ant  ,出现如下图,则表示安装成功

安装jenkins

jenkins有三种安装方式

第一种:快速安装选择windows系统的版本

解压成功后双击jenkins.msi程序

安装成功后会显示如下要你填写密码的验证页面,按照它的提示信息到对应的目录底下找文件initialAdminPassword,然后将密码拷贝出来  localhost:8080

第二种:快速安装 使用命令 java -jar jenkins.war这是依赖于 java环境和 jenkins.war进行搭建这里不多说,因为后面的安装顺序都是和上述一致

第三种方法:

是直接将jenkins.war包安装在tomcat的webapps目录下,然后启动tomcatcat就可以了,当然Tomcat也有两种启动方式。但原理都是一样的。只是看谁比较方便,兼容性比较强而已。关键还是看系统 st

startup.sh 

总结:三种安装方式都使用与Windows系统,第二种和第三种可以使用在linux系统,但是为求不出错,第二种才是最方便的。如果直接将jenkins.war包放到Tomcat的webapps下,那你公司的项目也放到这里,那就好玩了。

此处, 我们选择第一种方式进行安装

配置jmeter变量

官网下载

解压任意目录即可

配置环境变量

点击“新建”,建立一个变量:JMETER_HOME,值为你解压的jmeter安装路径。我的安装路径是在C盘,这个路径根据自己实际安装路径进行填写。然后点击确定保存即可

配置classpath变量 ;

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar

在用系统变量path后面加上%JMETER_HOME%\bin

最后在cmd输入jmeter 直接打开 如图

配置jenkins

环境变量配置

全局系统环境变量配置JDK

全局系统环境变量配置Ant

全局系统环境变量配置Git

配置jenkins报告支持显示HTML样式

首先在jenkins-系统管理,脚本命令行输入

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","sandbox; default-src 'self';")

保存后,不是立即生效,需要重新构建下项目,html报告就有显示了

常用插件安装

由于我们需要显示报告、因此需要安装邮件和第三方报告插件 ,jenkins管理 ->Manager Plugins

Ant Plugin

Email Extension Plugin

HTML Publisher plugin

Performance Plugin

Manage Jenkins ->Manage plugins

集成jmeter用例集

新建一个自由风格的项目

配置构建触发器

构建执行命令: Execute Windows batch command

3.1 此处通过命令行简单执行 jmeter生成报告

rd /s/q D:\auto\jtl

rd /s/q D:\auto\report

mkdir jtl

mkdir report

jmeter -n -t  D:\auto\testcase.jmx  -l D:\auto\jtl\result_.jtl -e -o D:\auto\report

exit 0

3.2 再次新建Invoke Ant ,通过ant build文件构建生成日志

构建后操作:

完整显示结构如下:

Publish HTML reports : 此处展示 简单报告

结果如下显示:

Publish performance test result report 此处展示性能报告

结果如下:

集成邮件配置

全局系统配置邮件config system

(1)全局系统管理配置

  (2)全局邮件服务器设置


扩展邮件配置邮件Extended E-mail Notification


回到项目配置: 添加 构建后操作 -> Editable Email Notification

完整 邮件报告模板

 

 

53在线接口自动化-第${BUILD_NUMBER}次构建日志  

 


   offset="0">  

  

       style="font-size: 30pt; font-family: Tahoma, Arial, Helvetica, sans-serif">  

      

 

          

 

      

 

      

 

          

 

      

 

      

 

          

 

      

 

      

 

          

 

      

 

  

(本邮件是程序每天定时下发,有问题请联系测试Young!(公司之后的外网无法打开邮件里的 URL))

 

                   构建状态 - ${BUILD_STATUS}  

              


 

           构建信息  

          


 

              

     

                      

  • 项目名称 : ${PROJECT_NAME}
  •  

                      

  • 构建编号 : 第${BUILD_NUMBER}次构建
  •  

                      

  • 触发原因: ${CAUSE}
  •  

                      

  • 构建日志: ${BUILD_URL}console
  •  

                      

  • 变更集:${JELLY_SCRIPT,template="html"}
  •  

                      

                      

  • SummaryReport:${FILE, path="D:/demo/log/html/SummaryReport.html"}

  •  

                  

   

                  


          

 

 

邮箱显示报告如下样式:

jmeter相关配置   

一: 通过简单的命令:构建 目录结构如下

csv    &  xml

简单结构目录如下

修改jmeter.properties文件内容细节

文件地址

设置运行机器为本机

设置报告方式为csv

禁用ssl模式

二:通过build文件构建目录如下

  注意!注意!注意!

使用到的jmeter-results-detail-report_21.xsl 文件

将build.xml中的第42行

style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">

拷贝以下内容将这个路径下的jmeter-results-detail-report_21.xsl文件覆盖,这个文件说明了xsl文件装换为html文件的一些规则

使用到的:jmeter.results.shanhe.me.xsl 文件

jmeter.results.shanhe.me.xsl

链接:https://pan.baidu.com/s/1TQ7VIEXR9SubNEUZZ3a2xQ 提取码:ne14

文件目录结构

build文件详细内容如下:

  

  

      

      

      

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

      

      

          

              

          

      

      

      

          

              

          

      

      

  

  

      

      

      

  

  

      

      

          

          

          

      

  

  

      

      

  

  

      

          

      

      

  classpathref="xslt.classpath"

  force="true"

  in="${jmeter.result.jtlName}"

  out="${jmeter.result.htmlName}"

  style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">


          

      


  classpathref="xslt.classpath"

  force="true"

  in="${jmeter.result.jtlName}"

  out="${jmeter.result.htmlName2}"

  style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">


          

      


      

          

              

              

          

      

  

  

      

          

          

          

          

      

  

  

jmeter.properties文件配置内容

文件地址:

设置运行机器为本机

设置禁用ssl

设置报告方式为xml

邮件报告乱码处理

进入jenkins安装显示目录如下:

修改指定编码运行jenkins

运行完以后记得重启生效: https://localhost:8080/restart

查看jenkins 系统信息编码为UTF-8即操作成功

注意事项:

如果修改此处的编码方式为utf-8那么 ,**.jmx文件必须为英文 否则构建时由于文件编码不正确会构建失败

总结

ANT构建脚本 xml

1.jmeter脚本准备(不说了)

2.新建一个demo,把jmx脚本放进去

3.在demo下新建目录resultLog,log下新建两个子目录html,jtl

4.将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中

5.修改Jmeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml

html:存放生成的html报告

jtl:存放生成的jtl报告

build.xml配置

  

  

      

      

      

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

      

      

          

              

          

      

      

      

          

              

          

      

      

  

  

      

      

      

  

  

      

      

          

          

          

      

  

  

      

      

  

  

      

          

      

      

  classpathref="xslt.classpath"

  force="true"

  in="${jmeter.result.jtlName}"

  out="${jmeter.result.htmlName}"

  style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">


          

      


  classpathref="xslt.classpath"

  force="true"

  in="${jmeter.result.jtlName}"

  out="${jmeter.result.htmlName2}"

  style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">


          

      


      

          

              

              

          

      

  

  

      

          

          

          

          

      

  

  

1.修改build.xml中的(1)(2)(3)(4)(5)的路径为自己的响应的路径

2.将build.xml中的第42行

style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">

拷贝以下内容将这个路径下的jmeter-results-detail-report_21.xsl文件覆盖,这个文件说明了xsl文件装换为html文件的一些规则

jmeter-results-detail-report_21.xsl 文件内容如下:

  

      

           <xsl:value-of select="$titleReport" />

          

          

      

      

          

          

          


          

          


          

      

  

  

  

      

          

          

      

  

Date report: Designed for use with JMeter and Ant.

  


  

Summary

  

      

          

          

          

          

          

          

      

      

          

          

          

          

          

          

          

              

                  

              

          

          

              

                  

              

          

          

              

                   Failure

              

          

          

          

          

          

          

          

      

  

# Samples Failures Success Rate Average Time Min Time Max Time

              

          

              

          

              

                  

              

          

              

                  

              

          

              

                  

              

          

              

                  

              

          

  

Pages

  

      

          

          

          

          

          

          

          

          

      

      

          

          

          

          

          

          

          

          

              

                  

              

          

          

              

                  

              

          

          

              

                  

                       Failure

                  

              

              

              

              

              

              

              

              

              

          

                      

                          page_details_

                         

                      

      

  

URL # Samples Failures Success Rate Average Time Min Time Max Time

              

                 #

                

                

              

              

                

              

              

                  

              

                  

              

                  

                      

                  

              

                  

                      

                  

              

                  

                      

                  

              

                  

                      

                  

              

                 

                     javascript:change('page_details_')

                     expand/collapsepage_details__image

                 

              

                            

                    Details for Page ""

                   

                   

                      

                      

                      

                      

                      

                   

                   

                      

                         

                         

                         

                         

                         

                         

                      

                   

                   

Thread Iteration Time (milliseconds) Bytes Success

                

                         

  

  

      

Failure Detail

      

          

          

              

              

              

                  

                  

                  

                     

                  

              

              

                  

                      

                      

                      

                          

                      

                  

              

              

Response Failure Message Response Data
-

          

      

  

  

  

       NaN

      

          

              

              

                  

              

          

      

  

  

  

       NaN

      

          

              

              

                  

              

          

      

  

  

  

  

  

你可能感兴趣的:(jenkins + ant + jmeter 集成测试报告发送邮件)