写点什么

接口测试进阶接口脚本使用—apipost(预 / 后执行脚本)

作者:Xd
  • 2022 年 7 月 07 日
  • 本文字数:1244 字

    阅读完需:约 4 分钟

预执行脚本的作用时间

预执行脚本是一个请求发送前执行的脚本。

预执行脚本的作用

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

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

  • 变量的打印

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

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

  • 获取请求参数

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

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

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

  • 发送 HTTP 请求

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


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

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

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

apt.globals.set("random_var", _random());
复制代码

将它赋值给全局变量 random_var。

预执行脚本打印调试变量

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

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

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

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

apt.globals.set("key", "value");  // 设置一个值为value的全局变量keyapt.globals.get("key");  // 设置一个值为value的全局变量keyapt.globals.delete("key");  // 设置一个值为value的全局变量keyapt.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参数 只针对 form-data、urlencode有效apt.removeRequestBody("key");//删除body中键为key的参数 只针对 form-data、urlencode有效
复制代码

发送 HTTP 请求

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

$.ajax({    url:"https://echo.apipost.cn/get.php",    method:"POST",    headers:{        "content-type":"application/json"    },    timeout:"10000",    async:false, // 记住此项设置为 false,必须同步请求    data:JSON.stringify({"email":"xxx@xxx.com","password":"123456"}),     success:function (response) {        apt.globals.set("bigint",response.bigint);     }}
复制代码

Apipost 下载地址:

Apipost-基于协作,不止于API文档、调试、Mock​

用户头像

Xd

关注

还未添加个人签名 2022.03.28 加入

还未添加个人简介

评论

发布
暂无评论
接口测试进阶接口脚本使用—apipost(预/后执行脚本)_Java_Xd_InfoQ写作社区