Postman的安装和使用
- [安装Postman 插件newman](#安装Postman 插件newman)
- 三者关系
-
- [1. Node.js:底层运行环境](#1. Node.js:底层运行环境)
- [2. Newman:Postman 的命令行核心工具](#2. Newman:Postman 的命令行核心工具)
- [3. newman-reporter-html:Newman 的"报告插件"](#3. newman-reporter-html:Newman 的“报告插件”)
- Postman执行测试抓包
-
- [1. GET测试](#1. GET测试)
- [2. POST请求](#2. POST请求)
- [3. Postman发送登录请求](#3. Postman发送登录请求)
- Postman高级用法
-
- [4. 管理Collections](#4. 管理Collections)
- [5. Postman实现断言](#5. Postman实现断言)
- [6. 断言的工作原理](#6. 断言的工作原理)
注册免费账户前请注意:建议在网速良好的环境下操作,因涉及境外网站访问。
安装Postman 插件newman
第一步:安装Node.js

第二步:安装newman
安装newmanl时,必须保证node.js已经装成功!!!
在线安装命令:npm install -g newman
在这里插入图片描述
第三步:安装newman-reporter-html
安装命令:npm instal-g newman-reporter-html
同样,尽量保证网络稳定。安装时,尽量不要动终端界面。
三者关系
要理清它们的关系,需从依赖层级、安装前提、功能分工三个角度看:
1. Node.js:底层运行环境
Newman 是基于 Node.js 开发的命令行工具,而 Node.js 是 JavaScript 的运行时环境(提供了 npm
包管理器)。
→ 关系:Node.js 是安装和运行 Newman 的"前提基础" ------必须先装 Node.js,才能用 npm
安装 Newman。
2. Newman:Postman 的命令行核心工具
Newman 是 Postman 的"命令行版本",能在终端中运行 Postman 的集合(Collection),实现接口自动化测试。
→ 关系:Newman 依赖 Node.js 运行 ,且是 newman-reporter-html
的"宿主工具"(newman-reporter-html
是给 Newman 用的插件)。
3. newman-reporter-html:Newman 的"报告插件"
它是 Newman 的一个扩展插件 ,作用是将 Newman 运行测试后的结果,生成HTML格式的可视化报告。
→ 关系:newman-reporter-html 依赖 Newman ------必须先装 Newman,才能用 npm
安装这个"报告生成插件",让 Newman 具备生成 HTML 报告的能力。
Node.js
(基础环境) →Newman
(核心工具,依赖 Node.js) →newman-reporter-html
(报告插件,依赖 Newman)。
Postman执行测试抓包
1. GET测试

2. POST请求
实际返回结果"验证码错误"与业务有关
3. Postman发送登录请求
从接口文档,获取登录接口的http请求,使用Postman发送

Postman高级用法
在 Postman 中,Collections(集合)是用于组织、管理 API 请求的 "分组容器",可理解为 "API 请求的文件夹",能将多个相关的 HTTP 请求(如项目的登录、数据查询、提交等接口)归类管理,核心作用是提升 API 开发 / 测试的效率
4. 管理Collections
创建子模块和请求

第一步 创建 Collections
第二步 添加请求
导出用例集
- 导入用例集
5. Postman实现断言
- Postman断言借助JavaScript-js语言编写代码,自动判断预期结果与实际结果是否一致。
- 断言代码写在
Tests的标签
中。
1.断言响应状态码
- 在Tests标签中,选中
Status Code:code is200
,生成对应代码 - 适当调整test0方法参数1,和匿名函数中的预期结果。
- 点击send按钮,发送请求,执行断言代码。
- 查看断言结果。
bash
//断言响应状态码是否为200
pm.test("status code is 200",function ()
pm.response.to.have.status(200);
});
pm:代表postman的一个实例
test():是pm实例的一个方法。有两个参数
参数1:在断言成功后,给出的文字提示。可以修改。"Status code is200"
参数2:匿名函数。
pm.response.to.have.status (200);//意思:postman的响应结果中应该包含状态码200
200-->预期结果!
- 断言正确
- 断言错误
2.断言响应体是否包含某个字符串
Response body:Contains string
bash
// 断言响应体包含指定字符串
pm.test("Body matches string",function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm:postman的一个实例6
test():postman实例的方法,有两个参数
参1:断言后显示的文字提示信息,可改。
参2:匿名函数
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
//意思:pm期望响应文本中,包含xxxx字符串。
"string.-you_want_to_search"->预期结果。可以修改

3.断言响应体是否等于某个字符串(对象)
Response body:Is equal to a string
bash
//断言
响应体等于某个字符串(对象)
pm.test("Body is correct",function (){
pm.response.to.have.body("response_body_string");
});
pm.response.to.have.body("response_body_string");
//意思是,pm的响应中应该有响应体xxx
"response_.body_string"->预期结果。可以修改

4.断言JSON数据
Response body:JSON value check
bash
//断言json的响应结果
pm.test("Your test name",function (){
var jsonData pm.response.json();
pm.expect(jsoneata.value).to.eql(100)
});
var jsonData pm.response.json();
//var jsonData用js语法定义-一个变量。jsonData就是变量名
//pm.response.json();代表响应的json结果
//举例:response.json();
/*
"success":true,
"code":10000,
"message":"操作成功!",
"data":"95c78d75-721c-40fb-b2d5-742fea42cbd5"
/
pm.expect(jsonData.value).to.eql(100);
//pm 预期json结果key对应的值等于xxx
/*举例:
jsonData.value的value:取:success、code、message、data
*/
5.断言响应头
Response headers:Content-Type header check
【响应头不只:Content-Type】
bash
//断言响应头
pm.test("Content-Type is present",function (){
pm.response.to.have.header("Content-Type");
});
pm.response.to.have.header("Content-Type");
pm的响应头中包含Content-Type
//示例:可以在header中,添加响应头中的key对应的value判定。用,隔分。
//断言响应头
pm.test("Content-Type is present",function (){
pm.response.to.have.header("Content-Type","application/json;charset=UTF-8");
});
6. 断言的工作原理
