当前位置: 首页 > news >正文

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
  1. 下载:访问 Postman 官网 下载适用于你操作系统的版本。
  2. 安装:根据系统类型执行安装程序。
  3. 启动:安装完成后启动 Postman 应用。
2.2 创建 Postman 账户
  • 注册/登录:启动 Postman 后,你可以选择注册一个 Postman 账户或使用已有账户登录。账户功能包括同步数据、分享请求等。

3. Postman 的基本操作

3.1 创建和发送请求
  1. 新建请求

    • 点击左侧菜单中的 “New” 按钮,然后选择 “Request”。
    • 输入请求的名称和描述,并选择一个集合或创建新集合来保存请求。
  2. 设置请求

    • 请求方法:选择 HTTP 方法(如 GET、POST、PUT、DELETE)。
    • 请求 URL:在地址栏输入 API 端点的 URL。
    • 请求头:添加请求头信息(例如 Content-Type)。
    • 请求体:对于 POST 或 PUT 请求,配置请求体数据。
  3. 发送请求

    • 点击 “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 和其他设置。

  1. 创建环境

    • 点击右上角的 “Environments” 图标。
    • 选择 “Manage Environments”。
    • 创建新环境并添加变量(如 baseUrl)。
  2. 使用变量

    • 在请求中使用变量(例如 {{baseUrl}}/posts)。

示例

创建一个名为 “Development” 的环境,并添加变量 baseUrl,设置值为 https://jsonplaceholder.typicode.com。然后在请求 URL 中使用 {{baseUrl}}/posts


4. 进阶功能

4.1 编写测试脚本

Postman 允许你在请求后执行测试脚本,以验证响应是否符合预期。

  1. 添加测试脚本

    • 在请求的 “Tests” 标签中编写测试脚本。
  2. 常见测试脚本

    • 检查状态码
      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 使用集合

集合是组织和管理请求的容器,可以将相关请求分组在一起,方便管理和执行。

  1. 创建集合

    • 在左侧栏中点击 “Collections”。
    • 点击 “New Collection” 创建新的集合,并添加描述。
  2. 添加请求到集合

    • 在创建请求时,选择要保存的集合。
    • 请求将保存在指定的集合中。
  3. 运行集合

    • 点击集合名称,选择 “Run”。
    • 使用 Collection Runner 运行集合中的所有请求,并查看测试结果。

示例

创建一个名为 “User API” 的集合,并将获取用户和创建用户的请求添加到该集合。使用 Collection Runner 执行所有请求并生成报告。

4.3 使用 Mock 服务器

Mock 服务器允许你模拟 API 接口的响应,进行接口开发和测试。

  1. 创建 Mock 服务器

    • 在 Postman 中点击 “Mock Servers”。
    • 创建新的 Mock 服务器,并为其配置请求和响应。
  2. 使用 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 测试集合
  1. 创建集合

    • 创建一个名为 “Simple API Tests” 的集合。
    • 添加 GET 请求 /api/posts 和 POST 请求 /api/posts
  2. 编写测试脚本

    • 对 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题去除重复字母

题目&#xff1a; 题解&#xff1a; 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"], //一个配置文件&#xff0c;可以被基础配置中的已启用的规则继承"parser": "babel/eslint-parser…...

Spring Cache框架详解

Spring Cache框架详解 Spring Cache是Spring框架提供的一个强大的缓存抽象层&#xff0c;旨在简化缓存技术的集成和使用。自Spring 3.1版本开始&#xff0c;Spring Cache就被引入以支持在Spring应用程序中添加缓存功能。随着Spring版本的迭代&#xff0c;Spring Cache的功能日…...

解决Html iframe 内嵌video标签导致视频无法全屏展示的问题

原因&#xff1a; 由于浏览器的安全策略所限制的。为了防止恶意网站利用全屏播放功能进行滥用或欺骗用户&#xff0c;浏览器对iframe中的视频播放做了限制。 在iframe标签中播放视频时&#xff0c;浏览器会根据安全策略阻止视频全屏播放。这是因为iframe标签中的内容被认为是第…...

谷粒商城实战笔记-110~114-全文检索-ElasticSearch-查询

文章目录 一&#xff0c;110-全文检索-ElasticSearch-进阶-两种查询方式二&#xff0c;111-全文检索-ElasticSearch-进阶-QueryDSL基本使用&match_all三&#xff0c;112-全文检索-ElasticSearch-进阶-match全文检索四&#xff0c;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.结尾&#xff08;附网盘链接&#xff09; 1.简介 此文章并不是教程&#xff0c;只能当作笔者的学习分享&…...

AI人工智能分析王楚钦球拍被踩事件的真相

在2024年巴黎奥运会乒乓球混双决赛的热烈氛围中&#xff0c;中国队王楚钦与孙颖莎以出色的表现夺得金牌&#xff0c;然而&#xff0c;赛后发生的一起意外事件——王楚钦的球拍被踩坏&#xff0c;引起了广泛关注和热议。为了探寻这一事件的真相&#xff0c;我们可以借助AI人工智…...

C++客户端Qt开发——多线程编程(一)

多线程编程&#xff08;一&#xff09; ①QThread 在Qt中&#xff0c;多线程的处理一般是通过QThread类来实现。 QThread代表一个在应用程序中可以独立控制的线程&#xff0c;也可以和进程中的其他线程共享数据。 QThread对象管理程序中的一个控制线程。 run() 线程的入口…...

安装pnpm

安装pnpm&#xff08;Performant npm&#xff09;&#xff0c;即高性能的npm包管理工具&#xff0c;可以通过多种方式进行。以下是详细的安装步骤&#xff1a; 一、通过npm全局安装 打开命令行工具&#xff1a;在你的计算机上打开命令行工具&#xff0c;例如Windows的CMD、Pow…...

CSS平移实现双开门效果

CSS平移实现双开门效果 一共要三张图片&#xff0c;一张作为父级背景&#xff0c;两张为兄弟左右布局 父子结构布局 一张作为父级背景&#xff0c;两张为兄弟左右布局。之后添加鼠标悬停效果&#xff0c;两张子图分别从左右平移 [外链图片转存失败,源站可能有防盗链机制,建议…...

共享文件是谁删除的?谁删了那个文件?一次“误删事件”背后的思考

上周&#xff0c;公司设计部的一位主管在准备客户提案时&#xff0c;突然发现关键素材文件夹不见了。那里面是整个团队近两周的工作成果——图片、方案、视频文件应有尽有。大家在共享目录里翻来覆去找了半天&#xff0c;最后只得到一个模糊的解释&#xff1a;“可能是谁误删了…...

如何快速掌握Framer.js:现代原型设计框架的核心模块解析

如何快速掌握Framer.js&#xff1a;现代原型设计框架的核心模块解析 【免费下载链接】Framer Framer - Design Everything 项目地址: https://gitcode.com/gh_mirrors/fr/Framer Framer.js是一款功能强大的现代原型设计框架&#xff0c;它允许设计师和开发者创建高保真的…...

Crystals Kyber算法实战:5分钟搞定密钥封装机制(KEM)配置

Crystals Kyber算法实战&#xff1a;5分钟搞定密钥封装机制&#xff08;KEM&#xff09;配置 在当今数字安全领域&#xff0c;后量子密码学正从理论走向工程实践。作为NIST后量子密码标准化项目的优胜算法&#xff0c;Kyber以其高效的格基加密机制&#xff0c;正在重构密钥分发…...

别再死记硬背了!用‘快递寄送’和‘跨国通话’的比喻,5分钟搞懂OSI七层模型与TCP/IP五层模型

快递与越洋电话&#xff1a;用生活场景拆解网络分层模型 想象一下&#xff0c;你网购的商品从深圳工厂到北京家门口&#xff0c;要经过打包、装车、跨省运输、本地配送多个环节——这和网络数据传输的层层封装如出一辙。而当你给海外亲友视频通话时&#xff0c;双方手机自动协商…...

ARM A53上跑通1080P实时EIS防抖?手把手教你优化特征点与透视变换(附代码思路)

ARM A53实战&#xff1a;1080P实时EIS防抖的7个关键优化策略 当行车记录仪的镜头在颠簸路面剧烈晃动&#xff0c;或是运动相机在冲浪时被海浪拍打&#xff0c;画面稳定性的价值就凸显出来。传统光学防抖受限于物理结构&#xff0c;而电子防抖(EIS)通过算法补偿成为嵌入式设备的…...

智鼎在线测评通关秘籍:2024最新51job题库实战解析与避坑指南

智鼎在线测评通关秘籍&#xff1a;2024最新51job题库实战解析与避坑指南 在竞争激烈的求职市场中&#xff0c;智鼎在线测评已成为众多知名企业筛选人才的第一道门槛。据统计&#xff0c;2024年使用智鼎测评系统的企业数量同比增长35%&#xff0c;而通过率却不足40%。这份指南将…...

逆向工程实战:从V8引擎角度破解JavaScript无限debugger(保姆级教程)

V8引擎深度解析&#xff1a;JavaScript调试机制与安全实践 在JavaScript开发领域&#xff0c;调试器(debugger)是开发者日常工作中不可或缺的工具。作为Chrome浏览器和Node.js的核心引擎&#xff0c;V8对debugger关键字的处理机制直接影响着开发者的调试体验。本文将深入探讨V8…...

探索黑苹果安装实战:从零到完美的完全指南

探索黑苹果安装实战&#xff1a;从零到完美的完全指南 【免费下载链接】Hackintosh 国光的黑苹果安装教程&#xff1a;手把手教你配置 OpenCore 项目地址: https://gitcode.com/gh_mirrors/hac/Hackintosh 破解三大核心技术痛点 直面固件层兼容性障碍 当PC尝试运行mac…...

TI C2000 DSP新手必看:用CCS建第一个工程时,如何避免头文件找不到的坑?

TI C2000 DSP开发避坑指南&#xff1a;从零构建CCS工程的正确姿势 第一次打开Code Composer Studio(CCS)时&#xff0c;那个充满按钮和菜单的界面就像面对一架航天飞机的控制台——每个开关都看起来很重要&#xff0c;但完全不知道从哪下手。特别是当你在教程指导下创建了第一个…...

YOLOv8 Detect Head 源码拆解:从张量变形到边界框解码,一步步带你理解Anchor-Free预测

YOLOv8 Detect Head 深度解析&#xff1a;从特征图到预测框的完整实现路径 在计算机视觉领域&#xff0c;目标检测一直是核心任务之一。YOLOv8作为当前最先进的实时检测器&#xff0c;其Detect Head模块的设计尤为精妙。本文将带您深入探索这一模块的内部工作机制&#xff0c;从…...