网络编程
位置:首页>> 网络编程>> 网络编程>> Postman 使用指南及小技巧

Postman 使用指南及小技巧

作者:Mazey  发布时间:2023-06-23 22:28:38 

标签:Postman,使用

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

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

Postman 使用指南及小技巧

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

Postman 使用指南及小技巧

二、使用变量

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

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

Postman 使用指南及小技巧

Postman 使用指南及小技巧

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

Postman 使用指南及小技巧

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");

Postman 使用指南及小技巧

2.2 编辑全局和环境变量

Postman 使用指南及小技巧

2.3 编辑集合变量

Postman 使用指南及小技巧

2.4 使用系统内置动态变量

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

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

Postman 使用指南及小技巧


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 代码。

Postman 使用指南及小技巧

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

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

Postman 使用指南及小技巧

3.2 发送请求(request)

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

Postman 使用指南及小技巧

小技巧二:Cookie 可编辑

Postman 使用指南及小技巧

3.3 接收一个响应(response)

小技巧:保存响应结果

Postman 使用指南及小技巧

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

Postman 使用指南及小技巧

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

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

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 代理将响应返回给客户端。

Postman 使用指南及小技巧

4.1 开启抓包

Postman 使用指南及小技巧

本机 IP 地址:

Postman 使用指南及小技巧

手机设置:

Postman 使用指南及小技巧

4.2 抓包效果

Postman 使用指南及小技巧

五、使用代理

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

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

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

Postman 使用指南及小技巧

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

Postman 使用指南及小技巧

六、使用 Collection Runner

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

Postman 使用指南及小技巧

七、命令行脚手架 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 使用指南及小技巧

八、付费功能

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

Postman 使用指南及小技巧

版权声明

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

GitHub:mazeyqian
Blog:blog.mazey.net

来源:https://www.cnblogs.com/mazey/p/14660638.html

0
投稿

猜你喜欢

  • 最近随着狂风计划的席卷,我也终于开始橱窗产品位列表展示的编码工作,这只是一个改进项目,因此有原代码可供参考。但是当我打开原代码模板的时候便愣
  • Content Design(内容设计)即涉及产品需求也涉及到(产品和用户)互动过程中的具体环节。大多数团队中只有PM才会涉及到相关工作,一
  • 栅格就是你对页面版式的规划你日常所见的许多页面都有栅格存在。你可能注意不到,但它确实存在,并且支撑着设计内容,建立整体的架构,引导着页面的元
  •  在WEB2.0 网页充斥的年代,身边无时无刻都听到这样的声音:“拒绝海报式设计,要做有用的设计,要简洁,要清爽,要大气”产品经理
  • 本文介绍的圆角方法很特别,有创意。昨天群里大家讨论到一个豆瓣上的按钮,下面这个。在这里用到了不同宽度的按钮,但是只是用到了一个图片。&nbs
  • 这篇文章所说的视觉元素是指:在一个网站中除去内容(文本、图片、视频、音频等)之外的一些元素。比如图标,背景色,以及背景图案。视觉元素的设计是
  • 关于“登录”和“注册”的问题已经被很多设计师和交互设计上写过无数遍了,今天我在登录纳米盘网站时受到打击了所以写下此文。事情是这样的:当初租用
  • input高级限制级用法1.取消按钮按下时的虚线框 在input里添加属性值 hideFocus 或者 HideFocus=true2.只读
  • 在dreamweaver4中,你可以存储你自己设定的图片,链接,flash影片,颜色表,模板等等,组成这个站点的资产,这就是Assets面板
  • ASP中查询数据库记录写入XML文件示例,把下面代码保存为Asp_XML.asp运行即可:    &
  • 编号标准宗地编码(landCode)所在区段编码(sectCode)1131001BG001G0012131001BG002G0013131
  • 序言本文所提及的VTD-XML并非本文作者原创,作者只是对它进行介绍。问题通常当我们提起XML的使用时,最头痛的部分便是XML的verbos
  • 这里会讨论令Oracle停机时间最小化的步骤。各种形式的停机--计划的或者是非计划的--总是不断地发生,一个DBA应该有正确的备份策略,这样
  • Expires 属性 Expires 属性指定了在浏览器上缓冲存储的页距过期还有多少时间。如果用户在某个页过期之前又回到此页,就会显示缓冲区
  • 一张表(ColumnTable)的结构如下图所示当前需要实现的功能:通过Number的值为67来获取当前的节点ID、父节点ID递归实现SQL
  • Debian Etch Linux上成功安装了MySQL 5.0.27 icc版本,并使用JDBC测试中文成功!中文问题的关键是全部使用UT
  • * 对子查询和Join进行了优化,包括对MyISAD和InnoB存储引擎分散范围内的批量索引访问。* 增加了 BACKUP DATABASE
  • DW2004的中文乱码情况你遇到过么?乱码一般是怎么出现的呢?也许很多时候用其他软件(比如Editplus)写程序的时候,忘了meta标签里
  • 如果服务器出现Raid故障,在数据基本恢复成功后,发现其中的一个Sql Server日志文件(扩展名LDF)损坏严重,我们可以通过下面的操作
  • 本文是从百度百科中摘录出来的,asp在it中还有Application Service Provider,也就是应用服务供应商的意思。概述A
手机版 网络编程 asp之家 www.aspxhome.com