当前位置: 首页 > news >正文

Jenkins+Newman实现接口自动化测试

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快   

一、是什么Newman

Newman就是纽曼手机这个经典牌子,哈哈,开玩笑啦。。。别当真,简单地说Newman就是命令行版的Postman,查看官网地址。

Newman可以使用Postman导出的collection文件直接在命令行运行,把Postman界面化运行的操作用命令行代替,如果不会Postman接口自动化测试,可以参考网上

因为是命令行操作,因此可以配合jenkins做接口自动化测试。

二、如何安装

npm install -g newman

mac也可以用brew安装

brew install newman

三、如何使用

1.运行本地文件

newman run examples/sample-collection.json

运行画风是这样的

2.运行在线文件

collection文件也可以是一个在线地址

newman run https://www.getpostman.com/collections/631643-f695cab7-6878-eb55-7943-ad88e1ccfd65-JsLv

运行的画风如下

3.以node.js库运行

const newman = require('newman'); // require newman in your project// call newman.run to pass `options` object and wait for callback
newman.run({collection: require('./sample-collection.json'),reporters: 'cli'
}, function (err) {if (err) { throw err; }console.log('collection run complete!');
});

4.导出报告

可以使用-r或者--reporters指定输出的类型,支持的类型有cli, json, html, junit, progress和emojitrain

默认指定cli,如果想指定多个,可以用以下的方式

newman run examples/sample-collection.json -r cli,json,html

将输出结果到命令行,并导出一份json和html报告,如下

html打开是这样的

json是这样的

四、命令行测试真实接口

接下来,对我们的32个接口进行测试

1.导出collection文件

我本地导出的colection文件名为课货.postman_collection.json

2.导出环境变量文件

因为依赖我的接口依赖环境变量{{kehuo}},还需要导出环境变量,我本地生成文件名为local.postman_environment

3.执行测试

newman run -e ./local.postman_environment.json -r cli,html ./课货.postman_collection.json

说明:-e指定了环境变量文件,-r指定输出格式,这里我指定了命令行直接输出,和生成html,最后跟的就是我们collection文件啦

执行结果如下

html文件打开如下

五、Newman+Jenkins实现自动化测试

1.jenkins机器安装newman

npm install -g newman

2.将postman文件上传到git仓库

如下,我添加了一个autotesting文件夹,分别放了接口文件postman_collection.json和环境变量文件postman_environment.json

3.jenkins新建项目

这一步选择吴亦凡的freestyle,你看这个面又长又宽,就像这个碗又大又圆~

4.jenkins项目指定git地址和分支

5.jenkins项目newman脚本

6.执行构建

7.查看结果

可以看到,我们的脚本已经启动了,再往后看,有3个接口测试失败了,还给出了原因

六、总结

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关文章:

  • Missashe考研日记-day33
  • NGINX `ngx_http_auth_request_module` 模块详解基于子请求的认证授权方案
  • 理解 Elasticsearch 的评分机制和 Explain API
  • 【ES】Elasticsearch字段映射冲突问题分析与解决
  • 一个基于Netty和WebRTC的实时通讯系统
  • RPA自动化:开启智能流程新时代
  • NestJS 的核心构建块有哪些?请简要描述它们的作用(例如,Modules, Controllers, Providers)
  • 荣耀A8互动娱乐组件部署实录(第2部分:界面逻辑与资源加载机制)
  • Oracle01-入门
  • Django异步任务处理方式总结
  • react-12父子组件间的数据传递(子传父)(父传子)- props实现
  • 基于大模型的自然临产阴道分娩全流程预测与方案研究报告
  • 智能推理DeepSeek-R1+Word深度整合业级智能办公构建
  • 互联网法院在NFT、元宇宙等新兴领域的规则创新
  • iOS开发架构——MVC、MVP和MVVM对比
  • SQL注入总结
  • Android学习总结之Java和kotlin区别
  • Kotlin数据类在Android开发中的应用
  • Spark,配置历史服务
  • 【东枫科技】代理销售 NVIDIA DGX Spark 您的桌上有一台 Grace Blackwell AI 超级计算机。
  • 央行:将支持资本市场两项货币政策工具的额度合并使用
  • 五一多城楼市火热:北京新房网签量同比翻倍,上海热门楼盘认购接连触发积分
  • 娱见 | 为了撕番而脱粉,内娱粉丝为何如此在乎番位
  • 江西省文化和旅游厅厅长梅亦已任省委宣传部副部长
  • 《开始推理吧3》:演员没包袱,推理更共情
  • 中青报:“爸妈替我在线相亲”,助力还是越界?