掌握 Postman Newman:快速启动 API 测试自动化

Postman 中的 Newman 是什么?

Newman 是一个 CLI(命令行界面)工具,用于运行 Postman 中的集合(Collection)和环境(Environment)来进行自动化测试。它允许直接从命令行运行 Postman 集合。根据 Postman 的官方网站,他们将 Newman 描述为 Postman 的命令行 Collection Runner。

Postman Newman 的作用

通过 Postman Newman ,开发人员可以在代码更改后快速获得有关 API 性能的反馈。在 Newman 的帮助下,它与 CI 集成,此后如果推送任何更改,CI 将与 Newman 一起运行 Postman 集合。Newman 可以用来测试 API 的功能、性能、可靠性和安全性,同时可以将测试结果输出成多种格式的报告(如 HTML、JSON、JUnit 等),以方便开发人员进行问题定位和分析。

如何使用 Postman Newman

第一步:安装 Node.js

首先,Newman 建立在 Node.js 之上。要运行 Newman,请确保安装了 Node.js。如果没有配置请先下载安装 Node.js (注意:某些 CI 系统具有预安装 Node 的配置), 要确保使用的是 Node.js v4 或更高版本。

第二步:从 npm 全局安装 Newman

复制代码
$ npm install -g newman

第三步:导出集合或环境变量为 json 格式

将 Collection 导出为 json 格式文件或在环境变量设置中下载需要的环境变量 (Global 或 Environment) ,导出 json 格式的文件。

第四步:Newman 运行

Newman 常用参数:

  • -e:--environment [file|URL]:指定postman环境变量文件(Json文件);
  • -d:--data [file]:指定postman参数化文件(支持csv、json格式等);
复制代码
复制代码
$ newman run [collection.json] -e [environment.json] -r [reporter] --reporter-[option] [value]

其中,collection.json 是集合文件的路径,environment.json 是环境文件的路径,reporter 是报告格式,--reporter-[option] [value] 是报告选项和值。

第五步:导出报告

Newman 提供了三种格式的报告,包括cli、json及html格式,需要通过-r参数指定:

  • Cli 格式:基础格式,默认cmd中显示的报告格式;
  • json 格式:使用-r json指定导出相应的文件,需要 ----reporter-json-export指定导出文件的存放路径,文件内容与postman runner中的export result内容相似,不建议使用。
  • Html 格式:使用-r html指定导出相应的文件,需要----reporter-html-export指定导出文件的存放路径。使用前需要安装(npm --g install newman-reporter-html),建议使用。
复制代码
复制代码
$ newman run examples/sample-collection.json -e examples/sample-environment.json -r htmlextra --reporter-htmlextra-export report.html

本例子中运行 sample-collection.json 集合中的测试用例,并生成一个名为 report.html 的 HTML 报告。

知识扩展:

了解更多 Postman 相关使用技巧:

相关推荐
毕设源码-赖学姐1 分钟前
【开题答辩全过程】以 基于net超市销售管理系统为例,包含答辩的问题和答案
java
昀贝11 分钟前
IDEA启动SpringBoot项目时报错:命令行过长
java·spring boot·intellij-idea
roman_日积跬步-终至千里42 分钟前
【LangGraph4j】LangGraph4j 核心概念与图编排原理
java·服务器·数据库
野犬寒鸦1 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
wenzhangli71 小时前
ooderA2UI BridgeCode 深度解析:从设计原理到 Trae Solo Skill 实践
java·开发语言·人工智能·开源
HalvmånEver1 小时前
Linux:线程互斥
java·linux·运维
rainbow68891 小时前
深入解析C++STL:map与set底层奥秘
java·数据结构·算法
灵感菇_1 小时前
Java 锁机制全面解析
java·开发语言
indexsunny1 小时前
互联网大厂Java面试实战:Spring Boot微服务在电商场景中的应用与挑战
java·spring boot·redis·微服务·kafka·spring security·电商
娇娇乔木2 小时前
模块十一--接口/抽象方法/多态--尚硅谷Javase笔记总结
java·开发语言