Jenkins:集成Jmeter接口测试(Freestyle Project)

依赖工具

服务器:配置Jenkins、Maven、Java环境
Jenkins插件:HTML Publisher plugin,Startup-trigger,Groovy

实现流程

  1. 在Jenkins创建一个Maven项目(依赖插件:Maven Integration plugin
  2. 勾选参数化构建过程,并输入:
key value
名称 targetTagName
默认值 qt_fns
描述 JMX文件的文件名(不带后缀),用作:1、运行该文件名的脚本,如:groovy.jmx2、生成该文件名的报告,如:groovy.html
img
  1. 源码管理配置
    img

  2. 配置构建触发器
    img

  3. 配置 Build 内容,输入:

key value
Root POM pom.xml
Goals and options clean verify -D jmxName="${targetTagName}"
img
  1. 配置 Post Steps,选中 Run regardless of build result ,添加 执行 shell 步骤,并输入
grep 'class="Failure"' ./target/jmeter/html/${targetTagName}.html && exit 1 || echo "Run test successed"

img

  1. 添加构建后操作:Publish HTML reports(依赖插件:HTML Publisher plugin),并输入:
key value
HTML directory to archive ./target/jmeter/html/
Index page[s] ${targetTagName}.html
Report title HTMLReport
img
  1. 添加构建后操作:Editable Email Notification,并输入
    | Project Recipient List(收件人邮箱) | liangrongfeng@7tao.net |
    | ------------------------------------ | ------------------------------------------------------ |
    | Content Type | 选中:HTML(text/html) |
    | Default Subject | $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS! |
    在Default Content输入:
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
    <div width="95%" cellpadding="0" cellspacing="0"
        style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <div>本邮件由系统自动发出,无需回复!
            <br />
            <br>各位同事,大家好,以下为${PROJECT_NAME }自动化测试项目构建信息
            <br />
            <div>
                <font color="#CC0000">构建结果 - ${BUILD_STATUS}</font>
            </div>
        </div>
        <div>
            <h4>
                <font color="#0B610B">构建信息</font>
            </h4>
            <hr size="2" width="100%" />
            <ul>
                <li>项目名称 :${PROJECT_NAME}</li>
                <li>构建编号 :第${BUILD_NUMBER}次构建</li>
                <li>触发原因: ${CAUSE}</li>
                <li>构建状态: ${BUILD_STATUS}</li>
                <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a>
                <li>工作目录: <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                </li>
                <li>构建 Url  : <a href="${BUILD_URL}">${BUILD_URL}</a>
                </li>
                <li>项目 Url  : <a href="${PROJECT_URL}">${PROJECT_URL}</a>
                </li>
            </ul>
        </div>
        <div>
            <h4>
                <font color="#0B610B">测试报告</font>
            </h4>
            <hr size="2" width="100%" />
            <b>点击查看测试报告: <a href="${PROJECT_URL}${BUILD_NUMBER}/HTMLReport">${PROJECT_URL}${BUILD_NUMBER}/HTMLReport</a></b>
        </div>
https://jenkins.testops.top/job/jmeter3/28/APITest/
        <div>
            <h4>
                <font color="#0B610B">构建日志 (最后20行):</font>
                <hr size="2" width="100%" align="center" />
            </h4>
        </div>
        <div>
            <ul>
                <li>${BUILD_LOG, maxLines=22}</li>
            </ul>
        </div>
    </div>
</body>
</html>
  1. 需要在Jenkins系统配置中,配置发送邮件信息,如:
    img

嵌入当前自动发布流程

  1. FNS项目在Jenkins构建成功后,触发『测试项目』执行
    img
  2. 执行后,生成测试报告,样式如下
    img
  3. 接口测试失败,可发送邮件,成功则不发送
    img

其他问题

打开报告后不显示样式

如:

image-20210609115452923

解决方法:

  1. 安装Startup-trigger和Groovy插件
    image-20210609142513096
    img

  2. 在Job配置页面,构建触发器,勾选Build when job nodes start
    img

  3. 在Job配置页面,增加构建步骤Execute system Groovy script,在Groovy Command中输入下面命令,即可

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

img

posted @ 2021-06-09 14:27  Feng1024  阅读(335)  评论(0编辑  收藏  举报