jenkins+postman+newman环境搭建自动化测试
全栈工程师开发手册 (作者:栾鹏)
架构系列文章
有什么问题可以直接参考官网: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来验证一把,希望你能运行成功
更多推荐
所有评论(0)