接口测试实战接口自动化之持续集成(postman+newman+jenkins)
Posted 黑黑白白君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试实战接口自动化之持续集成(postman+newman+jenkins)相关的知识,希望对你有一定的参考价值。
部分前情:
《【接口测试实战(二)】根据接口文档使用postman测试》
《【接口测试实战(八)】postman之Collections和数据驱动测试实战》
文章目录
1)持续集成
持续集成(Continuous integration)指的是,频繁地(一天多次)将代码集成到主干。
- 具体的介绍和 jenkins 可以参考《【测试实战】持续集成与Jenkins安装和使用》。
2)newman
Newman 是 Postman 推出的一个 nodejs 库,直接来说就是 Postman 的 json文件可以在命令行执行的插件。
- 官方文档:https://www.npmjs.com/package/newman
- Postman使用newman插件完成命令行执行postman脚本,因此如果需要用命令行运行脚本,需要首先安装Newman。
2.1 安装
1、安装nodejs
官网下载地址:http://nodejs.cn/download/,下载之后直接运行安装。
- 安装之后确认环境变量中已经添加了node所在目录,否则手动添加。
- 在cmd中通过node -v 和 npm -v命令确认node环境已经搭建成功。
2、安装newman
完成nodejs安装之后,在命令行中输入npm install newman -g自动完成
newman的安装。
- 验证newman安装成功,使用命令: newman --version
2.2 用Newman执行测试
安装好newman之后,可以通过命令行执行postman测试集中的脚本。
- 官方文档: https://www.npmjs.com/package/newman
- Postman命令行运行文档:https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/
以之前的七日天气接口的数据驱动测试为例,详情可见《【接口测试实战(八)】postman之Collections和数据驱动测试实战》。
1、导出collections、变量
在collection选项菜单中选择export,导出为json文件:
在环境变量中通过导出功能将环境变量导出:
全局变量类似环境变量使用,在使用前,先导出全局变量文件。
2、newman执行collection导出的json文件
通过命令:
-
Newman常用参数:
- -e,–environment 使用环境变量文件或url
- -g,–global 使用全局变量文件或url
- -d,–iteration-data 指定使用的数据驱动文件
- -n 指定测试集循环次数iterations
3、Newman测试报告
Newman提供的测试报告中,常用的包括cli、json和html三种格式,
可以通过-r或者–reporter命令指定所用格式。
- cli格式为在cmd客户端呈现的报告模板,newman默认使用该格式。
- json格式可以导出json格式的报告,通过-r json进行设置,并加上–reporter-json-export参数指定报告生成的路径。
- html格式可以导出html格式的报告,通过-r html进行设置,并加上–reporter-html-export参数指定报告生成的路径。
- 在使用之前需要通过npm install -g newman-reporter-html先完成安装。
C:\\Users\\Facek>newman run C:\\Users\\Facek\\Desktop\\fornewman\\天气api数据驱动.postman_collection.json -e C:\\Users\\Facek\\Desktop\\fornewman\\七日天气接口.postman_environment.json -d C:\\Users\\Facek\\Desktop\\七日天气接口.csv -r json --reporter-json-export C:\\Users\\Facek\\Desktop\\fornewman\\result.json //导出为json格式
C:\\Users\\Facek>newman run C:\\Users\\Facek\\Desktop\\fornewman\\天气api数据驱动.postman_collection.json -e C:\\Users\\Facek\\Desktop\\fornewman\\七日天气接口.postman_environment.json -d C:\\Users\\Facek\\Desktop\\七日天气接口.csv -r html --reporter-html-export C:\\Users\\Facek\\Desktop\\fornewman\\result.html //导出为html
4、定时任务执行脚本
在实现了newman对测试集的命令行运行之后,可以通过编写bat脚本,将其设置为windows定时任务,以完成测试脚本的定时运行。
3)Jenkins持续集成
在已经实现newman通过命令行方式执行postman测试集的基础上,可以方便地在Jenkins上完成持续集成构建。
构建任务完成Jenkins定时执行Newman运行测试集
1、创建自由风格项目:
2、在构建触发器里,配置定时构建选项,指定任务定时执行:
- 五个参数分别代表【分、时、天、月、星期】的周期维度。
3、在构建时,添加构建步骤选择执行windows批处理命令,将newman命令写入即可:
-
*遇到的问题之’newman’ 不是内部或外部命令/ ‘node’ 不是内部或外部命令
- 先确认环境变量是否配置正确
- 如果配置正确了还是报错,则可能是在Jenkins中执行时,默认使用的是windows中的jenkins用户权限,该用户没有newman/node的命令权限,导致提示找不到命令。
- 解决方法:找到jenkins的系统配置–>环境变量,添加到环境变量中:
-
*遇到问题之输出中文乱码:
- 解决方法:在环境变量中,添加一个变量JAVA_TOOL_OPTIONS值为-Dfile.encoding=UTF-8,重启Jenkins。
【部分内容参考自】
- Jenkins_构建任务提示找不到命令的处理方法:https://www.cnblogs.com/testlearn/p/14745092.html
- Postman接口测试实战:Testing学院
以上是关于接口测试实战接口自动化之持续集成(postman+newman+jenkins)的主要内容,如果未能解决你的问题,请参考以下文章
接口测试执行工具Postman:模拟请求用例执行断言批量运行用例简单持续集成