Postman 使用指南及小技巧

目录
  • 一、什么是 Postman(前世今生)
  • 二、使用变量
    • 2.1 变量作用域适用于 Postman 中不同的场景
    • 2.2 编辑全局和环境变量
    • 2.3 编辑集合变量
    • 2.4 使用系统内置动态变量
  • 三、Postman 请求生命周期
    • 3.1 在前置请求(pre-request script)中使用脚本
    • 3.2 发送请求(request)
    • 3.3 接收一个响应(response)
    • 3.4 在测试(tests)中使用脚本
  • 四、使用 Postman 抓包
    • 4.1 开启抓包
    • 4.2 抓包效果
  • 五、使用代理
  • 六、使用 Collection Runner
  • 七、命令行脚手架 Newman
  • 八、付费功能

一、什么是 Postman(前世今生)

Postman 诞生于 2013 年,一开始只是 Abhinav Asthana 着手于解决 API 测试的工具,随着这个工具的使用者和需求迅速激增,Abhinav Asthana 找了他的两个前同事 Ankit SobtiAbhijit Kane 一起创建了公司 Postman Inc。

如今 Postman 已经成为一个 API 开发的协作平台。Postman 简化了构建 API 的每个步骤,并简化了协作,这样就可以更快地创建 API。

二、使用变量

Postman 允许用户在发送和接收时使用变量,以提高工作效率和可读性(不过只能保存字符串类型的值,所以复杂数据类型需要借助于 JSON.stringify()JSON.parse() 来管理)。

例如在不同运行环境中设置域名地址为变量:

Postman 支持在不同的作用域和上下文中使用变量,遵循就近原则,即如果在 GlobalEnvironment 中都有变量 name,则会取 Environment 中的 name

2.1 变量作用域适用于 Postman 中不同的场景

Global:全局变量可以在整个工作空间(Workspace)中使用,因为无法控制使用环境和容易造成混淆,应当是不可变的全局常量,谨慎使用。

pm.globals.set("variable_key", "variable_value");
pm.globals.get("variable_key");

Collection:集合变量在单个集合(Collection)中可用,往往具备通用的业务绑定属性,例如:商品属性、会员等级、通用秘钥等。

pm.collectionVariables.set("variable_key", "variable_value");
pm.collectionVariables.get("variable_key");

Environment:环境变量允许请求适应不同的环境,例如:本地、测试、预演和生产环境,常常用来区别请求地址。

pm.environment.set("variable_key", "variable_value");
pm.environment.get("variable_key");

Data: 数据变量来自外部 CSV 和 JSON 文件,当通过 Newman 或 Runner 来运行时才用到。

Local:局部变量只在单个请求生命周期中可用,运行完成后自动销毁。

pm.variables.set("variable_key", "variable_value");
pm.variables.get("variable_key");

2.2 编辑全局和环境变量

2.3 编辑集合变量

2.4 使用系统内置动态变量

Postman 内置了很多常见场景的动态变量

备注:Postman 支持在 Pre-request Script 和 Tests 中打印调试信息,和浏览器控制台一致,可以使用命令:console.log()console.info()console.warn()console.error()

console.log('当前时间戳:', pm.variables.replaceIn('{{$timestamp}}'));
console.log('随机颜色:', pm.variables.replaceIn('{{$randomColor}}'));
console.log('随机 IP:', pm.variables.replaceIn('{{$randomIP}}'));
console.log('随机名字:', pm.variables.replaceIn('{{$randomFullName}}'));
console.log('随机职业:', pm.variables.replaceIn('{{$randomJobType}}'));
console.log('随机城市:', pm.variables.replaceIn('{{$randomCity}}'));
console.log('随机图片:', pm.variables.replaceIn('{{$randomImageUrl}}'));

# 输出
当前时间戳:1609060090
随机颜色:azure
随机 IP:163.140.207.64
随机名字:Chester Funk
随机职业:Coordinator
随机城市:Port Devinborough
随机图片:http://placeimg.com/640/480

三、Postman 请求生命周期

在 Postman 中,一个完整的 Postman 请求生命周期,除了常规的请求(request)和响应(response),还包括前置请求脚本(pre-request script)和后置测试脚本(tests script)。Postman 包含一个基于 Node.js 的强大运行态(runtime),允许用户在 pre-request script 和 tests 事件中编写 JavaScript 代码。

3.1 在前置请求(pre-request script)中使用脚本

前置请求脚本(pre-request script)顾名思义就是在请求发送之前执行的脚本。

3.2 发送请求(request)

小技巧一:在链接中使用 :id 自定义路径参数

小技巧二:Cookie 可编辑

3.3 接收一个响应(response)

小技巧:保存响应结果

保存后的结果可以作为案例或记录以便开发使用。

3.4 在测试(tests)中使用脚本

Postman 支持在请求响应后通过测试脚本来验证请求是否符合预期。

示例一:验证响应状态码是否是 200

pm.test("Status test", function () {
    pm.response.to.have.status(200);
});

示例二:验证返回的业务数据(JSON)是否符合预期

pm.test("请求成功!", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.message).to.eql('success');
});

四、使用 Postman 抓包

在 Postman 应用程序中有一个内置代理来捕获 HTTP 请求。

  • Postman 应用程序监听客户端应用程序或设备发出的任何调用。
  • Postman 代理捕获请求并将请求转发给服务器。
  • 服务器通过 Postman 代理将响应返回给客户端。

4.1 开启抓包

本机 IP 地址:

手机设置:

4.2 抓包效果

五、使用代理

代理服务器是一个应用程序或系统,作为计算机和互联网之间的中介,或者更具体地说就是代表着客户端和服务器,向网站、服务器和其他互联网服务发出请求。

除了传递信息,代理可以做更多的事情:

记录你的机器和互联网之间的所有流量。显示所有请求、响应、Cookie 和标题的内容。路由流量到指定的因特网位置。调试接口。防止直接攻击,保证安全性。DevOps 负载平衡。

默认情况下,Postman 将使用自带的系统代理,如果自定义了代理,优先级将高于自带的系统代理。

六、使用 Collection Runner

集合运行器(Collection Runner)允许以指定顺序运行集合里面的请求。Collection Runner 将记录请求测试结果,并且脚本可以在请求之间传递数据。

七、命令行脚手架 Newman

Postman 提供脚手架工具 Newman 来以命令行的方式来运行集合(Collection)请求,其提供和 Postman 桌面端一致的功能,可以集成在工作流的 CI/CD 中。

# 安装
npm install -g newman

# 运行文件
newman run mycollection.json

# 运行 URL
newman run https://www.postman.com/collections/cb208e7e64056f5294e5 -e dev_environment.json

八、付费功能

另外 Postman 提供了很多团队协作需要的付费功能,例如:文档、监控、健康检查等。

版权声明

本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者后除和本文原始地址:https://blog.mazey.net/1878.html

GitHub:mazeyqian
Blog:blog.mazey.net

到此这篇关于Postman 使用指南及小技巧的文章就介绍到这了,更多相关Postman 使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Postman使用详解

    一.Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具.今天给大家介绍的这款网页调试工具不仅可以调试简单的css.html.脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一. 二.Postman的操作环境 postman适用于不同的操作系统,Postman Mac

  • Postman安装与使用详细教程 附postman离线安装包

    Postman一款非常流行的API调试工具.其实,开发人员用的更多.因为测试人员做接口测试会有更多选择,例如Jmeter.soapUI等.不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大. 需要postman安装包的童鞋可以通过下面链接自行下载哈! postman离线安装包亲测可用 官方网站:https://www.getpostman.com/ ###安装 1.Postman最早是作用chrome浏览器插件存在的,所以,你可以到chrome商店搜索下载安装,因为重

  • postman扩展程序包安装与使用步骤

    1.百度网盘下载postman扩展程序包链接: 链接: https://pan.baidu.com/s/1eBhSrZHJ45UvCAWowX3GkQ 提取码: emhx 2.解压文件到到当前文件夹 3.进入谷歌扩展程序 4.点击加载已解压的扩展程序,选择已解压的目录文件夹4.8.0_0 5.加载成功后,可通过点击详细信息来创建快捷方式 6.点击启动,即可打开postman界面 7.首次启动,会进入登录界面,选择Skip this,go straight to the app,即可进入postm

  • 使用postman传递list集合后台springmvc接收

    目录 postman传递list集合后台springmvc接收 postman 设置 springmvc配置 错误写法1 错误写法2 正确写法1 正确写法2 错误写法1解析 : 正确写法1解析 : 错误写法2解析 : 正确写法2解析 : 为什么需要这么定义接受参数呢 postman传递list集合后台springmvc接收 在做项目的时候我们可能会遇见一些场景需要前端给后端传递某个实体类的集合,这个时候后端的接口写完了,需要进行接口的测试,这里我使用的是postman进行接口测试,下面写下在用p

  • Postman 使用指南及小技巧

    目录 一.什么是 Postman(前世今生) 二.使用变量 2.1 变量作用域适用于 Postman 中不同的场景 2.2 编辑全局和环境变量 2.3 编辑集合变量 2.4 使用系统内置动态变量 三.Postman 请求生命周期 3.1 在前置请求(pre-request script)中使用脚本 3.2 发送请求(request) 3.3 接收一个响应(response) 3.4 在测试(tests)中使用脚本 四.使用 Postman 抓包 4.1 开启抓包 4.2 抓包效果 五.使用代理

  • Vue3.2.x中的小技巧及注意事项总结

    目录 前言 小技巧 关于减少.value的使用 关于减少import导入语句 关于在script setup中声明组件名字 注意事项 关于响应式的问题 模板循环中加不加key的问题 总结 前言 vue3在2022年的2月7号成为了vue默认版本,并且随之而来的还有vue3的新文档, 并且从实际使用的角度来说, vue3确实比vue2使用起来更加的舒服,所以觉得经过一段时间的使用,来分享一下使用过程中的小技巧以及注意事项. 小技巧 关于减少.value的使用 使用watch来监听Ref数据的时候,

  • AngularJS 整理一些优化的小技巧

    关于优化ng的手段网上已经有很多了,核心都是从$$watchers这个作用域内部属性说起的,今天我来说点别的,本质还是不变的,因为这是ng的硬伤,不过我相信只要运用合适的手法,这些问题还是可以避免的. ng简介 angularjs简称ng,是google出品的mvvm框架,此在提高前端项目开发效率(实践中来看确实很能提高开发效率),以控制器,指令,服务来围绕整个项目,内部以独有的DI来解决三层之前的调用问题.更多的详情信息可以参考我之前写的ng源码分析. ng的硬伤 说到硬伤就要先说下它的简单的

  • angularjs的一些优化小技巧

    关于优化ng的手段网上已经有很多了,核心都是从$$watchers这个作用域内部属性说起的,今天我来说点别的,本质还是不变的,因为这是ng的硬伤,不过我相信只要运用合适的手法,这些问题还是可以避免的. ng简介 angularjs简称ng,是google出品的mvvm框架,此在提高前端项目开发效率(实践中来看确实很能提高开发效率),以控制器,指令,服务来围绕整个项目,内部以独有的DI来解决三层之前的调用问题.更多的详情信息可以参考我之前写的ng源码分析. ng的硬伤 说到硬伤就要先说下它的简单的

  • JavaScript小技巧 2.5 则

    在前一篇博文中我介绍了一种可以让JavaScript多少具备一点类似Lambda表达式的编程能力的办法,但是由于要兼容于JavaScript的语法检查,所以可以使用的场合也很有限. 不过有些比较细心的朋友可能发现了,我在那个(伪)Lambda模块中使用了几个小技巧,现在我就把这几个小技巧介绍一下: 1.使用new Function来进行语法检查. 尝试写框架的同学们一定对此感受颇深:有的时候通过代码产生的代码可能因为技术上的失误而产语法错误,导致运行过程中异常中断:有的时候需要接受用户的输入,但

  • 5个保护MySQL数据仓库的小技巧

    汇总各种来源的数据,可以创建一个中央仓库.通过分析和汇总业务数据报告,数据仓库能够帮助企业做出明智.战略性的决策分析.虽然数据仓库提供了许多便利,但是把这些敏感数据收集到一个单独系统,会给数据仓库带来安全问题. 如果选择使用数据仓库,企业需要考虑如何更好地保护内部信息系统.任何数仓安全方面的妥协都会给入侵者或网络罪犯以可乘之机,造成销售.营销.客户信息等业务数据的毁坏泄露.今年爆发的WannaCry勒索软件事件也表明了这一点,现代企业需要严格规避数据犯罪. 在数据仓库中,最常见的数据库管理系统应

  • Lua中创建全局变量的小技巧(禁止未预期的全局变量)

    Lua 有一个特性就是默认定义的变量都是全局的.为了避免这一点,我们需要在定义变量时使用 local 关键字. 但难免会出现遗忘的情况,这时候出现的一些 bug 是很难查找的.所以我们可以采取一点小技巧,改变创建全局变量的方式. 复制代码 代码如下: local __g = _G -- export global variable cc.exports = {} setmetatable(cc.exports, {     __newindex = function(_, name, value

  • 前端开发必知的15个jQuery小技巧

    下面这些简单的小技巧能够帮助你玩转jQuery. 1.返回顶部按钮 通过使用jQuery中的animate 和scrollTop 方法,不用插件就可以创建一个滚动到顶部的简单动画: // Back to top $('.top').click(function (e) { e.preventDefault(); $('html, body').animate({scrollTop: 0}, 800); }); <!-- Create an anchor tag --> <a class=

  • Python学习小技巧之列表项的拼接

    本文介绍的是关于Python实现列表项拼接的一个小技巧,分享出来供大家参考学习,下面来看看详细的介绍: 典型代码: data_list = ['a', 'b', 'c', 'd', 'e', 'f'] separator = '\t' data_joined = separator.join(data_list) print(data_joined) 其输出为: a b c d e f 应用场景 在实现很多业务需求的时候,需要将列表中的每一项按照某种分隔符拼接成一个串,以完成某种序列化模式,用于

  • Kotlin开发的一些实用小技巧总结

    前言 随着Google I/O大会的召开,Google宣布将支持Kotlin作为Android的开发语言,最近关于Kotlin的文章.介绍就异常的活跃. 本文主要给大家介绍了关于Kotlin开发的一些实用小技巧,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1.Lazy Loading(懒加载) 延迟加载有几个好处.延迟加载能让程序启动时间更快,因为加载被推迟到访问变量时. 这在使用 Kotlin 的 Android 应用程序而不是服务器应用程序中特别有用.对于 Androi

随机推荐