乐趣区

关于前端:Postman-使用小技巧指南

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

Postman 诞生于 2013 年,一开始只是 Abhinav Asthana 着手于解决 API 测试 的工具,随着这个工具的使用者和需要迅速激增,Abhinav Asthana 找了他的两个前共事 Ankit Sobti 和 Abhijit 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 申请。

  1. Postman 应用程序监听客户端应用程序或设施收回的任何调用。
  2. Postman 代理捕捉申请并将申请转发给服务器。
  3. 服务器通过 Postman 代理将响应返回给客户端。

4.1 开启抓包

本机 IP 地址:

手机设置:

4.2 抓包成果

五、应用代理

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

除了传递信息,代理能够做更多的事件:

  1. 记录你的机器和互联网之间的所有流量。
  2. 显示所有申请、响应、Cookie 和题目的内容。
  3. 路由流量到指定的因特网地位。
  4. 调试接口。
  5. 避免间接攻打,保障安全性。
  6. 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

退出移动版