一、定义:在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的值

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

3.2、responseBody:包含原始响应正文文本的字符串,可以通过 JSON.parse转换为 json 格式:
console.log(responseBody);
console.log(JSON.parse(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当前脚本数据文件相关。

网友评论