注册免费账户前请注意:建议在网速良好的环境下操作,因涉及境外网站访问。

在这里插入图片描述
在这里插入图片描述

安装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.断言响应状态码

  1. 在Tests标签中,选中Status Code:code is200,生成对应代码
  2. 适当调整test0方法参数1,和匿名函数中的预期结果。
  3. 点击send按钮,发送请求,执行断言代码。
  4. 查看断言结果。
//断言响应状态码是否为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

// 断言响应体包含指定字符串
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

//断言
响应体等于某个字符串(对象)
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

//断言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】

//断言响应头
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. 断言的工作原理

在这里插入图片描述