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

Postman 高级用法学习

Postman 高级用法

Postman 是一款强大的 API 调试和开发工具,广泛应用于 API 开发、测试、调试和自动化流程中。除了基本的 API 请求发送和响应查看功能,Postman 还提供了许多高级功能。以下是详细的讲解,包括具体示例和操作步骤。


一、环境管理与变量使用

在 API 开发和测试过程中,切换不同的环境(如开发、测试、生产环境)和使用变量可以大大简化操作。Postman 的环境管理和变量功能非常有用。

1.1 环境管理

操作步骤

  1. 创建环境

    • 点击 Postman 界面右上角的环境选择器(通常显示为“No Environment”)。
    • 点击“Manage Environments”进入环境管理页面。
    • 点击“Add”按钮创建一个新环境。
    • 给环境命名,比如“开发环境”,并添加所需的环境变量。
  2. 定义环境变量

    • 在环境设置中,为每个环境变量设置键值对。例如,设置 base_urlhttps://dev.example.com/api
  3. 切换环境

    • 在环境选择器中选择所需的环境,所有使用 {{variable_name}} 语法的变量都会自动替换为当前环境的值。

示例

假设你有一个 API 基础 URL 在不同环境下不同:

  • 开发环境:https://dev.example.com/api
  • 测试环境:https://test.example.com/api

你可以在请求中使用变量:

GET {{base_url}}/users

切换环境时,{{base_url}} 会替换为相应的 URL。

1.2 变量使用

Postman 支持多种类型的变量,包括环境变量、全局变量和局部变量。

  • 环境变量:适用于当前选定的环境。
  • 全局变量:适用于所有环境和请求。
  • 局部变量:只在当前请求或脚本中有效。

操作步骤

  1. 定义全局变量

    • 点击右上角的“Environment Quick Look”(眼睛图标)。
    • 点击“Add”按钮添加全局变量。
  2. 使用变量

    • 在请求的 URL、Headers 或 Body 中使用 {{variable_name}} 来引用变量。

示例

GET {{base_url}}/users/{{user_id}}

在请求的“Pre-request Script”中,可以动态设置 user_id 变量:

pm.environment.set("user_id", 12345);

二、请求链与集合测试

Postman 支持将多个请求组织成集合(Collection),并允许在请求之间传递数据,实现复杂的 API 测试场景。

2.1 请求链

请求链可以让你在一个请求完成后,将其响应数据传递给下一个请求。

操作步骤

  1. 保存响应数据

    • 在请求的“Tests”选项卡中使用 pm.environment.setpm.globals.set 来保存响应数据。
    // 保存响应中的 user_id 到环境变量
    pm.environment.set("user_id", pm.response.json().id);
    
  2. 在后续请求中使用保存的变量

    • 在下一个请求中,通过 {{user_id}} 使用之前保存的变量。
    GET {{base_url}}/users/{{user_id}}/details
    
2.2 集合测试

Postman 集合(Collection)是一个包含多个请求的集合,可以批量运行这些请求,适用于自动化测试和回归测试。

操作步骤

  1. 创建集合

    • 在左侧的“Collections”面板中,点击“New Collection”创建一个新集合。
  2. 添加请求到集合

    • 将请求拖拽到集合中,或者在创建请求时直接添加到集合。
  3. 运行集合

    • 点击集合的“Run”按钮,进入“Collection Runner”界面。
    • 选择要运行的请求和环境,点击“Run Collection”启动测试。

示例

假设你有一个用户注册和登录的 API,需要依次测试用户注册、获取用户详情和用户登录。

1. POST {{base_url}}/registerBody: { "username": "testuser", "password": "testpass" }2. GET {{base_url}}/users/{{user_id}}使用注册成功后返回的 user_id3. POST {{base_url}}/loginBody: { "username": "testuser", "password": "testpass" }

可以通过集合和变量传递来实现这个测试流程。


三、使用脚本增强测试能力

Postman 提供了强大的脚本功能,可以在请求发送前(Pre-request Script)和收到响应后(Tests)执行 JavaScript 脚本,用于数据预处理和响应验证。

3.1 Pre-request Script

Pre-request Script 是在请求发送前执行的脚本,常用于设置变量、修改请求参数或动态生成数据。

操作步骤

  1. 编写 Pre-request Script
    • 在请求的“Pre-request Script”选项卡中编写 JavaScript 脚本。

示例

自动生成一个随机的 API 密钥:

const apiKey = Math.random().toString(36).substring(2, 15);
pm.environment.set("api_key", apiKey);
3.2 Tests

Tests 是在请求响应后执行的脚本,常用于验证响应状态码、响应体内容和 Headers。

操作步骤

  1. 编写测试脚本
    • 在请求的“Tests”选项卡中编写 JavaScript 脚本。

示例

检查响应状态码是否为 200,响应体是否包含 success 字段:

pm.test("Status code is 200", function () {pm.response.to.have.status(200);
});pm.test("Response contains success", function () {pm.expect(pm.response.json()).to.have.property("success");
});

四、Postman 自动化与 CI/CD 集成

Postman 不仅适用于手动测试,还可以与持续集成/持续交付(CI/CD)系统集成,实现自动化测试和部署。

4.1 通过 Newman 执行集合测试

Newman 是 Postman 的命令行运行器,允许在命令行中运行 Postman 集合测试,非常适合集成到 CI/CD 管道中。

安装 Newman

npm install -g newman

运行集合

  1. 导出集合和环境文件

    • 在 Postman 中,将集合和环境导出为 JSON 文件。
  2. 使用 Newman 运行集合

newman run path/to/collection.json -e path/to/environment.json

示例

运行一个名为 my-collection.json 的集合,并使用 my-environment.json 作为环境配置:

newman run my-collection.json -e my-environment.json
4.2 在 CI/CD 系统中集成

Postman 可以与 Jenkins、GitLab CI、Travis CI 等 CI/CD 工具集成,实现自动化测试。

操作步骤

  1. 配置集合和环境

    • 在 Postman 中创建并导出集合和环境文件。
  2. 编写 CI/CD 脚本

    • 在 CI/CD 系统中,编写脚本调用 Newman 运行集合测试。

示例

在 Jenkins 中的 Jenkinsfile 中运行 Postman 测试:

pipeline {agent anystages {stage('Test') {steps {sh 'newman run path/to/collection.json -e path/to/environment.json'}}}
}

五、利用 Postman 插件扩展功能

Postman 支持多种插件和扩展,可以通过 Postman 的插件市场(Postman Plugin Marketplace)来安装和使用。

5.1 Postman 插件

操作步骤

  1. 访问插件市场

    • 打开 Postman,点击左侧边栏的插件图标(积木状图标)。
  2. 安装插件

    • 在插件市场中浏览和搜索插件,点击“Install”按钮安装所需的插件。

常用插件

  • Postman Interceptor

    • 用于捕获和同步浏览器请求到 Postman,方便调试 Web 应用的 API 请求。

    操作步骤

    • 安装 Postman Interceptor 插件,并在 Chrome 浏览器中安装相应的 Postman Interceptor 扩展。
    • 在 Postman 中启用 Interceptor,并连接到浏览器扩展。
    • 开启“捕获请求”功能,在浏览器中进行操作,Postman 会自动捕获这些请求。
  • Postman Code Generator

    • 将 Postman 请求生成多种编程语言的代码片段,

方便在应用中使用。

操作步骤

  • 打开一个请求,点击右上角的“Code”按钮。

  • 在弹出的窗口中选择需要生成代码的语言和框架,Postman 会生成相应的代码片段。

  • Postman Visualizer

    • 将响应数据可视化为图表或表格,方便分析和展示数据。

    操作步骤

    • 在请求的“Tests”选项卡中编写 JavaScript 脚本,使用 pm.visualizer.set 方法定义可视化模板和数据。

    示例

    const template = `<table><tr><th>ID</th><th>Name</th></tr>{{#each response}}<tr><td>{{this.id}}</td><td>{{this.name}}</td></tr>{{/each}}</table>
    `;pm.visualizer.set(template, { response: pm.response.json() });
    

六、Postman 的使用技巧

Postman 的高效使用可以显著提升 API 开发和测试的效率。以下是一些常用的使用技巧。

6.1 快捷键

Postman 支持许多快捷键,可以加快操作速度。

常用快捷键

  • Ctrl + T:新建 Tab。
  • Ctrl + S:保存请求。
  • Ctrl + Enter:发送请求。
  • Ctrl + F:搜索请求。
6.2 Mock Server

Postman 的 Mock Server 功能可以模拟 API 响应,适用于前后端分离开发和测试。

操作步骤

  1. 创建 Mock Server

    • 在 Postman 中点击左侧的“Mock Servers”面板,点击“Create a Mock Server”按钮。
    • 选择要模拟的集合和响应,配置 Mock Server 的 URL 和环境。
  2. 使用 Mock Server

    • 在请求中使用 Mock Server 的 URL 进行调用,模拟真实的 API 响应。
6.3 监视器

Postman 的监视器可以定期运行集合,监控 API 的性能和可用性。

操作步骤

  1. 创建监视器

    • 在 Postman 中点击左侧的“Monitors”面板,点击“Create a Monitor”按钮。
    • 选择要监视的集合和环境,设置监视器的运行频率和通知方式。
  2. 查看监视器结果

    • 监视器会定期运行集合,并生成报告,可以在 Postman 中查看运行结果和性能指标。

七、总结

Postman 是一个功能强大的 API 开发和测试工具,提供了丰富的高级功能,如环境管理、变量使用、请求链、集合测试、脚本、自动化集成和插件扩展等。这些功能可以大大提升 API 开发和测试的效率。通过掌握这些高级用法,开发者可以更高效地进行 API 调试、测试和自动化流程的实现。

相关文章:

Postman 高级用法学习

Postman 高级用法 Postman 是一款强大的 API 调试和开发工具&#xff0c;广泛应用于 API 开发、测试、调试和自动化流程中。除了基本的 API 请求发送和响应查看功能&#xff0c;Postman 还提供了许多高级功能。以下是详细的讲解&#xff0c;包括具体示例和操作步骤。 一、环境…...

从新手到高手:Scala函数式编程完全指南,Scala 访问修饰符(6)

1、Scala 访问修饰符 Scala 访问修饰符基本和Java的一样&#xff0c;分别有&#xff1a;private&#xff0c;protected&#xff0c;public。 如果没有指定访问修饰符&#xff0c;默认情况下&#xff0c;Scala 对象的访问级别都是 public。 Scala 中的 private 限定符&#xff…...

IDEA 一键部署Docker

以部署示例服务&#xff08;sevnce-demo&#xff09;为例。 配置服务器 地址、账号、密码根据实际情况填写 配置镜像仓库 地址、账号、密码根据实际情况填写 编写Dockerfile 在sevnce-demo根目录下右键&#xff0c;选择创建Dockerfile。 # 基础镜像 FROM sevnce-registry.c…...

linux centos tomcat 不安全的HTTP请求方法

1、页面查看 2、在linux主机可使用此命令查看 curl -v -X OPTIONS http://实际地址 3、进入tomcat conf目录vim web.xml&#xff0c;增加以下内容 <!-- close insecure http methods --> <security-constraint><web-resource-collection><web-resource…...

深入Django(六)

Django的表单系统 引言 在前五天的教程中&#xff0c;我们介绍了Django的基本概念、模型、视图、模板和URL路由。今天&#xff0c;我们将讨论Django的表单系统&#xff0c;它是处理用户输入、验证数据和与模型交互的重要组件。 Django表单系统概述 Django的表单系统提供了一…...

PHP房产小程序微信小程序系统源码

&#x1f3e0;—— 购房租房&#xff0c;一“指”搞定&#x1f3e1; &#x1f50d;【开篇&#xff1a;房产新视界&#xff0c;尽在掌握】 在这个信息爆炸的时代&#xff0c;找房子不再是一场漫长的奔波。有了“房产微信小程序”&#xff0c;无论是购房还是租房&#xff0c;都…...

vscode 历史便携版下载方法

vscode 历史版本地址 https://code.visualstudio.com/updates/v1_75#_remote-developmentexe 信息 下载链接 https://vscode.download.prss.microsoft.com/dbazure/download/stable/5437499feb04f7a586f677b155b039bc2b3669eb/VSCodeUserSetup-x64-1.90.2.exe需要使用的 com…...

深入理解计算机系统 CSAPP 家庭作业8.19

假设n1 会打印 2行 hello 假设n2 会打印 4行 hello 假设n3 会打印 8行 hello 答案 2的n次方...

JDBC学习(Java DataBase Connectivity)

JDBC简介 JDBC入门 驱动jar包&#xff1a;C:\Users\49960\Desktop\mysql-connector-j-9.0.0 需要配置add library&#xff01;&#xff01;&#xff01; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.util.Stack;pub…...

2024源代码加密软件评测丨保护企业源代码防泄密

为什么需要对源代码进行加密&#xff1f;因为源代码泄密可能会带来一系列严重的后果&#xff1a; 源代码泄密会导致企业的知识产权被盗窃&#xff0c;竞争对手可能会利用这些代码开发类似的产品&#xff0c;从而削弱公司的市场竞争力。 由于知识产权被盗&#xff0c;公司可能会…...

测试图片上传功能,使用postman提供的url

是不是有时候想要测试图片上传功能&#xff0c;但是没有后台url进行测试&#xff0c;这时候就可以使用postman提供的url&#xff1a; https://postman-echo.com/post接下来&#xff0c;我将教你在postman中&#xff0c;用该url测试图片上传功能。 1.发送图片上传请求 第一步…...

使用dot来画流程图

Dot是一种图形描述语言&#xff0c;属于Graphviz软件的一部分。Graphviz是一个用于可视化图形&#xff08;图表、网络图等&#xff09;的开源工具集。使用Dot语言&#xff0c;你可以创建并描述节点和边&#xff0c;从而生成图形。以下是如何使用Dot语言画图的基本步骤&#xff…...

基于Java的微信记账小程序【附源码】

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;记账微信小程序被用户普遍使用&#xff0c;为方便用户能够…...

uniapp中 uni.previewImage用法

查看多张照片&#xff0c;图片地址用逗号分隔 showimig(item) {if (item.trainingRoom) {const urls item.trainingRoom.split(,);uni.previewImage({urls: urls,current: ,success: function(res) {// 成功的回调},fail: function(res) {// 失败的回调},complete: function(…...

第十三章 StringTable

String 的基本特性 String&#xff1a;字符串&#xff0c;使用一对 “” 引起来表示 // 两种定义方式 String s1 "atguigu"; // 字面量的定义方式 String s2 new String("hello");String 声明为 final 的&#xff0c;不可被继承String 实现了 Serializ…...

Adobe Acrobat添加时间戳服务器

文章目录 前言一、Adobe Acrobat添加时间戳服务器1.打开Adobe Acrobat软件2.点击【菜单】→ 【首选项】3.点击【安全性】→【更多】4.点击【新建】5.输入【名称】→【服务器URL】 前言 一、Adobe Acrobat添加时间戳服务器 1.打开Adobe Acrobat软件 2.点击【菜单】→ 【首选项…...

数据库管理-第217期 Oracle的高可用-02(20240704)

数据库管理217期 2024-07-04 数据库管理-第217期 Oracle的高可用-02&#xff08;20240704&#xff09;1 GDS简介2 GDS架构2.1 全局数据服务池2.2 全局数据服务域2.3 全局服务管理2.4 全局数据服务目录2.5 Oracle通知服务 3 GDS简图3.1 负载均衡3.2 只读服务失败转移3.3 多主复制…...

搭建基础库~

前言 项目中会用到工具库、函数库以及一些跟框架绑定的组件&#xff0c;如果这些基础模块每个项目都实现一套&#xff0c;维护起来那真的头大&#xff0c;你说呢&#x1f609; 搭建流程 准备工作 创建文件夹myLib、安装Git以及pnpm 目录大概就系这样子&#xff1a; myLib ├…...

深入了解Linux中的udhcpc:动态主机配置协议客户端

目录 什么是udhcpc&#xff1f;安装udhcpc配置网络接口使用udhcpc获取IP地址配置静态IP地址自定义udhcpc脚本高级选项udhcpc常见问题及排查方法1. 无法获取IP地址2. DNS配置不正确3. IP地址冲突4. 无法连接到默认网关5. 无法执行自定义脚本 在Linux系统中&#xff0c;网络配置是…...

O2OA(翱途) 开发平台之HTTP端口规划

O2OA(翱途) 开发平台[下称O2OA开发平台或者O2OA]采用相对灵活的系统架构&#xff0c;支持三种服务器运行的方式。本篇主要阐述合并服务运行独立服务运行代理端口运行三种服务器运行方式。 一、先决条件&#xff1a; 1、O2Server服务器正常运行&#xff0c;系统安装部署请参考文…...

以创新思维驱动下的盲盒小程序:重塑用户体验

一、引言 在数字化浪潮的推动下&#xff0c;小程序以其便捷、高效、无需下载安装的特性&#xff0c;迅速成为移动互联网的新宠。其中&#xff0c;盲盒小程序以其独特的玩法和惊喜感&#xff0c;吸引了大量用户的关注和参与。然而&#xff0c;随着市场竞争的加剧&#xff0c;如…...

设计资料:520-基于ZU15EG 适配AWR2243的雷达验证底板 高速信号处理板 AWR2243毫米波板

基于ZU15EG 适配AWR2243的雷达验证底板 一、板卡概述 本板卡系北京太速科技自主研发&#xff0c;基于MPSOC系列SOC XCZU15EG-FFVB1156架构&#xff0c;搭载两组64-bit DDR4&#xff0c;每组容量32Gb&#xff0c;最高可稳定运行在2400MT/s。另有1路10G SFP光纤接口、1路40G…...

晋级国赛!卓翼飞思技术引领,助力辽宁赛区机器人及人工智能大赛圆满收官

近日&#xff0c;第二十六届中国机器人及人工智能大赛—辽宁赛区选拔赛在大连海事大学圆满收官。本次大赛吸引来自辽宁工业大学、大连理工大学等知名高校的10余支队伍参与&#xff0c;充分展现各高校在机器人及人工智能领域的深厚实力和创新精神。其中&#xff0c;由卓翼飞思实…...

react ts 封装3D柱状图,支持渐变

留档&#xff0c;以防忘记 bar3D.tsx import React, { useEffect, useRef, useState } from react; import * as echarts from echarts; import echarts/lib/chart/bar; import echarts/lib/chart/pictorialBar; import echarts/lib/component/grid; import echarts/lib/comp…...

css---before和after伪元素

1.什么是伪元素 伪元素不是真正的页面元素&#xff0c;html没有对应的元素&#xff0c;但是其所有用法和表现行为与真正的页面元素一样&#xff0c;可以对其使用如页面元素一样的CSS样式&#xff0c;表面上看上去貌似是页面的某些元素来展现&#xff0c;实际上CSS样式展现的行…...

下载后端返回的图片,而不是打开图片

使用 window.location.href 和 window.open 后都是打开图片&#xff0c;原因是&#xff0c;当浏览器发现是浏览器支持的文件类型&#xff0c;例如 jpg、png、svg 等&#xff0c;默认是浏览器打开。 解决 fetch createObjectURL fetch 转换为 blob 对象 createObjectURL() 静…...

ELISA实验前,需要做好哪些准备?

进行ELISA试剂盒实验前&#xff0c;需要进行周密的准备工作以确保实验的顺利进行和实验的准确性。那么&#xff0c;具体应该做哪些准备呢&#xff1f;欣博盛生物为您总结了一些关键的准备工作步骤&#xff1a; 1. 阅读说明书 仔细阅读ELISA试剂盒的说明书&#xff0c;了解试剂…...

浅谈 Linux 中的 core dump 分析方法

文章目录 一、什么是 core dump二、发生 core dump 的原因1. 空指针或非法指针引起 core dump2. 数组越界或指针越界引起的 core dump3. 数据竞争导致 core dump4. 代码不规范 三、core dump 分析方法1. 启用 core dump2. 触发 core dump2-1. 因空指针解引用而崩溃2-2. 通过 SI…...

自研直播系统-直播系统实战

文章目录 1 流媒体基础本文教程下载地址1.1 流媒体1.2 流式传输方式1.2.1 顺序流式传输1.2.2 实时流式传输 1.3 流媒体传输协议1.3.1 rtmp协议1.3.2 HLS协议1.3.3 RTSP协议1.3.4 视频流的对比 1.4 视频编码(codec)1.5 分辨率的规范分辨率簡介&#xff1a;1.5.2 分辨率單位 1.6 …...

python数据分析入门学习笔记

目录 一、 数据分析有关的python库简介 (一)numpy (二)pandas (三)matplotlib (四)scipy (五)statsmodels (六)scikit-learn 二、 数据的导入和导出 三、 数据筛选 四、 数据描述 五、 数据处理 六、 统计分析 七、 可视化 八、 其它![](https://…...