美文网首页
Postman Sandbox:JavaScript沙箱

Postman Sandbox:JavaScript沙箱

作者: 猫与测试 | 来源:发表于2019-11-22 09:49 被阅读0次

Postman Sandbox (Postman 沙箱) 是一个 JavaScript 执行环境,在编写请求前的脚本和请求的测试脚本时(Postman 和 Newman 中都可以使用)。我们在 Pre-request Script 和 Tests 栏目中编写的代码都是在此沙箱中执行。

本文介绍属于 Sandbox 的大致介绍。在了解这部分内容之前,你需要那么一点点 JavaScript 代码基础。

那么在沙箱环境中,你有哪些东西能用,又能做些什么呢?这对于你更深入的做好接口测试是非常有必要了解的。

你可以:

  • 使用 JavaScript 的常用库
  • 设置或获取环境变量和全局变量
  • 操作 Cookies
  • 获取 request 和 response 的各种属性,比如headers、body等
  • 使用 Postman 提供的内置对象 pm 中的所有功能

JavaScript 常用库

你可以点击名称进入相关介绍文档。

  • Lodash: 一个 JavaScript 实用库,通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单
  • cheerio: 是jquery核心功能的一个快速灵活而又简洁的实现,主要是为了用在服务器端需要对 DOM 进行操作的地方,用于接口测试中需要处理 HTML 格式的返回时
  • BackboneJS Deprecated: 提供简单的模型,视图和集合。Sandbox 的未来版本中将删除此库。
  • SugarJS Deprecated: 扩展原生的 js 对象的使用,Sandbox 的未来版本中将删除此库。
  • tv4 JSON schema validator Deprecated: 检验 Json 结构是否准确的 JavaScript 库;
  • Ajv: 与 tv4 一样,都是 Json 结构验证库,任选一个即可。
  • CryptoJS: 标准和安全的密码算法库, 支持的加密算法: AES, DES, EvpKDF, HMAC-MD5, HMAC-SHA1/3/256/512, MD5, PBKDF2, Rabbit, SHA1/3/224/256/512, TripleDES

环境变量和全局变量处理

以下内容的使用,在变量设置一节中出现过,属于可以直接点选的快捷代码。

  • pm.environment.set("variableName", variableValue): 设置一个环境变量,variableName 为变量名,variableValue 为变量值。变量名必须为字符串

  • pm.environment.get("variableName"): 根据变量名提取环境变量的值,变量可以是通过 pm.environment.set 设置,也可以是在环境变量文件或环境管理功能中设置。必须要先选择一个环境此方法才能起作用。

  • pm.environment.has("variableName"): 判断某个环境变量名是否存在,存在则返回 true。

  • pm.environment.unset("variableName"): 清除一个指定的环境变量,必须要先选择一个环境此方法才能起作用。

  • pm.environment.clear(): 清除所有的环境变量,必须要先选择一个环境此方法才能起作用。

  • pm.globals.set(variableName, variableValue): 设置一个全局变量,variableName 为变量名,variableValue 为变量值。变量名必须为字符串

  • pm.globals.has("variableName"): 判断某个全局变量名是否存在,存在则返回 true。

  • pm.globals.get("variableName"):根据变量名提取全局变量的值,变量可以是通过 pm.environment.set 设置,也可以是在全局变量文件或全局变量管理中设置。

  • pm.globals.unset("variableName"): 清除一个指定的全局变量。

  • pm.globals.clear(): 清除所有的全局变量。

Cookies

  • responseCookies {array}:获取当前请求返回的响应中所有 cookie,以数组形式返回。
  • postman.getResponseCookie(cookieName):指定 cookie 名称获取 cookie 值。
console.log('cookies:', responseCookies )
// cookies: [{}, {}]
console.log('token:', postman.getResponseCookie('cookie_token').value)
// token: 79455c55e...6502ef1f8a5

请求与响应属性

以下属性都只能用于 Tests 脚本,不能用于 Pre-request Script。

  • request {object}: Postman 在编写 Tests 脚本时可用,只能读取不能修改。主要用于获取当次请求的各种属性。

    请求对象由以下对象组成:

    • data {object} - 返回请求的消息体 body 的数据,可通过属性取值方式 data.username 或 data['password'];
    • headers {object} - 返回请求的头部 headers 信息;
    • method {string} - GET/POST/PUT 等方法;
    • url {string} - 返回请求的 URL。

request 对象访问示例:

console.log(request);
///{data: {…}, headers: {…}, id: "c78dee07-399a-4885-bfcc-ca524e6114f6"…}
console.log('username:', request.data['username']);
/// username: showdoc
console.log('method:', request.method);
/// POST
  • responseHeaders {object}:返回所有的头部信息的对象,区分头部字段大小写,不推荐使用。
  • postman.getResponseHeader(headerName) :返回指定的头部字段数据,头部字段不区分大小写。
  • responseBody {string}: 包含原始响应正文文本的字符串。可以通过 JSON.parse 或者 xml2Json 转换为 json 格式。
  • responseTime {number}:响应时间(以毫秒为单位)
  • responseCode {object}:包含以下三个属性:
    • code {number}: 状态码, 200
    • name {string}: 状态码名称,OK
    • detail {string}: 状态码描述,Standard response for successful HTTP requests....

响应对象访问示例:

console.log(postman.getResponseHeader('content-type'));
console.log(JSON.parse(responseBody))
console.log(responseCode.detail)
  • tests {object} :测试对象,其每个属性都会被视为是 Boolean 测试值。
tests.testcode = responseCode.name == 'OK'
/// 运行后会在 Test Result 中显示测试标题为 testcode,与断言方式差不多
  • iteration {number}: 仅在 Collection Runner 和 Newman 中可用。表示测试运行的迭代索引。从0开始。如果不清楚测试迭代运行的概念,请参考Collection Runner 运行参数设置

相关文章

  • Postman Sandbox:JavaScript沙箱

    Postman Sandbox (Postman 沙箱) 是一个 JavaScript 执行环境,在编写请求前的脚...

  • postman测试沙箱

    postman沙箱: Postman沙箱是一个JavaScript执行环境,当你为请求编写预请求脚本或测试脚本时,...

  • Postman中文文档——沙盒(Sandbox)

    Postman沙盒 Postman Sandbox是一个JavaScript执行环境,您可以在编写预请求脚本和测试...

  • iOS笔记之数据存储

    一、沙箱SandBox和Bundle的概念 个人觉得要弄懂数据存储首先应该明确沙箱SandBox和Bundle的概...

  • Java沙箱机制的实现——安全管理器、访问控制器

    一、Java沙箱机制 Java沙箱(sandbox)是Java安全模型的核心,那如何理解沙箱呢? 我们知道如果默认...

  • 知识点

    蜜罐,沙箱,kafka 沙箱-sandbox蜜罐-honeypotkafka-消息中间件 抓包工具 TCPDUMP...

  • 沙箱安全机制

    保护程序安全 保护Java原生的JDK代码 Java安全模型的核心就是Java沙箱(sandbox)。什么是沙箱?...

  • Postman Sandbox

    一、定义:在Postman中运行一些JavaScript代码的地方。它是一个 JavaScript 执行环境,一个...

  • 智能合约的沙箱机制是什么?

    了解区块链技术的童鞋都知道以太坊的智能合约都是在沙箱(Sandbox)中运行的,那到底什么是沙箱呢?为什么要在沙箱...

  • iOS 的机制

    1、SandBox机制(沙盒机制) Sandbox 被简称为 应用程序沙盒,沙盒 或者 沙箱。在 iOS (mac...

网友评论

      本文标题:Postman Sandbox:JavaScript沙箱

      本文链接:https://www.haomeiwen.com/subject/gmecictx.html