前情:
《【接口测试实战(二)】根据接口文档使用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 对象提供对运行脚本的请求的数据的访问。
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