当前位置: 首页 > 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;系统安装部署请参考文…...

避坑指南:为什么你的Jetson开发板apt安装Perf总是失败?

深度解析&#xff1a;Jetson开发板为何无法直接安装Perf及高效解决方案 在嵌入式开发领域&#xff0c;Nvidia Jetson系列凭借其强大的AI计算能力成为边缘计算的热门选择。然而当开发者尝试在这类设备上使用标准Ubuntu方法安装性能分析工具Perf时&#xff0c;往往会遭遇意想不到…...

汉语到底比其他语言强在哪?

汉语到底比其他语言强在哪&#xff1f;只要一提起这个话题&#xff0c;弹幕里肯定有朋友要说了&#xff1a;哎呀&#xff0c;英语才是世界语言&#xff0c;汉语不严谨&#xff0c;语言没有高下之分&#xff0c;禁止拉踩。这种论调咱们听了一百年了&#xff0c;甚至不少自己人都…...

保姆级教程:用snntorch在MNIST上训练你的第一个脉冲神经网络(附完整代码)

从零开始&#xff1a;用snntorch构建你的第一个脉冲神经网络手记 第一次接触脉冲神经网络&#xff08;SNN&#xff09;时&#xff0c;我被它模拟生物神经元放电的特性深深吸引。与传统人工神经网络不同&#xff0c;SNN通过离散的脉冲信号传递信息&#xff0c;更接近人脑的工作机…...

5个技巧让Markdown Viewer成为你的浏览器文档中心

5个技巧让Markdown Viewer成为你的浏览器文档中心 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 还在为浏览器无法直接预览Markdown文档而烦恼吗&#xff1f;Markdown Viewer浏览…...

OneAPI 百度文心一言ERNIE-Bot接入:千帆平台Key对接指南

OneAPI 百度文心一言ERNIE-Bot接入&#xff1a;千帆平台Key对接指南 安全提示&#xff1a;使用 root 用户初次登录系统后&#xff0c;务必修改默认密码 123456&#xff01; 1. 引言&#xff1a;为什么需要统一的API管理平台 在当今AI技术快速发展的时代&#xff0c;企业和开发…...

BootstrapBlazor滑块组件:如何实现垂直方向滑动控制

BootstrapBlazor滑块组件&#xff1a;如何实现垂直方向滑动控制 【免费下载链接】BootstrapBlazor 项目地址: https://gitcode.com/gh_mirrors/bo/BootstrapBlazor BootstrapBlazor滑块组件为Blazor开发者提供了强大的数值输入控件&#xff0c;而垂直方向滑块则是构建现…...

RCLAMP0542T.TCT‌静电保护TVS 二极管阵列 SEMTECH 电子元器件IC 芯片

RCLAMP0542T.TCT‌ 是由 ‌SEMTECH‌ 公司推出的一款超低电容、双通道ESD&#xff08;静电放电&#xff09;保护 TVS 二极管阵列&#xff0c;具备0.45pF 超低电容、5A 浪涌承受能力和超小型 SLP1610P4T 封装&#xff0c;专为高速数据接口设计&#xff0c;广泛应用于通信设备、消…...

探索粗糙表面波动模型生成:打造不规则之美

粗糙表面&#xff0c;波动模型生成&#xff0c;用于在物体表面生成不规则的粗糙表面&#xff0c;或面表面的波动边界等&#xff0c;可自定义波动分布与赋值。在图形学和模拟领域&#xff0c;生成物体表面的粗糙质感或是波动边界常常是一个有趣又具有挑战性的任务。今天咱们就聊…...

手把手教你用ThinkPHP6和Uniapp从零搭建一个物业设备巡检小程序(附完整源码)

从零构建物业设备巡检系统&#xff1a;ThinkPHP6与Uniapp全栈实战指南 物业设备巡检是保障设施安全运行的关键环节&#xff0c;传统纸质记录方式效率低下且难以追溯。本教程将带您从零开始&#xff0c;基于ThinkPHP6后端框架与Uniapp跨端方案&#xff0c;构建一个功能完整的移动…...

告别复制粘贴!用ABAP类CL_SALV_BS_RUNTIME_INFO自动化获取任意ALV报表数据

告别复制粘贴&#xff01;用ABAP类CL_SALV_BS_RUNTIME_INFO自动化获取任意ALV报表数据 在SAP系统的日常开发中&#xff0c;ABAP程序员经常需要从各种ALV报表中提取数据用于二次处理。传统的手动复制粘贴方式不仅效率低下&#xff0c;还容易出错。本文将介绍如何利用CL_SALV_BS_…...