前言
众所周知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**
总结
通过以上集成方式可以方便的搭建整个接口自动化测试方案。
后续继续分享 前端自动化架构实现方案
版权归原作者 systemup_v1 所有, 如有侵权,请联系我们删除。