【接口测试实战(六)】接口测试之sandbox(沙盒)

30 篇文章 14 订阅

前情:

《【接口测试实战(零)】接口测试简介》

《【接口测试实战(一)】搭建接口测试环境》

《【接口测试实战(二)】根据接口文档使用postman测试》

《【接口测试实战(三)】接口测试用例的编写》

《【接口测试实战(四)】根据接口测试用例进行测试》

《【接口测试实战(五)】接口测试之断言实战》



在《【接口测试实战(五)】接口测试之断言实战》中有提到,在使用postman做接口测试的时候,可以在tests tab中对接口进行断言设置,手动输入 JavaScript 或使用代码编辑器右侧看到的代码段(Snippets)。而postman的测试是运行在沙盒环境中,是与app独立。

1)Postman Sandbox

  • 官方文档的介绍(Postman JavaScript reference):
    “Postman provides JavaScript APIs that you can use in your request scripts. The pm object provides most of the functionality for testing your request and response data, with the postman object providing some additional workflow control.”
  • Postman Sandbox是一个JavaScript执行环境,您可以在编写预请求脚本和测试脚本(在Postman和Newman中)时可用。在这个沙箱中执行您在预请求/测试脚本部分中写入的代码。

2)sandbox scripts中可用的 API

2.1 pm对象

pm 对象是 Postman Sandbox 中的一个非常核心的对象。

  • pm.* 执行大多数 Postman JavaScript API 功能。
  • 它提供对请求和响应数据以及变量的访问。

pm 对象内部的几个核心功能:

  • pm.info info 对象包含与正在执行的脚本有关的信息。例如请求名称,请求ID和迭代计数。
  • pm.variables/pm.environment/pm.globals,变量管理。
  • pm.request,pm 内的 request 对象表示当前脚本所在的请求。
  • pm.response,response 对象表示当前脚本所在请求的响应结果。
  • pm.cookies,cookies 对象包含与请求域相关联的 cookie 列表。
  • pm.test,test 函数用于编写异步测试,可以精确命名测试,同时也不会影响其他代码执行。
  • pm.expect,断言函数,底层使用 ChaiJs 中定义的 BDD 断言方式。
  • pm.sendRequest,sendRequest 函数用于发送异步请求。
  • pm.iterationData,iterationData 包含当前运行指定的数据文件中的数据。

*在脚本中使用请求和响应数据:
  • Request data: pm.request 对象提供对运行脚本的请求的数据的访问。
    • 对于Pre-request Script(预请求脚本),这是即将运行的请求。

    • 对于Test script(测试脚本),这是已经运行了的请求。

    • pm.request 对象提供以下属性和方法:
      • pm.request.url {string}(请求的url)
      • pm.request.headers {object}(请求的标题字典,request.headers[“key”]==“value”)
      • pm.request.method {string}(GET / POST / PUT等)
      • pm.request.body {object}(请求的表单数据字典)

  • Response data response 对象表示当前脚本所在请求的响应结果。
    • pm.response 对象提供以下属性和方法:
      • responseCode {object} Test-only:包含三个属性:
        • code {number}:响应代码(200为OK,404为未找到等)
        • name {string}:状态码文本
        • detail {string}:响应代码的解释
      • responseBody {string} Test-only:包含原始响应正文文本的字符串。(可以将其用作JSON.parse或xml2Json的输入)
      • responseTime {number} Test-only:响应时间(以毫秒为单位)
      • tests {object} Test-only:此对象是为自己填充。Postman将此对象的每个属性作为布尔测试。

  • Cookies pm.cookies 对象提供对与请求关联的 cookie 列表的访问。
    • pm.cookies.has(cookieName:String):Function → Boolean(检查请求的域是否存在特定的 cookie)
    • pm.cookies.get(cookieName:String):Function → String(获取指定cookie的值)
    • pm.cookies.toObject():Function → Object(获取对象中所有 cookie 及其值的副本)

2.2 常用的库

  • Lodash:JS实用程序库
  • cheerio:一个快速,精简的核心jQuery API实现(版本4.6.0及更高版本)
  • tv4 JSON模式验证器:根据json-schema草案的v4验证JSON对象
  • CryptoJS:标准和安全的加密算法。支持的算法:AES,DES,EvpKDF,HMAC-MD5,HMAC-SHA1 / 3/256/512,MD5,PBKDF2,Rabbit,SHA1 / 3/224/256/512,TripleDES
  • xml2Json(xmlString):这个函数在Newman和Postman中是一样的。


【部分内容参考自】

  • Postman JavaScript reference: https://learning.postman.com/docs/writing-scripts/script-references/postman-sandbox-api-reference
  • Postman Sandbox API:pm 对象:https://www.jianshu.com/p/b1b9ee89ce2d
  • Postman中文文档——沙盒(Sandbox):https://www.jianshu.com/p/a75116c9bdb2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值