当前位置:网站首页>接口测试进阶接口脚本使用—apipost(预/后执行脚本)
接口测试进阶接口脚本使用—apipost(预/后执行脚本)
2022-08-10 17:50:00 【InfoQ】
预执行脚本的作用时间
预执行脚本是一个请求发送前执行的脚本。

预执行脚本的作用
预执行脚本可以完成以下作用:
- 编写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的环境变量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":"[email protected]","password":"123456"}),
success:function (response) {
apt.globals.set("bigint",response.bigint);
}
}Apipost下载地址:
Apipost-基于协作,不止于API文档、调试、Mock
————————————————
版权声明:本文为CSDN博主「优雅...」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
接口测试进阶接口脚本使用-apipost(预/后执行脚本)_优雅...的博客-CSDN博客
边栏推荐
- 一小时搞定 简单VBA编程 Excel宏编程快速扫盲
- pip install fatal error C1083 cannot open include file "io.h" No such file or directory
- 微服务架构-实现技术之六大基础组件:服务通信+事件驱动+负载均衡+服务路由+API网关+配置管理
- 不止跑路,拯救误操作rm -rf /*的小伙儿
- Kong自定义插件初体验
- R语言使用ggpubr包的ggbarplot函数可视化柱状图、设置add参数为mean_se和jitter可视化不同水平均值的柱状图并为柱状图添加误差线(se标准误差)和抖动数据点分布
- 想玩转监控神器Prometheus吗?
- Toronto Research Chemicals 双(乙酰丙酮)铂(II)
- 迪文发布新款2K高清DGUS智能屏
- 报告详解影响英特尔10/11/12代酷睿处理器的ÆPIC Leak安全漏洞
猜你喜欢
随机推荐
Toronto Research Chemicals BTK甜味剂配方丨D-Abequose
【深度学习21天学习挑战赛】4、初尝循环神经网络(RNN)——股票预测
【快应用】实现自定义导航栏组件
百度、四维图新、高德争“鲜”恐后
机器人控制器编程实践指导书旧版-实践四 步进电机(执行器)
如何学习性能测试?
【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(中)
网络可观测性:让您的网络监控更上一层楼|TechGenix
MySQL数据高级查询之连接查询、联合查询、子查询[通俗易懂]
Allegro软件Shape菜单下的每个命令的含义
WebRTC源码分析 nack详解
文档标题能否支持公式
AVFrame相关api内存管理
烟雾、空气质量、温湿度…自己徒手做个环境检测设备
[JMeter]Beanshell解析Json格式的接口响应数据
Flexsim 发生器和暂存区设定临时实体流颜色和端口
WebRTC source code analysis nack detailed explanation
【数据存储精讲】整型和浮点型有什么区别?为什么会精度丢失?
Making Pre-trained Language Models Better Few-Shot Learners
测试接口出现“data“: “Full authentication is required to access this resource“凭证已过期









