Postman Sandbox

2019-12-28  本文已影响0人  静静地就好

一、定义:在Postman中运行一些JavaScript代码的地方。它是一个 JavaScript 执行环境,一个独立的环境,如Pre-request Script 和 Tests 编写的代码都是在此沙箱中执行。

二、主要作用:

1、设置或者获取环境变量和全局变量:

1.1、设置环境变量:pm.environment.set("variable_key", "variable_value");变量名为字符串,在当前环境添加环境变量。

1.2、设置全局变量:pm.globals.set("variable_key", "variable_value");变量名为字符串,在当前环境添加全局变量。

1.3、获取环境变量:pm.environment.get("variable_key");需要先选择环境,否则获取变量会undefined。

1.4、获取全局变量:pm.globals.get("variable_key");需要先选择环境,否则获取变量会undefined。

1.5、清除指定的环境变量:pm.environment.unset("variable_key");需要先选择环境再清除。

1.6、清除指定的全局变量:pm.globals.unset("variable_key");需要先选择环境再清除。

1.7、清除所有的环境变量:pm.environment.clear();需要先选择环境再清除。

1.8、清除所有的全局变量:pm.globals.clear();需要先选择环境再清除。

1.9、判断某个环境变量名是否存在:pm.environment.has("variable_key"): 如果存在会返回 true。

1.10、判断某个全局变量名是否存在:pm.globals.has("variable_key"): 如果存在会返回 true。

2、操作Cookies

2.1、获取当前请求返回的响应中的所有cookie:responseCookies,以数组形式返回。

2.2、指定cookie名称获取cookie值:postman.getResponseCookie(cookieName),然后就可以读取cookie的值。

console.log('cookies:',responseCookies)//返回所有的cookie

console.log('value:',postman.getResponseCookie('PIRATESSESSIONID'))//PIRATESSESSIONID这个名字的cookie

console.log('value:',postman.getResponseCookie('PIRATESSESSIONID').value)//PIRATESSESSIONID这个名字的cookie的值

图1 cookie

3、获取和查看请求request和响应response的各种属性:

3.1、request对象: Postman 在编写 Tests 脚本时可用,只能读取不能修改,主要用于获取当次请求的各种属性,包括请求体对象request.data、请求头对象request.headers、请求方法request.method、请求URL-request.url:

图2 request

3.2、responseBody:包含原始响应正文文本的字符串,可以通过 JSON.parse转换为 json 格式:

console.log(responseBody);

console.log(JSON.parse(responseBody));

图3 responseBody

4、还可以使用JavaScript的公共库:

4.1、cheerio:jquery核心功能的一个快速灵活而又简洁的实现,主要是为了用在服务器端需要对DOM进行操作的地方,可用于接口测试中需要处理 HTML 格式的返回时或者ui测试。参考文档:cheerio中文文档

4.2、lodash:JS实用库,可用于对array、number、objects、string的操作。参考文档:Lodash 中文文档 | Lodash 中文网

4.3、crypto-js:加密标准的JavaScript库,支持多种加密算法。参考文档:https://github.com/brix/crypto-js

5、使用与pm对象相关的功能:pm.info当前执行脚本信息相关、pm.variables/pm.environment/pm.globals变量相关、pm.request当前脚本请求相关、pm.response当前脚本响应相关、pm.cookies、pm.test异步测试函数相关、pm.expect断言函数相关、pm.sendRequest异步请求相关、pm.iterationData当前脚本数据文件相关。

上一篇 下一篇

猜你喜欢

热点阅读