今天为大家带来的是postman+newman+jenkins进行API接口测试的持续集成:

一. postman测试实战

postman测试API接口是通过JavaScript脚本完成测试中的功能, 在请求发起前后实现测试操作.

常用功能: 请求前脚本(pre-request scripts)设置请求前置操作如设置变量等

请求后在tests模块中,对状态码, 响应头, 响应正文等信息进行断言操作

通过console 控制台进行调试

pre-request scripts:

var key=pm.environment.get("key");

获取响应json数据.

pm.response.json();

二.测试套件与数据驱动实战

Runner批量运行测试脚本及组件说明:

Environments 指定测试套件使用的环境变量

Iterations 表示测试套件执行的循环次数

Delay 表示接口请求之间, 每次接口发出后,延时的时间长度

Save responses 表示是否需要记录日志

Data 表示是参数化数据驱动

Keep variable values表示是否在执行过程中保留对环境变量的修改

通过Runner 跑完所有接口后, 点击接口名字, 就可以看到需要的所有log日志, 接口请求的四大要素 method url headers body, 状态码 响应头 响应正文

在Runner当中使用 test_data.txt, Data点击Select File, 浏览到模块中, 选择文件格式为text/csv ,   Preview 预览, 注意编码格式为utf-8.

Postman常用的断言方式有, 通过:

// 断言数据文件中期望的结果与实际结果中的返回数据一致pm.test("断言id为: " + data.userid, function(){var jsonres = pm.response.json();pm.expect(jsonres.result[0].id).to.eql(data.userid); // expect(期望)});// 断言HTTP协议响应状态码pm.test("断言响应状态为: 200", function(){pm.response.to.have.status(200);});// 断言期望响应文本中包含字符串数据pm.test("断言返回数据中包含token字段", function(){pm.expect(pm.response.text()).to.include("token");// expect(期望)});

iterations变为了多次, 次数与csv数据 行数对应   参数名必须与文件中行名一一对应.

三.newman命令行运行与持续集成实战

postman使用newman插件完成命令行执行postman脚本, 因此如果需要用命令行运行脚本, 需要先安装Newman.

官方文档:

https://www.npmjs.com/package/newman

安装Nodejs

官网下载地址: http://nodejs.cn/download/, 下载之后直接运行安装.安装之后确认环境变量中已经添加了node所在目录,否则手动添加.

在cmd中通过 node -v 和 npm -v 确认node环境是否已经搭建成功

提示: 如果提示npms 不是内部或外部命令, 也不是可运行的程序, 则需要手动去配置环境变量,在 PATH当中.

完成nodejs 安装之后, 在命令行输入:

npm install newman  -g  安装newman

也可以通过如下镜像源地址进行安装:

npm install -g newman --registry=https://registry.npm.taobao.org

newman 运行postman collections

安装好newman之后, 可以通过命令行执行postman测试集中的脚本

官方文档:

https://www.npmjs.com/package/newman

postman命令行运行文档:

https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/

newman执行:

1. 导出collections

在collection选项菜单中选择export,  导出为json文件

2. newman执行 collection 导出的json文件

命令行输入newman run 导出的json文件名 通过newman命令行运行测试集

newman run D:/DK.postman_collection.json

3,怎么样把环境变量以及数据驱动加入进来. 还需要了解newman的一些常用的参数

Newman 常用参数

-e , --environment 使用环境变量文件或url

使用时, 首先在环境变量中通过导出功能将环境变量导出, 然后用如下命令引用.

newman run D:/DK.postman_collection.json -e D:\DK.postman_environment.json

-g,  --global 使用全局变量文件或URL

类似环境变量的使用, 在使用前, 先导出全局变量文件, 再通过-g 指定文件使用

-d , --iteration-data 指定使用的数据驱动文件

newman run D:/DK.postman_collection.json -e D:\DK.postman_environment.json -d D:\test_data.txt

-n 指定测试集循环次数iterations

newman run D:/DK.postman_collection.json -e D:\DK.postman_environment.json -d D:\test_data.txt  -n 3

newman -h     # newman测试报告

newman提供的测试报告中, 常用的包括cli, json和html 三种格式,

可以通过-r 或者 -reporter 命令指定所用格式

cli 格式为在cmd客户端呈现的报告模板, newman默认使用该格式

json格式可以导出json格式的报告, 通过-r html进行设置

并加上 --reporter-html-export 参数指定报告生成的路径

同时使用cli,json两种格式: 通过-json 设置导出报告格式.

newman run D:/DK.postman_collection.json -e D:\DK.postman_environment.json -d D:\test_data.txt  -n 3 -r cli,json --reporter-json-export D:\test_result.json

html格式可以导出html格式的报告, 通过 -r html进行设置, 并加上 --reporter-html-export参数指定报告生成的路径.

先安装html报告模板:

npm install newman-reporter-html -g --registry=https://registry.npm.taobao.org

newman run D:/DK.postman_collection.json -e D:\DK.postman_environment.json -d D:\test_data.txt  -n 3   -r  html  --reporter-html-export D:\test_result.html

在已经实现newman通过命令行方式执行postman测试集的基础上, 可以方便的在jenkins上完成持续集成构建

四. 构建任务完成Jenkins定时执行Newman运行测试集

创建自由风格项目后, 在构建触发器里, 配置定时构建选项, 指定任务定时执行, 五个参数分别代表 分 时 天 月 星期 的周期维度

Build Triggers

在构建时, 添加构建步骤选择执行 windows批处理命令, 将newman命令写入即可

newman run D:/DK.postman_collection.json -e D:\DK.postman_environment.json -d D:\test_data.txt  -n 3   -r  html  --reporter-html-export D:\test_result.html

构建触发器(build triggers) 选择定时构建, 00 03 * * *  分 时 天 月 星期, 执行windwos批处理命令,  执行依据编辑好的bat脚本中的内容, 有乱码, 需要改环境变量.

变量名: JAVA_TOOL_OPTIONS

变量值: -Dfile.encoding=UTF-8

修改完环境变量后, 重启jenkins, 重新构建, 即可.

postman+newman+jenkins持续集成相关推荐

  1. 使用Jenkins持续集成Vue项目配置Sonar任务

    title: 使用Jenkins持续集成Vue项目配置Sonar任务 tags: jenkins Vue.js Sonar categories: ci date: 2017-12-05 22:09: ...

  2. Jenkins持续集成学习-Windows环境进行.Net开发4

    目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...

  3. postman+newman+jenkins环境部署

    postman+newman+jenkins 环境部署 2017年4月27日 14:33 阅读 11 新浪博客 1.postman: http://itfish.net/article/59864.h ...

  4. 半天搭建你的Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  5. centos下搭建Jenkins持续集成环境(安装jenkins)

    centos下搭建Jenkins持续集成环境(安装jenkins) 1.安装JDK yum install -y java 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这 ...

  6. Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目

    Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目 前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+ ...

  7. Jenkins持续集成环境, 如何自定义 maven repositories

    假设自定义的仓库路径为"/opt/repository",那么在"系统管理-系统设置"中,修改"全局MAVEN_OPTS"的值为如下的内容: ...

  8. 超详细的jenkins持续集成工作原理、功能、部署方式等介绍

    文章由LinuxBoy分享于2019-08-30 11:08:39 超详细的jenkins持续集成工作原理.功能.部署方式等介绍 1. 概念 jenkins是一个开源项目,提供了一种易于使用的持续集成 ...

  9. Gitlab+jenkins持续集成+自动化部署(三)

    搭建gitlab+Jenkins自动化部署 在jenkins上安装插件 Build Authorization Token Root Plugin. Build Authorization Token ...

最新文章

  1. 将Datatable一分为二
  2. 【电子信息复试】考研复试常考问题——操作系统
  3. 折半查找的思想及源码_常用排序与查找算法
  4. php json_encode小数精度丢失的问题
  5. 《你好,李焕英》总票房逆袭《哪吒》 成中国影史亚军
  6. apollomq mysql_Apollo 配置中心安装使用
  7. c语言全文件操作函数,C语言文件操作函数大全
  8. 小程序mysql+php测试,莲米粒是一个基于PHP+MySQL+微信小程序技术栈
  9. python librosa库实现变声
  10. RS485应用电路及问题经验总结
  11. 信息系统项目管理师考试论文写作复习笔记(4)-范围管理论文2
  12. 计算机组成原理简答课后答案,计算机组成原理_习题集(含答案).doc
  13. 什么样的网页适合使用框架
  14. 计算机系统中设置保护系统还原,电脑设置的还原点,怎么使用之前设置的还原点进行恢复系统?...
  15. 690-文件管理和文件系统
  16. ADO数据库连接中的Persist Security Info参数的作用
  17. No suspicious code found. 1 files processed in 'File '
  18. 转:团队要取得高绩效,领导别“假装”听大家的
  19. 天宇优配|A股迎来“重要转折” 私募机构投资信心与仓位同步走高
  20. 布朗大学的机器人能一笔一划临摹出蒙娜丽莎,还能模仿你的笔迹

热门文章

  1. python 利用Scipy计算person 和spearman相关系数
  2. 小白看了直呼细节--CPP“引用”
  3. 详细记录丨公众号如何通过迁移开通留言功能?
  4. 《c primer plus》第六版|第二章|编程练习答案
  5. php购物商城,基于PHP的网上商城
  6. Java处理Word, Excel, PDF文档的4种开源系统的代码例子
  7. Fedora linux root登录和ssh连接
  8. 「普通人VS程序员」电脑还可以这样关机,神操作 建议阅读
  9. Spark 调优技巧总结
  10. 用IMU监测力量训练中的杠铃速度,帮助科学界和体育界评估杠杆运动学