接口测试进阶接口脚本使用--apipost(预/后执行脚本)
预执行脚本的作用时间
预执行脚本是一个请求发送前执行的脚本。
【接口测试进阶接口脚本使用--apipost(预/后执行脚本)】
文章图片
预执行脚本的作用
预执行脚本可以完成以下作用:
- 编写JS函数等实现复杂计算;
- 变量的打印
- 定义、获取、删除、清空环境变量
- 定义、获取、删除、清空全局变量
- 获取请求参数
- 动态添加、删除一个header请求参数
- 动态添加、删除一个query请求参数
- 动态添加、删除一个body请求参数
- 发送HTTP请求
文章图片
我们可以在预执行脚本中定义一个函数_random,
function _random(){
return '你好,中国' + Math.random();
}
它返回一个字符串:“你好中国”+随机数,此时可以通过
apt.globals.set("random_var", _random());
将它赋值给全局变量random_var。
预执行脚本打印调试变量 我们可以通过console.log()将需要的变量打印在控制台,从而查看某个变量的当前值。如图上面示例中的
文章图片
定义、获取、删除、清空环境变量
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");
// 设置一个值为value的全局变量key
apt.globals.delete("key");
// 设置一个值为value的全局变量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参数 只针对 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);
}
}
);
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 2020-04-07vue中Axios的封装和API接口的管理
- 调取接口时报404错误(ID:16)
- CICC(脑机接口,科幻几近成真())
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- 女生该不该用小号测试男朋友()
- BNC公链|BNC公链 | Eth2.0测试网Topaz已质押超100万枚ETH
- 我的软件测试开发工程师书单
- 普通人进阶的三个过程-很多人都知道,但却本末倒置