搭建环境之前需要先理清楚各个环境的依赖关系,jenkins只支持windows命令行跟linux shell环境执行构建命令,而postman的测试脚本不能直接在命令行或shell环境执行,postman脚本需要有自己的执行环境,叫newman;而postman是基于javascript语言,所以newman环境还依赖于javascript的环境nodejs;所以整个过程是先搭建nodejs构造javascript环境,在搭建newman构造postman脚本运行环境,在集成到jenkins上;
安装nodejs
下载nodejs,地址如下
https://nodejs.org/en/
安装nodejs,只需要下一步,直至完成,完成后,在命令提示符框中查看node 和npm的版本
安装newman
在npm安装成功的基础上,我们再安装newman
输入:npm install newman -global
完成后查看版本信息:newman --version
成功弹出来,说明安装成功了
在postman中导出用例
将postman中已经写好断言的用例导出,我选择的这个用例很简单,访问百度首页,并断言状态值是200,步骤如下
点击所选用例右侧的三个点,选中其中的export进行导出,导出选项中选择默认即可,点击 export后会弹出让你选择位置的窗口,放在你希望的位置,是个json文件,我放在D盘根目录下
导出成功后,可以用命令行执行看下效果,进入到D盘(即json文件存放的地方),输入:newman run 文件名 然后回车
执行的结果如下,说明断言成功,接下来我们用 jenkins实现这样的效果
使用jenkins执行
因为我之前安装过jenkins,所以下面直接用,后面会补充安装这块内容。
输入本地ip:8080,可以打开已经启动的jenkins页面
1.新建一任务,类型选自由风格,填写任务名后点击确定
2.填写描述、选择构建方式和命令(这里的命令和我们在命令行里输入的一样)
完成后点击 立即构建 ,其实就是开始运行的意思
构建完成后,发现失败了,点击构建记录 会跳转到下图,点击 控制台输出
其中,路径都是正确的 ,和我们在cmd中执行的一致,可是却提示 “newman 不是内部或外部命令,也不是可运行的程序”
当用命令执行时正常,使用jenkins执行命令时报错,有两个解决方法:
方法一
因为Jenkins的工作环境下与windows的默认环境有所区别,我们只需要配置一下Jenkins的环境变量即可
系统管理->管理节点->选择需要使用的主机->配置从节点
新建一个键值对列表,键名PATH,把npm和nodejs的路径放进来即可
其中的npm与nodejs的路径不在同一个目录下,nodejs安装的路径在 安装过程中能看到,我这里是C:\Program Files\nodejs
而npm 建议同学们可以在C盘搜索npm ,我就是这样找到的,路径是C:\Users\YuGer\AppData\Roaming\npm
配置完成后,一定要记得重启,在网址:8080后加上 /restart
方法二:
不需要设置节点管理
执行json文件前,需进入到npm目录中,比如我的npm路径是C:\Users\YuGer\AppData\Roaming\npm,jenkins的工作区也在C盘,所以我需要使用c\ 来到根目录,即批处理命令中这样写:
cd\
cd C:\Users\YuGer\AppData\Roaming\npm
newman run d:\test.postman_collection.json
构建后状态是成功
解决乱码问题
执行成功后遇到了乱码问题
网上搜了一圈,找到了解决方案
1.在 jenkins--系统管理--系统配置中,勾选环境变量,输入下图键值对
键:JAVA_TOOL_OPTIONS
值:-Dfile.encoding=UTF-8
2.在 我的电脑 右击--属性-高级系统设置,添加一环境变量,和上面的一样。
再重新构建,这时日志中不会出现乱码了
持续集成可以用到哪些地方?
1)冒烟测试
将所测项目的主流程用例编写后,放到jenkins中,这样每次提测后(主流程未修改)就可以直接运行该任务,看该版本是否能通过冒烟测试
2)造数据
项目中有时候会需要一些测试数据,而这样的测试数据往往需要在页面上操作好多页面才能得到,这时也可以将接口在postman中写好后,放在jenkins中来执行
3)……
其他用处我现在还没想好,原谅我的目光短浅,才刚刚接触 jenkins 她的优点还需要时间来探索