如何在接口测试工具 apipost 自定义变量?这个就须要应用 apipost 自带的脚本性能,有预执行脚本和后执行脚本
什么是APIPOST脚本APIPOST脚本是基于JavaScript语言的代码片段,可实现在接口申请或汇合测试时增加动静行为。
脚本可实现的性能
测试(断言)申请返回后果的正确性(后置脚本)。动静批改接口申请参数,如减少接口签名参数等(前置脚本)。接口申请之间传递数据(应用脚本操作变量)。脚本中能够间接申请一个接口地址。APIPOST的脚本分为预执行脚本和后执行脚本。
预执行脚本预执行脚本是一个申请发送前执行的脚本。
后执行脚本后执行脚本是一个申请发送后执行的脚本。
理论发送演示如下图所示(控制台打印),预执行在申请发送前执行,申请完结后,后执行脚本执行:
预执行脚本预执行脚本的作用工夫预执行脚本是一个申请发送前执行的脚本。
预执行脚本的作用预执行脚本能够实现以下作用:
编写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); }});后执行脚本后执行脚本的作用工夫后执行脚本是一个申请发送后执行的脚本。
...