接口测试 | 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. 断言的工作原理

相关推荐
Bellafu6667 小时前
selenium 常用xpath写法
前端·selenium·测试工具
Bellafu6669 小时前
selenium常用的等待有哪些?
python·selenium·测试工具
Bellafu66611 小时前
selenium定位元素失败,常见错误有哪些?
selenium·测试工具
傻啦嘿哟17 小时前
用Selenium模拟登录淘宝并采集商品信息:从基础到实战
selenium·测试工具
robinspada21 小时前
用mitmproxy替代selenium-wire
selenium·测试工具·mitmproxy·selenium-wire
我的xiaodoujiao21 小时前
从 0 到 1 搭建完整 Python 语言 Web UI自动化测试学习系列 17--测试框架Pytest基础 1--介绍使用
python·学习·测试工具·pytest
Bellafu66621 小时前
下载selenium-ide及使用
ide·selenium·测试工具
将车24421 小时前
自动化测试脚本环境搭建
python·测试工具·自动化
鱼鱼说测试21 小时前
Jmeter+badboy环境搭建
接口测试