postman+newman+jenkins持续集成搭建

搭建环境之前需要先理清楚各个环境的依赖关系,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的版本

查看nodejs版本

安装newman

在npm安装成功的基础上,我们再安装newman

输入:npm install newman -global

完成后查看版本信息:newman --version

成功弹出来,说明安装成功了

查看newman版本

在postman中导出用例

将postman中已经写好断言的用例导出,我选择的这个用例很简单,访问百度首页,并断言状态值是200,步骤如下

点击所选用例右侧的三个点,选中其中的export进行导出,导出选项中选择默认即可,点击 export后会弹出让你选择位置的窗口,放在你希望的位置,是个json文件,我放在D盘根目录下


步骤1


步骤2

导出成功后,可以用命令行执行看下效果,进入到D盘(即json文件存放的地方),输入:newman run 文件名     然后回车

执行的结果如下,说明断言成功,接下来我们用 jenkins实现这样的效果

cmd中执行newman

使用jenkins执行

因为我之前安装过jenkins,所以下面直接用,后面会补充安装这块内容。

输入本地ip:8080,可以打开已经启动的jenkins页面

1.新建一任务,类型选自由风格,填写任务名后点击确定

2.填写描述、选择构建方式和命令(这里的命令和我们在命令行里输入的一样)

创建任务
配置任务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


重启jenkins

方法二:

不需要设置节点管理

执行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.在 我的电脑 右击--属性-高级系统设置,添加一环境变量,和上面的一样。

再重新构建,这时日志中不会出现乱码了

jenkins中配置环境变量



windows系统中配置环境变量


持续集成可以用到哪些地方?

1)冒烟测试

将所测项目的主流程用例编写后,放到jenkins中,这样每次提测后(主流程未修改)就可以直接运行该任务,看该版本是否能通过冒烟测试

2)造数据

项目中有时候会需要一些测试数据,而这样的测试数据往往需要在页面上操作好多页面才能得到,这时也可以将接口在postman中写好后,放在jenkins中来执行

3)……

其他用处我现在还没想好,原谅我的目光短浅,才刚刚接触 jenkins 她的优点还需要时间来探索

你可能感兴趣的:(postman+newman+jenkins持续集成搭建)