接口测试 | Postman的安装和测试使用

Postman的安装和使用

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


安装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. 查看断言结果。
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. 断言的工作原理

相关推荐
ck01357912 小时前
视频添加水印的实践:文字叠加、透明 PNG 与时间区间设置
图像处理·测试工具·音视频·视频
EVE จุ๊บ2 天前
playwright和selenium的区别是什么
selenium·测试工具
Meta Luo3 天前
页面改版后自动化用例大量失败,应该怎么维护?
运维·功能测试·测试工具·自动化
释槐鸟~4 天前
还不知道RIDE工具怎么装吗
测试工具·自动化
有技巧搬砖4 天前
为什么锂电池组的电池老化测试很重要?
测试工具·锂电池·电池老化
蒲公英内测分发4 天前
智能手表卖出去后,包装、说明书和官网里的 App 下载入口怎么统一?
前端·人工智能·测试工具·智能家居·智能硬件·智能手表
蒲公英内测分发4 天前
智能手环出海测试,海外合作方分散在不同国家,Android 测试包怎么持续分发和更新?
android·前端·人工智能·测试工具·智能手表
无语的小歪歪5 天前
ATF 智测 1.0
python·测试工具·集成测试
SHENGWEI胜为5 天前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
xie881018025 天前
长表格跨页重复表头:排版上的做法
测试工具