Jmeter +Jenkins +Ant 集成发送邮件报告
阅读原文时间:2023年07月12日阅读:1

[TOC]

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

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

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

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

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

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

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

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

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

环境准备

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

  • 安装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输出的各种任务中创建一个增强型的报告。
// - 迁移你的构建文件,并摆脱 "已废弃 "的警告
// - … 更多 ;-)

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

  • 安装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%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar

配置jenkins

环境变量配置

  1. 全局系统环境变量配置JDK
  2. 全局系统环境变量配置Ant
  3. 全局系统环境变量配置Git
  4. 配置jenkins报告支持显示HTML样式
    首先在jenkins-系统管理,脚本命令行输入

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


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

常用插件安装

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

Manage Jenkins ->Manage plugins

集成jmeter用例集

  1. 新建一个自由风格的项目
  2. 配置构建触发器
  3. 构建执行命令: 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

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

  2. 构建后操作:
    完整显示结构如下:

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

    结果如下显示:

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

    结果如下:

  3. 集成邮件配置

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



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









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

构建状态 - ${BUILD_STATUS}


构建信息


  • 项目名称 : ${PROJECT_NAME}

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

  • 触发原因: ${CAUSE}

  • 构建日志: ${BUILD_URL}console

  • 变更集:${JELLY\_SCRIPT,template="html"}
  •                 <!-- 下面是报告的位置,根据自己项目要求填写 -->  
                    <li>SummaryReport:${FILE, path="D:/demo/log/html/SummaryReport.html"}  







jmeter相关配置

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

csv    &  xml

  1. 简单结构目录如下
  2. 修改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

  1. 文件目录结构

    build文件详细内容如下:


























    <copy todir="${jmeter.result.html.dir}">  
        <fileset dir="${jmeter.home}/extras">  
            <include name="collapse.png"/>  
            <include name="expand.png"/>  
        </fileset>  
    </copy>  
</target>  
<path id="lib\_classpath">  
    <fileset dir="${basedir}/">  
        <include name="mail\*.jar" />  
        <include name="activation\*.jar" />  
        <include name="commons-email\*.jar" />  
        <include name="ant-contrib\*.jar" />  
    </fileset>  
</path>  
<!--target name="mail"><for list="hanxm@thunisoft.com" param="tmp" ><sequential><echo>message @{tmp}</echo><mail mailhost="smtp.thunisoft.com" mailport="25" ssl="false" subject="ant mail" messagemimetype="text/html" user="zhangjn" password="\*\*\*\*\*\*\*"  tolist="@{tmp}"><from address="zhangjn@thunisoft.com" /><fileset dir="${jmeter.result.html.dir}"><include name="\*.html" /><include name="\*.png" /></fileset><message>支持多人同时发邮件!!<br /><br /></message></mail></sequential></for></target-->  

  1. jmeter.properties文件配置内容
    文件地址:
  • 设置运行机器为本机
  • 设置禁用ssl
  • 设置报告方式为xml

邮件报告乱码处理

  1. 进入jenkins安装显示目录如下:
  2. 修改指定编码运行jenkins

    运行完以后记得重启生效: https://localhost:8080/restart
  3. 查看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配置


























    <copy todir="${jmeter.result.html.dir}">  
        <fileset dir="${jmeter.home}/extras">  
            <include name="collapse.png"/>  
            <include name="expand.png"/>  
        </fileset>  
    </copy>  
</target>  
<path id="lib\_classpath">  
    <fileset dir="${basedir}/">  
        <include name="mail\*.jar" />  
        <include name="activation\*.jar" />  
        <include name="commons-email\*.jar" />  
        <include name="ant-contrib\*.jar" />  
    </fileset>  
</path>  
<!--target name="mail"><for list="xxx@thunisoft.com" param="tmp" ><sequential><echo>message @{tmp}</echo><mail mailhost="smtp.thunisoft.com" mailport="25" ssl="false" subject="ant mail" messagemimetype="text/html" user="xxx" password="\*\*\*\*\*\*\*"  tolist="@{tmp}"><from address="xxx@thunisoft.com" /><fileset dir="${jmeter.result.html.dir}"><include name="\*.html" /><include name="\*.png" /></fileset><message>支持多人同时发邮件!!<br /><br /></message></mail></sequential></for></target-->  

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" />