跳到主要内容

自定义脚本

提示

预执行操作是指在接口发送前先执行的操作,支持自定义脚本、连接数据库,常用来设置入参、打印数据等,后执行操作是指在接口发送后执行的操作,常用来设置变量、设置断言等,支持自定义脚本、连接数据库、提取变量、断言

添加自定义脚本

当需要在接口发送前添加执行的脚本,则在预执行操作中添加自定义脚本;后执行操作中也是相同用法不再过多赘述

组 68.png

预执行脚本

提示

预执行脚本是一个 请求发送前 执行的脚本。通过添加预执行操作——添加自定义脚本的方式进行添加

预执行脚本可以完成以下作用:

  • 编写JS函数等实现复杂计算;
  • 变量的打印
  • 定义、获取、删除、清空环境变量
  • 定义、获取、删除、清空全局变量
  • 获取请求参数
  • 动态添加、删除一个header请求参数
  • 动态添加、删除一个query请求参数
  • 动态添加、删除一个body请求参数
  • 发送HTTP请求

编写JS函数等实现复杂计算

image.png

我们可以在预执行脚本中定义一个函数_random,

function _random(){
return '你好,中国' + Math.random();
}

它返回一个字符串:“你好中国”+随机数,此时可以通过

apt.globals.set("random_var", _random());

将它赋值给全局变量 random_var

预执行脚本打印调试变量

我们可以通过console.log()将需要的变量打印在控制台,从而查看某个变量的当前值。如图上面示例中的

image.png

定义、获取、删除、清空环境变量

apt.variables.set("key", "value"); // 设置一个值为value的环境变量key
apt.variables.get("key"); // 获取环境变量key的值
apt.variables.delete("key"); // 删除环境变量key
apt.variables.clear(); // 清空定义的全部环境变量

定义、获取、删除、清空全局变量

apt.globals.set("key", "value");  // 设置一个值为value的全局变量key
apt.globals.get("key"); // 获取全局变量key的值
apt.globals.delete("key"); // 删除全局变量key
apt.globals.clear(); // 清空定义的全部全局变量

获取请求参数

通过request对象获取请求参数,详细可以参考《APIPOST内置变量》一节文档。

动态添加、删除一个header请求参数

apt.setRequestHeader("key", "value"); // 动态添加一个键为key值为value的header参数
apt.removeRequestHeader("key"); // 删除header参数中键为key的参数

动态添加、删除一个query请求参数

apt.setRequestQuery("key", "value"); // 动态添加一个键为key值为value的query参数
apt.removeRequestQuery("key"); // 删除query参数中键为key的参数

动态添加、删除一个body请求参数

apt.setRequestBody("key", "value");// 动态添加一个键为key值为value的body参数
apt.removeRequestBody("key");//删除body中键为key的参数

发送HTTP请求

我们可以在预执行脚本中利用AJAX的$.ajax方法发送一个http请求。以下是一个简单的示例demo:利用预执行脚本发送一个请求到https://echo.apipost.cn/get.php,并将响应结果的bigint赋值给了全局变量bigint。

异步发送HTTP请求
$.ajax({
url:"https://echo.apipost.cn/get.php",
method:"POST",
headers:{
"content-type":"application/json"
},
timeout:"10000",
data:JSON.stringify({"email":"xxx@xxx.com","password":"123456"}),
success:function (response) {
apt.globals.set("bigint",response.bigint);
}
}
);
同步发送HTTP请求 (Apipost 7.0.4+ 支持)
await $.ajax({
url:"https://echo.apipost.cn/get.php",
method:"POST",
headers:{
"content-type":"application/json"
},
timeout:"10000",
data:JSON.stringify({"email":"xxx@xxx.com","password":"123456"}),
success:function (response) {
apt.globals.set("bigint",response.bigint);
}
}
);

后执行脚本

提示

后执行脚本是一个 请求发送后 执行的脚本。通过添加后执行操作——添加自定义脚本的方式进行添加

后执行脚本可以完成以下作用:

  • 编写JS函数等实现复杂计算;
  • 变量的打印
  • 定义、获取、删除、清空环境变量
  • 定义、获取、删除、清空全局变量
  • 获取请求参数
  • 获取响应参数
  • 发送HTTP请求
  • 测试(断言)请求返回结果的正确性

后执行脚本打印调试变量

其用法同预执行脚本雷同,不再赘述。

定义、获取、删除、清空环境变量

其用法同预执行脚本雷同,不再赘述。

定义、获取、删除、清空全局变量

其用法同预执行脚本雷同,不再赘述。

获取请求参数

通过request对象获取请求参数,详细可以参考《APIPOST内置变量》一节文档。

获取响应参数

通过response对象获取请求参数,详细可以参考《APIPOST内置变量》一节文档。

发送HTTP请求

其用法同预执行脚本雷同,不再赘述。

测试(断言)请求返回结果的正确性

利用后执行脚本进行测试(断言)请求返回结果的正确性,详细可以参考《响应以及断言》一节文档。

预执行、后执行执行的顺序

image.png