Jenkins+postman发送邮件测试报告及附件
2021-12-06 14:11 何小六soso 阅读(685) 评论(0) 编辑 收藏 举报一、Newman环境安装
Newman 是 Postman 推出的一个 nodejs 库,直接来说就是 Postman 的json文件可以在命令行执行的插件。
Newman可以方便地运行和测试集合,并用之构造接口自动化测试和持续集成。
1、使用nodejs安装newman,首先安装node
进入/usr/local 目录
[root@glhr-test1 ~]# cd /usr/local/ [root@glhr-test1 local]#
2、在/usr/local目录下载node安装包
[root@glhr-test1 local]# wget https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-x64.tar.xz 100%[==============================================================================================================================>] 13,043,892 2.00MB/s in 8.4s
3、解压tar包
[root@glhr-test1 local]# tar -xvf node-v10.16.2-linux-x64.tar.xz
4、为了方便配置环境变量将node重命名
[root@glhr-test1 local]# mv node-v10.16.2-linux-x64 node
4、配置环境变量
[root@glhr-test1 local]# vi /etc/profile # 在文件末尾添加 export NODE_HOME=/usr/local/node export PATH=$NODE_HOME/bin:$PATH [root@glhr-test1 local]# vi /etc/profile #export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$JAVA_HOME/bin:$M2_HOME/bin # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. export JAVA_HOME=/usr/local/src/jdk1.8.0_221 export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export ANT_HOME=/usr/local/apache-ant-1.9.16 export PATH=$ANT_HOME/bin:$PATH export JMETER_HOME=/opt/apache-jmeter-5.2.1 export PATH=${JMETER_HOME}/bin:$PATH #添加一项两行环境变量 export NODE_HOME=/usr/local/node export PATH=$NODE_HOME/bin:$PATH pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } ....
5、启用环境变量
[root@glhr-test1 local]# source /etc/profile
6、检查npm和node是否安装成功
[root@glhr-test1 local]# node -v v10.16.2 [root@glhr-test1 local]# npm -v 6.9.0 [root@glhr-test1 local]#
7、成功安装nodejs后开始安装newman
[root@glhr-test1 local]# npm install -g newman #会有两个警告:一个5.1.5库弃用,旧版本使用math.random()这个方法时会出现问题 npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. /usr/local/node/bin/newman -> /usr/local/node/lib/node_modules/newman/bin/newman.js + newman@5.3.0 added 129 packages from 187 contributors in 114.258s
8、检查newman是否安装成功
[root@glhr-test1 local]# newman -v 5.3.0
二、接口脚本调试
1.准备接口
可以使用本地接口或使用天气接口:http://api.k780.com/?app=weather.future&weaId=1&&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json
2、调试在Postman中调试接口测试脚本
- 创建文件夹并命名为Newman_Test
- 在文件夹Newman_Test上右键点击,选择AddRequest添加New Request请求并重命名
- 测试脚本,将天气接口连接复制到请求中,get、post请求均可以请求成功(也可以将接口的url保存到环境变量中)
- 添加脚本断言
- 将脚本导出到本地
三、使用Newman运行Postman脚本
1、将保存的postman脚本放入到 /usr/local/postman_script目录下,也可以放在任意脚本目录,运行时指定绝对路径即可
[root@glhr-test1 newman]# cd /usr/local/ [root@glhr-test1 newman]# pwd /usr/local/node/lib/node_modules/newman/postman_script
2、使用newman run 命令执行脚本,必须填写测试脚本的绝对路径 newman run /usr/local/postman_script/Newman_Test.postman_collection.json
[root@glhr-test1 postman_script]# ls Newman_Test.postman_collection.json [root@glhr-test1 postman_script]# newman run /usr/local/postman_script/Newman_Test.postman_collection.json #填写脚本绝对路径
四、使用Jenkins执行postman脚本
1、新建工程
2、新工程命名test并保存
3、选择构建类型,使用 Execute shell 进行构建
4、输入命令后保存
#!/bin/bash -il newman run /usr/local/postman_script/Newman_Test.postman_collection.json
5、点击Build Now构建工程
6、构建成功
7、点击进入控制台输出
五、配置邮件发送测试报告
1、进入项目配置增加构建步骤:
2、填入发送者邮箱(邮件服务器配置),和接收人邮箱。多个接收人使用逗号分隔
3、将下方邮件发送模板拷贝到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"> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> 本邮件由系统自动发出,无需回复!<br/> 各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td> </tr> <tr> <td><br /> <b><font color="#0B610B">构建信息</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <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> <li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li> <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li> <li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li> </ul> <h4><font color="#0B610B">失败用例</font></h4> <hr size="2" width="100%" /> $FAILED_TESTS<br/> <h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4> <hr size="2" width="100%" /> <ul> ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"} </ul> 详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/> </td> </tr> </table> </body> </html>
4、构建,构建后在控制台输出中可以查看脚本执行报告
5、添加报告附件
执行脚本中添加生成报告命令
rm -rf /var/lib/jenkins/workspace/newman/newman/newman*.html # 删除上一次报告 newman run /usr/local/postman_script/Newman_Test.postman_collection.json /usr/local/postman_script/- -r html # 执行测试脚本,并以html格式生成测试报告
6、从工作空间中获取报告并发送
7、构建工程
六、添加定时器
1、在‘构建触发器’下选择Poll SCM(定时构建),并规定24小时执行一次
2、定时器执行规则
七、排坑
服务器无公网域名,Jenkins切勿使用docker安装
- node安装提示找不到:
1、yum install epel-release
2、sudo yum install nodejs
3、node -v .
- 版本太低需要升级:
1、清除npm缓存,执行命令
npm cache clean -f
2、n模块是专门用来管理nodejs的版本,安装n模块
npm install -g n
3、更新升级node版本选择任意一种
n stable // 把当前系统的 Node 更新成最新的 “稳定版本” n lts // 长期支持版 n latest // 最新版 n 10.14.2 // 指定安装版本
4、node -v 查看版本
- Jenkins执行脚本无法访问:
使用sudo,赋予超级管理员权限
- 邮件服务器配置后无法发送邮件:
SMTP端口使用465
邮箱密码使用授权码