postman+newman+jenkins持续集成

用现有开源工具搭建一套轻量级接口自动化测试框架,集成了报告模板和Email发送;

环境准备:

测试系统macOS

1、本地jenkins环境
建议jenkins官网下载macos对应版本,[官网地址](https://jenkins.io/zh/)
2、安装postman软件
建议官网下载最新版本,[官网地址](https://www.getpostman.com/)
3、注册github账号,用于存放脚本
4、安装newman插件
建议命令安装 npm或者brew
1
$ npm install -g newman

postman案例导出

导出两个json文件

  • 注“(有用到环境变量的可以导出,如不需要可以不导出)”
    1、collections导出步骤–>选中collections–>点击右下角三个点–>选中Export 确定导出即可
    2、环境变量导出步骤若你的脚本中存在环境变量,那么也需要将环境变量一并导出为json格式
    导出方法如下,点击postman右上角设置按钮,按照下面操作步骤导出即可;
    3、生成的两个json格式的文件,一个为案例文件一个为环境变量文件,将文件提交到github项目上面。
    参考我的项目格式:
    生成报告的模板有很多,也可以自定义,我这个是在github上找的,[我的项目地址](https://github.com/MickeyTesterGao/postman_autotest/)

jenkins配置

jenkins常用命令

(1)先说两个jenkins常用命令
启动:
$ sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
停止:
$ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
(2)新建一个jenkins项目,用Freestyle project,项目名字随便起

jenkins项目配置

(1)配置git
这块不详细说了,并不难,之前了解过jenkins的都应该会配置;
(2)配置shell脚本

  • 注:仅供参考,环境不同,脚本也会不一样
    1
    2
    3
    #!/bin/bash -ilex
    cd /Users/Shared/Jenkins/Home/workspace/postman_api_auto/
    newman run portApiTest.postman_collection.json -e portapitest.postman_environment.json --reporters cli,html --reporter-html-template templates/htmlreqres.hbs --reporter-html-export newman/index.html portApiTest.postman_collection.json

(3)增加html报告
需要引入HTML插件名称HTML_Publisher,直接在Manage Jenkins–>Manage Plugins 里面下载,你会发现下载失败,由于国内有墙的原因,可以换个
国内镜像下载:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

此时部署一下项目,会发现左侧菜单栏多了一栏html report

点击进去你会发现样式不显示,可能会存在这种情况,解决方式如下:
安装Groovy插件,重启jenkins
使用管理员账号登录jenkins,进入项目配置页 ==> Post Steps ==> 添加Execute system Groovy script ==> 输入 System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”) ==> 保存
再重新部署看效果

(4)配置发送邮件
首先配置公共信息配置,我以QQ邮箱为例,首先manage jenkins==>configure system ==>extended E-mail Notification

下面的Default Triggers需要勾选Failure—Any和Success
邮件通知配置:

之后应用–>保存
(5)项目层级配置
配置构建后操作,增加Editable Email Notification
需要更改的地方:
Prohject Recipient List 填写你的邮箱
Content Type 选择HTML(text/html)
Advances Settings 增加Trigger 增加Failure—Any和Success
下面我以Success为例说一下里面的配置

说一下附件取的路径,默认是workspace的job下面,也就是workspace/项目名称,
我的shell里面建立了一个newman的文件来存放测试报告;

最后一步

重新部署,邮箱就能收到测试报告了;