预(后)执行脚本常用方法集合

本文主要讲解接口管理工具APIPOST的预执行脚本和后执行脚本里,常见的响应参数变量和常用方法集合。 ## request:请求参数对象 含义:当前请求的请求参数 适用范围:预执行脚本、后执行脚本 我们可以在预执行脚本或后执行脚本里,通过 request 对象来获得请求的参数数据。该对象结构如下: ``` { "url": "https://console.apipost.cn/need_token.php", // 字符串,请求URL "method": "POST", // 字符串,请求方式 "timeout": 25000, // 数字,请求超时时间限制(毫秒) "contentType": "application/x-www-form-urlencoded", //字符串,请求contentType "request_bodys": { // 对象,预定义请求Body参数 "user_id": "1", "nick_name": "jim green" }, "request_headers": { // 对象,预定义请求Header参数 "Authorization": "Basic amltOnB3ZDEyMw==" } } ``` ## response.raw:原始响应数据 含义:当前请求的原始响应数据 适用范围:后执行脚本 调用示例: ``` response.raw.status //响应状态码(200、301、404等) response.raw.responseTime //响应时间(毫秒) response.raw.type //响应类型(json等) response.raw.responseText //响应文本 ``` ### response.json:json格式的响应数据 含义:当前请求json格式的响应数据 适用范围:后执行脚本 ![](https://img.cdn.apipost.cn/image/article/82f600042878484365dde232ceee73e3.png) 调用示例如上面示例: ``` response.json.data.token //也可以 response.json.data["token"] ``` ### response.headers:响应头 含义:当前请求的响应头 适用范围:后执行脚本 ![](https://img.cdn.apipost.cn/image/article/e268cdae05835cc030895065a90af51a.png) 调用示例: ``` response.headers.server //也可以 response.headers["server"] ``` ### response.cookies :响应cookie 含义:当前请求的响应COOKIE 适用范围:后执行脚本 ![](https://img.cdn.apipost.cn/image/article/415422c814d9f364795c79b47dc7f825.png) 调用示例: ``` response.cookies.PHPSESSION //也可以 response.cookies["PHPSESSION"] ``` ## ApiPost常用方法集合 1、设置环境变量 ``` apt.variables.set("key", "value"); // 设置一个环境变量 key 值为value apt.variables.get("key"); // 获取环境变量 key的值 apt.variables.delete("key"); // 删除环境变量 key apt.variables.clear(); // 清空环境变量 ``` 2、设置全局变量 ``` apt.globals.set("key", "value"); // 设置一个全局变量 key 值为value apt.globals.get("key"); // 获取全局变量 key的值 apt.globals.delete("key"); // 删除全局变量 key apt.globals.clear(); // 清空全局变量 ``` 3、检查response body中是否包含某个string ``` apt.assert('response.raw.responseText=="test"'); // 检查响应文本是否等于test字符串 apt.assert('response.raw.responseText.indexOf("test") > -1'); // 检查响应文本是否含有test字符串 ``` 4、检测返回JSON中的某个值是否等于预期的值 ``` apt.assert('response.json.hasOwnProperty("errcode")'); // 检测返回json对象的是否含有errcode字段 apt.assert('response.json.errcode=="success"'); // 检测返回json对象的errcode字段是否等于success字符串 apt.assert('response.json.errcode.indexOf("success") > -1'); // 检测返回json对象的errcode字段是否含有success字符串 apt.assert('response.json.errcode!="success"'); // 检测返回json对象的errcode字段是否不等于success字符串 apt.assert('response.json.errcode>=1'); // 检测返回json对象的errcode字段是否大于1 apt.assert('response.json.errcode==null'); // 检测返回json对象的errcode字段是否是null ``` 5、测试response Headers中的某个元素是否存在(如:Content-Type) ``` apt.assert('response.headers.hasOwnProperty("content-type")'); ``` 6、验证Status code(响应码)的值是不是等于200 ``` apt.assert('response.raw.status==200'); ``` 7、验证Response time(请求耗时)是否大于某个值 ``` apt.assert('response.raw.responseTime>=100'); ```