全栈工程师开发手册 (作者:栾鹏)
架构系列文章


有什么问题可以直接参考官网:https://www.getpostman.com/docs/v6/postman/collection_runs/command_line_integration_with_newman

前提

搭建环境之前需要先理清楚各个环境的依赖关系,jenkins只支持windows命令行跟linux shell环境执行构建命令,而postman的测试脚本不能直接在命令行或shell环境执行,postman脚本需要有自己的执行环境,叫newman;而postman是基于javascript语言,所以newman环境还依赖于javascript的环境nodejs;所以整个过程是先搭建nodejs构造javascript环境,在搭建newman构造postman脚本运行环境,在集成到jenkins上;

安装nodejs:

因为我之前也是将jenkins搭建到服务器上的,所以我也将其他的环境也搭建在服务器上,我们服务器的linux系统版本是ubuntu 4.0 64位,安装步骤如下:

1、下载安装包,在node官网下载:

这里写图片描述

下载下来的是一个.tar.xz结尾的文件node-v8.12.0-linux-x64.tar.xz,将这个文件用scp上传到服务器中,

也可以自己在https://nodejs.org/dist/中选择下载,或者使用下面的命令直接在docker里面下载版本.

wget -c wget -c https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-x64.tar.gz   下载
tar -zxvf node-v9.9.0-linux-x64.tar.gz     解压
mv node-v9.9.0-linux-x64 node

2、linux下解压tar.xz文件

使用xz -d node-v8.12.0-linux-x64.tar.xz 解压成 node-v8.12.0-linux-x64.tar  
再用tar -xvf node-v8.12.0-linux-x64.tar解压,获得node-v8.12.0-linux-x64;  
目录名称太长不吉利,所以改名 mv node-v8.12.0-linux-x64 node,得到最终的node文件目录;

3、初识node文件

下载的这个版本的node有个好处,就是文件都是编译好的,也就是说在解压后的node目录中的bin目录中已经存在node文件和npm文件,可以进到./node/bin目录下确认,在bin目录下执行:

./node --version

结果返回该node的版本v8.12.0;
  
这个时候的node跟npm只是局部的执行文件,只能在bin目录下调用,需要设置为全局的;

设置全局的方法很简单,就是在/usr/local/bin目录下分别创建一个link指向node/bin目录下的node文件跟npm文件;

但是我搭建的时候遇到的问题是,系统中已经被安装了node,但是因为node版本太低,不能运行newman,要运行newman则node版本最低为4.xx;

4、判断是否已经安装了node

在./node/bin目录之外,执行node --version,如果有返回版本号,并且版本号还大于4.x.x,那么恭喜node不用重新装了,如果没有返回那直接执行创建link链接,如果有返回版本号,但是版本号还低于4.x.x,那么需要卸载已安装的node,删除已经存在的link链接;  
linux下删除安装的node:

sudo apt-get autoremove --purge node

进入到/usr/local/bin目录下,删除link链接:

sudo rm -f node  
sudo rm -f npm  

5、创建新的link链接
  原有的node被卸载,link也被删除,现在系统中就只有新装的node跟npm,创建link链接,将node跟npm全局化:

    ln -s /soft/node/bin/node /usr/local/bin/node
    ln -s /soft/node/bin/npm /usr/local/bin/npm
    ln -s /soft/node/bin/node /usr/bin/node
    ln -s /soft/node/bin/npm /usr/bin/npm
    npm i -g npm    升级最新版的npm

其中/soft/node/bin/node为你自己系统中node文件的绝对路径,/usr/local/bin/node为新创建的node链接的绝对路径,npm同理;
  执行完成后,在其他目录下执行node --version,应该可以返回当前新安装的node版本号;
  至此,nodejs环境就安装完成了;

安装newman:

很简单,在你想要安装newman的目录下,执行:

npm -g install newman

系统会自动安装,安装完成后,会在node的目录下面建立软链接,

ln -s /soft/node/bin/newman /usr/local/bin/newman
ln -s /soft/node/bin/newman /usr/bin/newman

可以到/usr/local/bin目录下查看,自动创建了newman的link链接,指向的文件也是/soft/node/lib/node_modules/newman/bin/目录下的newman.js文件,即会在/soft/node/lib/node_modules/目录下自动生成newman文件;

在任意目录下,执行:newman --version  执行结果返回newman版本号,则newman安装完成;
目前我的newman版本号是4.1.0

导出postman文件:

假定已经在postman中添加好了api请求,并都设置好了相应的环境变量以及test script,
书写格式可以参考:https://blog.csdn.net/luanpeng825485697/article/details/83507112

如下图选择需要的api collection,导出json文件,请重新命名一个好听的文件名,因为默认的文件名真的是又臭又长,如我的文件名:postman_collection.json  这里写图片描述

之前说过对于设置了环境变量的api,导json文件的同时,需要导出环境变量文件,否则api中的变量没有意义,如下图,选择相应的环境,导出环境变量文件,改名:environment.json

在这里插入图片描述

手动跑脚本:

将导出的api的json文件和环境变量的文件都上传到服务器系统中适当的目录下,在该目录下执行如下命令:

newman run collection.json -e environment.json

系统就会自动运行api的json文件,并返回执行结果;

相信到这一步,再怎么集成到jenkins就已经很明确了,因为系统中已经有了newman环境,在jenkins相应的任务中,构建命令选择linux shell,先切换到json文件所在的目录,再执行newman的命令,点击构建,在构建日志中就能看到每个api的测试结果,以及每个断言的判定结果;

结合前面的github的push操作触发jenkins构建postman的api脚本运行,这一些列的设置都已经结束,可以通过实际操作github来验证一把,希望你能运行成功

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐