Postman 接口测试详解
Postman 接口测试详解
- Postman 接口测试详解
- 1. Postman 基础知识
- 1.1 什么是 Postman?
- 1.2 Postman 的主要功能
- 2. 安装与设置
- 2.1 安装 Postman
- 2.2 创建 Postman 账户
- 3. Postman 的基本操作
- 3.1 创建和发送请求
- 3.2 解析响应数据
- 3.3 使用环境和变量
- 4. 进阶功能
- 4.1 编写测试脚本
- 4.2 使用集合
- 4.3 使用 Mock 服务器
- 5. 常见问题和解决方案
- 5.1 请求失败
- 5.2 环境变量无效
- 5.3 测试脚本失败
- 6. 实战案例
- 6.1 创建一个简单的 API 测试集合
- 7. 总结
Postman 接口测试详解
Postman 是一个强大的 API 测试工具,广泛应用于开发和测试阶段。它允许开发人员和测试人员通过图形化界面设计、发送 HTTP 请求,并对返回的响应进行验证。本文将详细介绍 Postman 的使用方法,覆盖接口测试的各个方面,包括基础操作、进阶技巧、常见问题和最佳实践等。
1. Postman 基础知识
1.1 什么是 Postman?
Postman 是一个功能丰富的 API 开发和测试工具,提供了一个直观的用户界面,用于创建、测试和管理 API 请求。它支持多种协议(如 HTTP、HTTPS)和方法(如 GET、POST、PUT、DELETE)。
1.2 Postman 的主要功能
- 请求构造:可以创建和发送各种类型的 HTTP 请求。
- 响应解析:查看响应数据,检查状态码、响应时间等信息。
- 测试脚本:编写测试脚本验证接口的功能。
- 环境管理:管理不同的环境和配置,例如开发、测试和生产环境。
- 集合管理:组织和运行多个 API 请求集合。
2. 安装与设置
2.1 安装 Postman
- 下载:访问 Postman 官网 下载适用于你操作系统的版本。
- 安装:根据系统类型执行安装程序。
- 启动:安装完成后启动 Postman 应用。
2.2 创建 Postman 账户
- 注册/登录:启动 Postman 后,你可以选择注册一个 Postman 账户或使用已有账户登录。账户功能包括同步数据、分享请求等。
3. Postman 的基本操作
3.1 创建和发送请求
-
新建请求:
- 点击左侧菜单中的 “New” 按钮,然后选择 “Request”。
- 输入请求的名称和描述,并选择一个集合或创建新集合来保存请求。
-
设置请求:
- 请求方法:选择 HTTP 方法(如 GET、POST、PUT、DELETE)。
- 请求 URL:在地址栏输入 API 端点的 URL。
- 请求头:添加请求头信息(例如 Content-Type)。
- 请求体:对于 POST 或 PUT 请求,配置请求体数据。
-
发送请求:
- 点击 “Send” 按钮发送请求。
- 查看响应面板中的状态码、响应时间和返回数据。
示例:
假设我们有一个 API 端点 https://jsonplaceholder.typicode.com/posts
,我们可以创建一个 GET 请求来获取所有帖子:
- 选择 GET 方法。
- 输入 URL:
https://jsonplaceholder.typicode.com/posts
。 - 点击 “Send”。
- 查看响应数据。
3.2 解析响应数据
- 状态码:检查响应状态码(如 200、404、500),确认请求是否成功。
- 响应体:查看返回的数据,支持 JSON、XML、HTML 等格式。
- 响应时间:检查响应时间,评估接口性能。
示例:
对于上述请求,响应数据可能如下:
[{"userId": 1,"id": 1,"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit","body": "quia et suscipit\nsuscipit...reprehenderit"},...
]
3.3 使用环境和变量
环境变量允许你在不同的环境(如开发、测试、生产)之间切换,而不需要更改请求 URL 和其他设置。
-
创建环境:
- 点击右上角的 “Environments” 图标。
- 选择 “Manage Environments”。
- 创建新环境并添加变量(如
baseUrl
)。
-
使用变量:
- 在请求中使用变量(例如
{{baseUrl}}/posts
)。
- 在请求中使用变量(例如
示例:
创建一个名为 “Development” 的环境,并添加变量 baseUrl
,设置值为 https://jsonplaceholder.typicode.com
。然后在请求 URL 中使用 {{baseUrl}}/posts
。
4. 进阶功能
4.1 编写测试脚本
Postman 允许你在请求后执行测试脚本,以验证响应是否符合预期。
-
添加测试脚本:
- 在请求的 “Tests” 标签中编写测试脚本。
-
常见测试脚本:
- 检查状态码:
pm.test("Status code is 200", function () {pm.response.to.have.status(200); });
- 验证 JSON 响应:
pm.test("Response should be a JSON object", function () {pm.response.to.be.json; }); pm.test("Response should have userId", function () {pm.response.to.have.jsonBody('userId'); });
- 响应时间检查:
pm.test("Response time is less than 200ms", function () {pm.response.to.have.responseTime.below(200); });
- 检查状态码:
4.2 使用集合
集合是组织和管理请求的容器,可以将相关请求分组在一起,方便管理和执行。
-
创建集合:
- 在左侧栏中点击 “Collections”。
- 点击 “New Collection” 创建新的集合,并添加描述。
-
添加请求到集合:
- 在创建请求时,选择要保存的集合。
- 请求将保存在指定的集合中。
-
运行集合:
- 点击集合名称,选择 “Run”。
- 使用 Collection Runner 运行集合中的所有请求,并查看测试结果。
示例:
创建一个名为 “User API” 的集合,并将获取用户和创建用户的请求添加到该集合。使用 Collection Runner 执行所有请求并生成报告。
4.3 使用 Mock 服务器
Mock 服务器允许你模拟 API 接口的响应,进行接口开发和测试。
-
创建 Mock 服务器:
- 在 Postman 中点击 “Mock Servers”。
- 创建新的 Mock 服务器,并为其配置请求和响应。
-
使用 Mock 服务器:
- 将 Mock 服务器 URL 替换为实际 API 端点进行测试。
示例:
创建一个 Mock 服务器,配置 /users
请求返回预定义的用户数据。使用 Mock 服务器 URL 进行请求测试。
5. 常见问题和解决方案
5.1 请求失败
问题:发送请求后,出现错误或无响应。
解决方案:
- 检查 URL:确保 URL 格式正确。
- 检查网络:确认网络连接正常。
- 查看日志:检查 Postman 控制台日志,了解错误详情。
5.2 环境变量无效
问题:环境变量在请求中未被替换。
解决方案:
- 检查变量名:确保变量名与环境变量一致。
- 选择环境:确认在请求中选择了正确的环境。
5.3 测试脚本失败
问题:测试脚本执行错误或测试失败。
解决方案:
- 调试脚本:使用
console.log
调试测试脚本。 - 检查 API 文档:确保测试脚本与 API 文档中的规范一致。
6. 实战案例
6.1 创建一个简单的 API 测试集合
-
创建集合:
- 创建一个名为 “Simple API Tests” 的集合。
- 添加 GET 请求
/api/posts
和 POST 请求/api/posts
。
-
编写测试脚本:
- 对 GET 请求编写测试脚本,验证响应状态码和数据格式。
- 对 POST 请求编写测试脚本,验证数据创建和响应内容。
示例:
GET 请求测试脚本:
pm.test("Status code is 200", function () {pm.response.to.have.status(200);
});
pm.test("Response should be JSON", function () {pm.response.to.be.json;
});
POST 请求测试脚本:
pm.test("Status code is 201", function () {pm.response.to.have.status(201);
});
pm.test("Response should contain ID", function () {pm.response.to.have.jsonBody('id');
});
7. 总结
Postman 是一个功能强大的 API 测试工具,能够显著提高 API 开发和测试的效率
相关文章:
Postman 接口测试详解
Postman 接口测试详解 Postman 接口测试详解1. Postman 基础知识1.1 什么是 Postman?1.2 Postman 的主要功能 2. 安装与设置2.1 安装 Postman2.2 创建 Postman 账户 3. Postman 的基本操作3.1 创建和发送请求3.2 解析响应数据3.3 使用环境和变量 4. 进阶功能4.1 编写…...

【JavaEE】线程状态
目录 前言 一.线程状态图 二.线程状态 1.初始状态(NEW) 2.运行状态(RUNNING) 3.等待状态(WAITING) 4.超时等待(TIMED_WAITING) 5.阻塞状态(BLOCKED) 6.终止状态(TERMINATED) 三.线程状态间的转换 四.总结 前言 线程状态及其状态转换…...

C++笔记之编译过程和面向对象
回顾: “abcd”//数据类型 字符串常量 const char *p"abc"; new STU const char *//8 指针的内存空间 int float 指针的内存空间 p 指针指向的内存空间 "abc" 取决于字符串长度 指针变量的内容一级指针 指针变量的地址二级指针 …...

ModuleNotFoundError: No module named ‘tqdm‘
报错信息: tqdm是一个快速、可扩展的Python进度条库,用于展示迭代器的长循环执行进度。 解决:通过以下命令安装 使用conda命令安装 conda install tqdm使用pip安装: pip install tqdm...

东京电影节公布2024年竞赛片评审团成员并对其业绩分别进行评介 没什么含金量
第37届东京国际电影节竞赛单元评审团名单正式公布。 周五,电影节组织者宣布,香港电影制片人杜琪峰、匈牙利电影制片人伊尔迪科恩耶迪、日本女演员桥本爱和法国女演员基娅拉马斯楚安尼将与之前宣布的评审团主席梁朝伟一起担任 2024 年主竞赛评审团成员。 …...
智能景区垃圾识别系统:基于YOLO的深度学习实现
基于深度学习的景区垃圾识别系统(UI界面YOLOv8/v7/v6/v5代码训练数据集) 1. 引言 景区垃圾识别是环保管理的重要任务之一。传统的人工清理方式效率低、成本高,而借助深度学习技术可以实现自动化的垃圾检测与识别,提高景区的清洁…...

ventoy和微pe可以共存吗?ventoy和pe共存使用教程
Ventoy新一代多系统启动U盘解决方案。国产开源U盘启动制作工具,支持Legacy BIOS和UEFI模式,理论上几乎支持任何ISO镜像文件,支持加载多个不同类型的ISO文件启动,无需反复地格式化U盘,插入U盘安装写入就能制作成可引导的…...
如何获取和安装SSL证书
SSL(Secure Sockets Layer)证书是用于加密网站服务器和客户端之间通信的一种数字证书。它通过HTTPS协议保护数据传输的安全性,防止数据被窃听或篡改。本文将指导您如何为您的网站获取并安装SSL证书。 步骤1:选择SSL证书提供商 首…...
makefile在IC设计中的使用笔记
1 makefile在IC设计中的地位 关于makefile的详细介绍可以参考第一个连接,里面的内容很多也很详细。但在数字IC设计中,并不会把所有的用法都用到,下面记录一下主要用到的规则。 2 IC设计涉及到的主要用法 2.1 变量的定义和使用 在makefile…...

Suno声称在受版权保护的音乐上训练模型属于“合理使用“
继美国唱片业协会(RIAA) 最近对音乐生成初创公司 Udio 和 Suno 提起诉讼之后,Suno 在周四提交的一份法庭文件中承认,该公司确实使用了受版权保护的歌曲来训练其人工智能模型。但它声称,根据合理使用原则,这…...

Java | Leetcode Java题解之第316题去除重复字母
题目: 题解: class Solution {public String removeDuplicateLetters(String s) {boolean[] vis new boolean[26];int[] num new int[26];for (int i 0; i < s.length(); i) {num[s.charAt(i) - a];}StringBuffer sb new StringBuffer();for (in…...

Taro学习记录
一、安装taro-cli 二、项目文件 三、项目搭建 1、Eslint配置 在项目生成的 .eslintrc 中进行配置 {"extends": ["taro/react"], //一个配置文件,可以被基础配置中的已启用的规则继承"parser": "babel/eslint-parser…...
Spring Cache框架详解
Spring Cache框架详解 Spring Cache是Spring框架提供的一个强大的缓存抽象层,旨在简化缓存技术的集成和使用。自Spring 3.1版本开始,Spring Cache就被引入以支持在Spring应用程序中添加缓存功能。随着Spring版本的迭代,Spring Cache的功能日…...
解决Html iframe 内嵌video标签导致视频无法全屏展示的问题
原因: 由于浏览器的安全策略所限制的。为了防止恶意网站利用全屏播放功能进行滥用或欺骗用户,浏览器对iframe中的视频播放做了限制。 在iframe标签中播放视频时,浏览器会根据安全策略阻止视频全屏播放。这是因为iframe标签中的内容被认为是第…...

谷粒商城实战笔记-110~114-全文检索-ElasticSearch-查询
文章目录 一,110-全文检索-ElasticSearch-进阶-两种查询方式二,111-全文检索-ElasticSearch-进阶-QueryDSL基本使用&match_all三,112-全文检索-ElasticSearch-进阶-match全文检索四,113-全文检索-ElasticSearch-进阶-match_ph…...

【开源】嵌入式Linux(IMX6U)应用层综合项目(1)--云平台调试APP
目录 1.简介 1.1功能介绍 1.2技术栈介绍 1.3演示视频 1.4硬件介绍 2.软件设计 2.1连接阿里云 2.2云平台调试UI 2.3Ui_main.c界面切换处理文件 2.4.main函数 3.结尾(附网盘链接) 1.简介 此文章并不是教程,只能当作笔者的学习分享&…...
AI人工智能分析王楚钦球拍被踩事件的真相
在2024年巴黎奥运会乒乓球混双决赛的热烈氛围中,中国队王楚钦与孙颖莎以出色的表现夺得金牌,然而,赛后发生的一起意外事件——王楚钦的球拍被踩坏,引起了广泛关注和热议。为了探寻这一事件的真相,我们可以借助AI人工智…...

C++客户端Qt开发——多线程编程(一)
多线程编程(一) ①QThread 在Qt中,多线程的处理一般是通过QThread类来实现。 QThread代表一个在应用程序中可以独立控制的线程,也可以和进程中的其他线程共享数据。 QThread对象管理程序中的一个控制线程。 run() 线程的入口…...
安装pnpm
安装pnpm(Performant npm),即高性能的npm包管理工具,可以通过多种方式进行。以下是详细的安装步骤: 一、通过npm全局安装 打开命令行工具:在你的计算机上打开命令行工具,例如Windows的CMD、Pow…...
CSS平移实现双开门效果
CSS平移实现双开门效果 一共要三张图片,一张作为父级背景,两张为兄弟左右布局 父子结构布局 一张作为父级背景,两张为兄弟左右布局。之后添加鼠标悬停效果,两张子图分别从左右平移 [外链图片转存失败,源站可能有防盗链机制,建议…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...