Postman接口自动化之Jenkins创建job

3 篇文章 0 订阅
1 篇文章 0 订阅

这是之前搞的接口自动化方案,已经在业务测试中实现了使用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的配置完成,构建时的页面如下:

这是邮件发出来的效果: 

这是打开的测试报告:

 展开后的效果:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PostmanJenkins都是常用的工具,可以用于接口自动化测试。Postman是一个强大的API测试工具,可以用于测试API的功能、性能和安全性。Jenkins是一个开源的持续集成工具,可以用于自动化构建、测试和部署应用程序。 在接口自动化测试中,可以使用Postman编写测试脚本,然后将脚本集成到Jenkins中,实现自动化测试。通过Jenkins的构建触发器,可以定期运行测试脚本,自动化地测试API的功能和性能。 使用PostmanJenkins进行接口自动化测试,可以提高测试效率,减少测试成本,同时也可以提高测试的准确性和可靠性。 ### 回答2: PostmanJenkins都是一些高度流行的工具,可以使用它们来实现接口自动化测试。Postman是一款功能强大的API测试工具,它可以让开发人员更加方便地测试API,并且它还支持多种请求类型和状态码验证,另外,它还可用于开发团队之间的协作和数据共享。而Jenkins则是一款常用的自动化持续集成工具,通过它,可以自动构建,测试和部署软件,从而实现快速迭代软件,并确保交付的软件质量保持高水平。 将PostmanJenkins集成可以实现在Jenkins中自动运行Postman集合,并进行自动化接口测试。首先,需要将Postman集合中的测试脚本导出为json格式。然后,在Jenkins中安装插件并配置相应的场景,例如调用Postman的命令行工具。接下来,可以使用Jenkins的构建功能运行导出的json文件,运行集合并自动化执行测试脚本。通过此过程,可以规范化接口测试流程,并大大提高测试效率和减少测试时间成本。 最重要的是,所有自动化执行的测试结果都会被记录在Jenkins中,并可以随时查看。这对于接口测试的关键部分是非常重要的,我们可以理解如下:一个API开发周期通常是依赖于反复的本地调试和手动测试,这些过程通常是人为的和非可持续的。而自动化接口测试不仅可以更快地发现和排除问题,而且还可以大大增加测试的可持续性和可重复性。因此,结合PostmanJenkins可以有效地提高团队的接口测试质量和效率。 ### 回答3: Postman是一个流行的API开发和测试工具,而Jenkins是一个流行的持续集成/持续交付(CI/CD)工具。将这两者结合在一起,可以实现自动化接口测试,从而提高软件开发的效率和提高软件质量。 首先,用户可以将Postman集合(collection)中的测试脚本导入到Jenkins中,然后在Jenkins创建一个job来运行这些测试脚本。每次进行构建时,Jenkins都会运行当前代码版本的自动化测试。这样,可以通过自动测试来检测代码更改是否会影响原有的API接口,并在构建失败时捕获问题。 使用PostmanJenkins进行接口自动化测试,还有几个优势。一是可以提高软件开发的效率,因为在开发过程中,可以节省用于手动测试的时间。二是可以减少人为错误,自动化测试不仅会比手动测试更快和更准确,而且也会减少测试人员在构建过程中发生误操作的机会。三是帮助确保代码质量,自动化测试确保新代码的更改不会影响已存在的API接口,并在构建失败时快速捕获问题,从而提高软件质量。 在使用PostmanJenkins进行接口测试时,还需要注意一些问题。首先是确保使用最新的API文档,保证测试用例的正确性。其次,需要注意脚本的可维护性,尽可能使测试脚本容易维护和扩展。最后,要确保测试环境的可重复性,测试环境应该在每次测试运行之前进行复位和重置,以避免测试结果被旧状态的变量或状态污染。 总之,使用PostmanJenkins进行接口自动化测试可以提高软件开发的效率和质量,但需要注意一些问题。相信在实践中,这种方法可以帮助软件开发人员更快更准确地检测软件中的问题,并为客户提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值