目录
一、接口之间如何传递数据
1、使用场景
接口B请求参数依赖于接口A返回的数据
2、实现思路
2.1 接口A使用后置操作->提取变量功能将请求完成后返回的数据提取作为变量
2.2 接口B对应的参数值直接引用前面设置的变量
3、使用示例
3.1 接口A使用后置操作->提取变量
将接口返回 Response JSON 数据里的 token 值提取到名为 token 的临时变量(或环境变量、全局变量)
3.2 接口B参数引用变量
对应的参数值里写入 { {token}},即引用可名为token的变量。
二、登录态的接口如何处理
1、Session/Cookie 方式
Apifox 会自动保持 Session/Cookie 方式的登录态。
使用方式:
- 先执行登录接口,执行完成后全局 Cookie 会自动保存返回的 Session/Cookie 信息。
- 然后运行其他接口,会自动带上 Session/Cookie 信息。
2、Token 方式
Token 方式是将登录凭证放在接口请求参数里(通常会放在 Header)。常见的有Basic Auth、Bearer Token、API Key等方式。
使用方法:
方法一、通过全局(项目概览页)、分组(分组设置)、接口(文档编辑页)的 Auth 设置授权信息,支持如下多种授权类型
方法二、手动将 token 写入 Header 或其他对应参数里(推荐使用 环境变量 存放 token)。
示例:
Bearer Token:设置一个名为Authorization的 Header,设置值为Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9yJpZCI6(或者使用环境变量,设置值为Bearer { {AUTH_TOKEN}})
方法三、在 环境 里的全局参数统一设置,所有接口运行时会自动加上全局参数,无需每个接口手动设置。
3、全自动登录方式
自动调用登录接口完成登录,无需手动登录
3.1、实现思路
3.1.1、使用 环境变量(如:ACCESS_TOKEN)保存登录需要的凭证。
3.1.2、如凭证有过期时间,使用环境变量(如:ACCESS_TOKEN_EXPIRES)保存登录凭证的过期时间。
3.1.3、创建一个 公共脚本 :
A、判断环境变量ACCESS_TOKEN是否有值,以及ACCESS_TOKEN_EXPIRES是否过期,如果存在且未过期,跳出执行,否则下一步。
B、使用 pm.sendRequest 调用登录接口,将登录接口返回的登录凭证写入环境变量,过期时间也写入环境变量。
3.1.4、设置需要登录态的接口用例:
A、将用来验证登录态的参数值设置为 { {ACCESS_TOKEN}} 。
-
-
- 将 header 里的Authorization的设置为{ {ACCESS_TOKEN}}。注意:这里也可以使用 Cookie 或其他位置的参数,请根据实际情况确定。
- 此处也可以在 环境 里的 额外参数 统一设置,所有接口运行时会自动加上 额外参数,无需每个接口手动设置。
-
B、在 前置脚本 里引用前面创建公共脚本。
3.2、示例:
- 示例脚本里的登录用户名和密码,是从环境变变量 LOGIN_USERNAME 和 LOGIN_PASSWORD 获取,如果你直接拷贝代码的话,记得要手动设置这两个环境变量。
- 如果你们的 token 没有过期时间,可以将 ACCESS_TOKEN_EXPIRES相关的代码去除。
// 定义发送登录接口请求方法
function sendLoginRequest() {
// 获取环境变量里的前置URL
const baseUrl = pm.environment.get('BASE_URL