基于Jenkins+Newman+Postman的接口自动化测试设计

前言

众所周知postman作为http接口测试工具有非常大的受众。本文介绍下如何用postman+jenkins+newman实现完全自动化的接口测试及测试结果查询。

Postman介绍

很好用的一款API/接口功能测试工具,很方便的塞数据,查看响应,设置检查点/断言,能进行一定程度上的自动化测试,但是不要指望它能代替你进行性能测试,一次批量执行太多太久的话容易崩溃掉。

Newman介绍

Newman 是 Postman 推出的一个 nodejs 库,直接来说就是 Postman 的json文件可以在命令行执行的插件。
Newman 可以方便地运行和测试集合,并用之构造接口自动化测试和持续集成。

自动化测试架构设计

  • 测试人员通过postman编写测试case
  • 编写完成过后通过本地测试
  • 导出测试用例到json文件中
  • 将导出用例文件上传到gitlab
  • 触发jenkins构建
  • 通过jenkins pipelilne完成测试
  • 将测试结果保存到指定html中
  • 通过jenkins插件浏览测试结果

 jenkinsfile

 通过编写Jenkinsfile实现流水线

node {
   stage('prepare') {
       checkout([$class: 'GitSCM', branches: [[name: 'origin/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '*****************************', url: '*******.git']]])
        path = '/var'
        sh "newman run Collection.postman_collection.json  -r html --reporter-html-export ${path}/out.html"

   }
   stage('build') {
      publishHTML (target : [allowMissing: false,
       alwaysLinkToLastBuild: true,
       keepAll: true,
       reportDir: path,
       reportFiles: 'out.html',
       reportName: 'PostMan Reports',
       reportTitles: 'PostMan Report'])
   }


}

问题总结

  • 1. jenkins 执行 newman 超时导致jenkins失败

            解决方案:jenkins pipline增加超时设置  timeout(time: 30, unit: 'MINUTES'){}

  • 2. newman cli命令执行完exit code 1 导致jenkins失败 

           解决方案:newman cli增加 -x , --suppress-exit-code参数 强制 shell命令推出返回 0

总结

通过以上集成方式可以方便的搭建整个接口自动化测试方案。

后续继续分享 前端自动化架构实现方案

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值