网站首页 > 博客文章 正文
apiFox是一个比较好的国内开发的,接口测试和管理工具。
为了方便接口测试,我们可以通过设置token,来自动获取并填充到接口请求中。
实现过程是,通过前置操作,创建公共脚本模拟登陆,获取token,放入变量中,然后设置当前项目的Auth,这样就可以实现每次调用接口自动登陆获取最新token了。
在项目概览中,增加全局脚本:
选择“公共脚本”
点击“管理公共脚本”:
选择新建后,填写脚本内容:
// body 里面的参数需要自己设置对应的
// 定义发送登录接口请求方法
function sendLoginRequest() {
// 获取环境里的 前置URL
// const baseUrl = pm.environment.get('BASE_URL');
// 登录用户名,这里从环境变量 LOGIN_USERNAME 获取,也可以写死(但是不建议)
// const username = pm.environment.get('LOGIN_USERNAME');
// 登录用户名,这里从环境变量 LOGIN_PASSWORD 获取,也可以写死(但是不建议)
// const password = pm.environment.get('LOGIN_PASSWORD');
// 构造一个 POST x-www-form-urlencoded 格式请求。这里需要改成你们实际登录接口的请求参数。
const loginRequest = {
url: 'http://localhost:8080/sbimes/sys/login',
method: 'POST',
// 若 body 为 x-www-form-urlencoded 格式,mode 为 'urlencoded'
// body: {
// mode: 'urlencoded',
// urlencoded: [
// { key: 'account', value: username },
// { key: 'password', value: password }
// ]
// }
/*
// 若 body 为 form-data 格式,mode 为 'formdata'
body: {
mode: 'formdata',
formdata: [
{ key: 'account', value: username },
{ key: 'password', value: password }
]
}*/
/*
header: {
"Content-Type": "application/json", // 注意:如果选择json格式,header 需要加上 Content-Type
},
*/
// 若 body 为 raw 或 json 格式,mode 为 'raw'
body: {
mode: 'raw',
raw: JSON.stringify(
{
"username":"admin",
"password":"123456",
"captcha":"",
"checkKey":""})
}
};
// 发送请求。
// pm.sendrequest 参考文档: https://www.apifox.cn/help/app/scripts/api-references/pm-reference/#pm-sendrequest
pm.sendRequest(loginRequest, function (err, res) {
if (err) {
console.log(err);
} else {
// 读取接口返回的 json 数据。
// 如果你的 token 信息是存放在 cookie 的,可以使用 res.cookies.get('token') 方式获取。
// cookies 参考文档:https://www.apifox.cn/help/app/scripts/api-references/pm-reference/#pm-cookies
const data = JSON.parse(res);
// 将 accessToken 写入环境变量 ACCESS_TOKEN
//这个是写到全局变量中
pm.globals.set('token', data.result.token);
//这个是写到当前的环境变量中
//pm.globals.set('token', data.result.token);
}
});
}
// 获取环境变量里的 ACCESS_TOKEN
const token = pm.globals.get('token');
// 获取环境变量里的 ACCESS_TOKEN_EXPIRES
// const accessTokenExpires = pm.environment.get('ACCESS_TOKEN_EXPIRES');
// 如 ACCESS_TOKEN 没有值,或 ACCESS_TOKEN_EXPIRES 已过期,则执行发送登录接口请求
if (!token) {
sendLoginRequest();
}
保存后,回到“项目概览”页面,
类型:设置成使用的Auth格式,我在这里使用的是:Bearer Token;
Token:设置成上面pm.globals.set('token', data.result.token);中设置的名称“token”
结束
好了,试一下项目下的接口,是不是可以获取到对应的token了?如果有问题,那么在运行接口的时候可以通过控制台,看到脚本中console.log(“”);的日志内容。
猜你喜欢
- 2025-01-02 小伙给同事爬取数据竟获取不到,竟要使用这种请求方式才能获取?
- 2025-01-02 历史上的今天大事件查询工具推荐 - 历史上的今天 API
- 2025-01-02 面试突击64:了解 HTTP 协议吗?
- 2025-01-02 总结的HTTP比较详细的知识
- 2025-01-02 什么是Http请求走私(Http Request Smugging)及如何发现?
- 2025-01-02 手机号码二要素核验API:提升数据准确性与安全性
- 2025-01-02 真不是吹,Spring 里这款牛逼的网络工具库你可能没用过
- 2025-01-02 详解HTTP协议基本结构
- 2025-01-02 计算机网络-应用层-万维网
- 2025-01-02 Python | Django 通过 form 表单和 ajax 上传文件
你 发表评论:
欢迎- 368℃用AI Agent治理微服务的复杂性问题|QCon
- 366℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 347℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 343℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)