接口测试实战接口自动化之持续集成(postman+newman+jenkins)

Posted 黑黑白白君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试实战接口自动化之持续集成(postman+newman+jenkins)相关的知识,希望对你有一定的参考价值。

部分前情:

《【接口测试实战(零)】接口测试简介》

《【接口测试实战(一)】搭建接口测试环境》

《【接口测试实战(二)】根据接口文档使用postman测试》

《【接口测试实战(五)】接口测试之断言实战》

《【接口测试实战(七)】postman之变量与沙盒实战》

《【接口测试实战(八)】postman之Collections和数据驱动测试实战》

《【接口测试实战(九)】接口测试之cookie实战》

《【接口测试实战(十)】接口测试之token鉴权实战》



1)持续集成

持续集成(Continuous integration)指的是,频繁地(一天多次)将代码集成到主干。

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定时任务,以完成测试脚本的定时运行。

  • 编写bat脚本

    将newman运行测试集的命令编写为bat脚本保存

  • 设置定时任务

    在计算机上右键->管理,在弹出菜单里的任务计划程序里创建定时任务配置执行。

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)的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins UI与接口自动化测试持续集成实战

接口测试执行工具Postman:模拟请求用例执行断言批量运行用例简单持续集成

接口测试实战postman之Collections和数据驱动测试实战

接口测试实战postman之变量与沙盒实战

这个应该是全网最全的接口测试工具之postman

接口测试实战接口测试之token鉴权实战