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平移实现双开门效果 一共要三张图片,一张作为父级背景,两张为兄弟左右布局 父子结构布局 一张作为父级背景,两张为兄弟左右布局。之后添加鼠标悬停效果,两张子图分别从左右平移 [外链图片转存失败,源站可能有防盗链机制,建议…...
3096. 得到更多分数的最少关卡数目
3096. 得到更多分数的最少关卡数目 题目链接:3096. 得到更多分数的最少关卡数目 代码如下: class Solution { public:int minimumLevels(vector<int>& possible) {int s0;//两个玩家能得到的分数和for(int x:possible){sx0?-1:1;}int t0;/…...
AGI思考探究的意义、价值与乐趣Ⅳ
探究in context或Prompt对于LLM来说其根本意义,in context & Prompt Learning带给我们更深一层的提示是什么? 文章里的探索希望能够将in context或Prompt置身于一个更全局的视角来看待:将其视为在真实世界中时空认知流形所映射为数据流形…...
《数据结构》(C语言版)第1章 绪论(上)
第1章 绪论 1.1 数据结构的研究内容1.2 基本概念和术语 1.1 数据结构的研究内容 N.沃思(Niklaus Wirth)教授提出: 程序算法数据结构 电子计算机的主要用途 早期:主要用于数值计算 后来:非数值计算,复杂的具有一定结构…...
【Pyhton】数据类型之详讲字符串(上)
本篇文章将详细讲解字符串: 1、定义 定义字符串时,字符串的内容被双引号,单引号,三单引号,三双引号中的其中一个被括住。 例如: 双引号: v1"haha" 单引号: v1hahah…...
算法小白的进阶之路(力扣6~8)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...
【期货】收盘点评。昨天说的,p2409棕榈油在今天或者周一会走出行情
收盘点评 昨天说的,p2409棕榈油在今天或者周一会走出行情。事实就是如此。震荡了几天了,波幅不大的来回震荡,其实主力是不想震荡的,但是不震荡自己的货和行情走不出来。所以我昨天就说,应该就是这一两天会走出一波小行…...
LBS 开发微课堂|Polyline绘制优化:效果更丰富,性能更佳!
为了让广大的开发者 更深入地了解 百度地图开放平台的技术能力 轻松掌握满满的技术干货 更加简单地接入 开放平台的服务 我们特别推出了 “位置服务(LBS)开发微课堂” 系列技术案例 第一期的主题是 《Polyline 绘制优化升级》 你还想了解哪些…...
VS Code设置C++编译器路径
C_Cpp.default.compilerPath是C/C编译器路径; python.condaPath是conda路径....
laravel项目配置
创建laravel项目 composer create-project --prefer-dist laravel/laravel 项目名称生成项目key php artisan key:generate.清理配置缓存 php artisan config:clearlaravel生成代码 官网链接 php artisan make:model Flight --all生成Flight类相关的文件,对应数…...
Python试讲
Python试讲 导语Python简介Python及其特点如何使用Python Python与计算计算变量 导语 本次试讲内容如下:Python简介与使用,Python与基本运算 辅助教材为 《趣学Python编程》和《Python编程从入门到实践》 Python简介 Python是目前入门最简单最好学的…...
怎么建小说网站/百度做网站
win8 无法安装 net framework3.5 问题的解决办法 通过CMD 打指令 dism.exe /online /enable-feature /featurename:NetFX3 /Source:G:\sources\sxs 都OK了 注意G:\sources\sxs中的 G为window8安装的ISO装载到虚拟盘符, 这个必须用ISO文件里的东西,也就是必须用镜像…...
用asp做网站流程/重庆森林台词
今年的面试主要是技术面试 1、项目是怎么做的 常规问题 --略 2、判断项目的可以上线的标准是什么? ①与需求一致,符合客户的要求 ②用例执行完成 ③bug和研发、产品这边确定必须改的改完 ④进行release版本回归无bug 3、给你一个登陆功能࿰…...
网络营销外包公司招聘/网站关键字排名优化
M1相二氧化钒VO2单晶薄膜 钒氧化物高质量外延单晶薄膜 钒氧化物是一种极其复杂的金属氧化物,且具有丰富的相结构,每一种相都有其独特的用途,如VO2高温R相到低温M相之间发生结构转变同时伴随着4-5量级的电阻率变化,高温下的VO2薄膜…...
专业做外挂的网站/百度信息流广告投放
版本信息:SDE9.3、ORACLE11g1、SDE锁表检查处理1.1、查询并删除锁表进程(以sys或者system用户运行)select t1.username, t.object_id, t.session_id, t1.serial#,t.oracle_username,t.os_user_name, t.process from v$locked_object t,v$session t1 where t.session…...
专业网站优化电话/seo优化怎么做
终端中输入 : open .bash_profile , 打开文件(如果没有设置过, 可以用vim .bash_profile)后追加下面的内容, 路径为自己下载解压后的gradle的目录. export PATH GRADLE_HOME/Users/zhinantech/gradle-4.4/ export GRADLE_HOME export PATH$PATH:$GRADLE_HOME/bin…...
soho外贸网站建设/优化seo是什么意思
文章目录题目题目解析解题代码我的个人小站: acking-you.github.io题目 OJ平台 题目解析 实际上就是一个前缀和二分的处理,我一旦爆出前缀和二分,应该就都有思路了! 解题代码 这里偷懒使用了STL,当然也可自己去写二…...