Postman接口自动化之Jenkins创建job

这是之前搞的接口自动化方案,已经在业务测试中实现了使用postman编写接口脚本,通过GitHub+Jenkins+email +html report实现了接口自动化,现在分块整理一下。

Jenkins创建job

1、Job命名

例如,xxxAPI_auto

2、设置账号权限(即,启用项目安全)

可以给不同的账号设置不同的账号,例如,给测试组的其他成员设置:

Build:构建权限

Cancel:取消任务权限

Configure:配置job的权限

Workspace:工作空间的使用权限

3、添加构建任务时的构建选项,例如,大区选择,可以选择中国区、北美地区、欧洲区等 

4、添加时间参数,这里主要是用在邮件标题上,标识此次接口测试是什么时候跑的,runDateAsTitle是参数名,后面会引用到,

Date Format是时间格式,

LocalDateTime.now()是Jenkins提供的取当前时间的方法,

 5、设置远程的代码仓库,例如,GitHub的远程仓库地址,之后选择对应的认证

 6、设置触发器,例如,构建时触发

 7、设置构建环境

8、 构建的时候在控制台打印时间戳、设置build name为: #${BUILD_NUMBER}_${BUILD_USER_ID}

9、构建脚本,例如,执行postman接口脚本的命令,以及其他需要实现的功能,例如,将运行完成的接口测试报告放到s3上,具体如下:

#!/bin/bash

# 执行api脚本
newman run ./xxxZeroAPI.postman_collection.json -e ./${region}.postman_environment.json -n 1 -r htmlextra --reporter-htmlextra-export ./results/${region}_${runDateAsTitle}.html --reporter-htmlextra-title "xx-api-auto" --reporter-htmlextra-browserTitle "xx-api-auto"

set -x

pwd
whoami

echo "BUILD_USER_ID           : ${BUILD_USER_ID}"
echo "BUILD_NUMBER            : ${BUILD_NUMBER}"

TIMESTAMP_NS=`date +%s%N`
TIMESTAMP=${TIMESTAMP_NS:0:13}

# 生成&清空 jenkins 环境变量
echo "" > ./jenkins.properties

# 上传到S3
OSS_BUCKET="xxxxlife-qa"
OSS_PATH="report/xx-api-auto"
OSS_REGION="cn-northwest-1"
OSS_HOST="https://${OSS_BUCKET}.s3.${OSS_REGION}.amazonaws.com.cn"

FILE_LOCAL="./results/${region}_${runDateAsTitle}.html"
FILE_OSS_NAME="${region}_${runDateAsTitle}.html"
FILE_OSS_KEY="s3://${OSS_BUCKET}/${OSS_PATH}/${FILE_OSS_NAME}"
FILE_OSS_URL="${OSS_HOST}/${OSS_PATH}/${FILE_OSS_NAME}"

aws s3 cp ${FILE_LOCAL} ${FILE_OSS_KEY} --region ${OSS_REGION}

if [ $? != 0 ]; then
    exit 1
fi

NOTIFY_TITLE="${region}大区 xx-api-auto report ${runDateAsTitle}"
BUILD_OUTPUT_FILE="${FILE_OSS_URL}"

# email一下
echo "" > ./jenkins.properties
echo "NOTIFY_TITLE = ${NOTIFY_TITLE}" >> ./jenkins.properties
echo "BUILD_BRANCH = " >> ./jenkins.properties
echo "BUILD_ENV = " >> ./jenkins.properties
echo "BUILD_OUTPUT_FILE = ${FILE_OSS_URL}" >> ./jenkins.properties
echo "BUILD_OUTPUT_SYMBOL = " >> ./jenkins.properties
echo "BUILD_OUTPUT_QRCODE = " >> ./jenkins.properties


10、设置Groovy script,选择:Groovy command,Groovy Script:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

 

 11、设置./jenkins.properties路径

12、邮箱设置:

因为测试报告是html格式的,但是邮箱对html的支持不好,导致一些内容不能完全展示,所以在测试报告中展示测试报告在s3上的链接,这样如果在电脑上打开,会调用浏览器,会很好的展现测试报告,在手机上也可以打开测试报告

<!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">    
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
        <tr>    
            本邮件由系统自动发出,无需回复!<br/><br/>
        </tr>

        <tr>    
            <td>  
                <br />
                <b><font color="#21A65A">构建产物</font></b>    
                <hr size="2" width="100%" align="center" />
            </td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>测试报告: <a href="${BUILD_OUTPUT_FILE}">${BUILD_OUTPUT_FILE}</a></li> 
                </ul>
            </td>
        </tr>

        <tr>    
            <td>  
                <br />
                <b><font color="#21A65A">构建信息</font></b>    
                <hr size="2" width="100%" align="center" />
            </td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>项目名称: ${PROJECT_NAME}</li>    
                    <li>构建状态: ${BUILD_STATUS}</li> 
                    <li>触发原因: ${CAUSE}</li>    
                    <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                    <li>项目地址: <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
                </ul>
            </td>
        </tr>

    </table>    
</body>

</html>

到此Jenkins 上job的配置完成,构建时的页面如下:

这是邮件发出来的效果: 

这是打开的测试报告:

 展开后的效果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值