Apifox 帮助文档
帮助文档常见问题Apifox 官网私有化部署
开发者中心
  • 开放 API
  • 更新日志
  • Road Map
  • Apifox Markdown
下载
  • 下载 Apifox
  • 下载 IDEA 插件
  • 下载浏览器扩展
  • Apifox Web 版
帮助文档常见问题Apifox 官网私有化部署
开发者中心
  • 开放 API
  • 更新日志
  • Road Map
  • Apifox Markdown
下载
  • 下载 Apifox
  • 下载 IDEA 插件
  • 下载浏览器扩展
  • Apifox Web 版
  1. 环境和变量
  • 帮助中心
  • 更新日志
  • 入门
    • 产品介绍
    • 联系我们
    • 私有化部署
  • 开始使用
    • 下载 Apifox
    • 注册与登录
    • 页面布局
    • 基本概念
    • 快速上手
      • 概述
      • 新建接口
      • 发送接口请求
      • 快捷请求
      • 添加断言
      • 新建测试场景
      • 分享 API 文档
      • 了解更多
    • 基础知识
      • 接口基本信息
        • 请求 URL 与方法
        • 请求参数与请求体
        • 请求头
        • 请求参数编码解码
        • HTTP/2
      • 认证与授权
        • 概述
        • 支持的授权类型
        • Digest Auth
        • OAuth 1.0
        • OAuth 2.0
        • Hawk Authentication
        • Kerberos
        • NTLM
        • Akamai EdgeGrid
        • CA 和客户端证书
      • 响应与 Cookie
        • 概述
        • API 响应
        • 创建和发送 Cookie
        • 实际请求
        • 提取响应示例
      • 请求代理
        • 网页端中的请求代理
        • 分享文档中的请求代理
        • 客户端中的请求代理
      • API Hub
        • API Hub
    • 导入导出数据
      • 概述
      • 手动导入
      • 定时导入
      • 导入设置
      • 导出数据
      • 其它方式导入
        • 导入 OpenAPI/Swagger
        • 导入 Postman
        • 导入 Apipost
        • 导入 Eolink
        • 导入 cURL
        • 导入 Markdown
        • 导入 Insomnia
        • 导入 apiDoc
        • 导入 .har 文件
        • 导入 knife4j
        • 导入 NEI
        • 导入小幺鸡(docway)
        • 导入 Apizza
        • 导入 WSDL
  • 设计 API
    • 概述
    • 接口的组织方式
    • 模块
    • 接口基础知识
    • 请求体多示例配置
    • 响应组件
    • 常用字段
    • 全局参数
    • 历史记录
    • 批量管理
    • 数据模型
      • 概述
      • 新建数据模型
      • 构建数据模型
      • 通过 JSON 等生成
      • 高级数据类型
    • 鉴权组件
      • 概述
      • 创建鉴权组件
      • 使用鉴权组件
      • 在线文档中的鉴权组件
    • 高级功能
      • 接口字段
      • 接口状态
      • 关联测试场景
      • 参数列表外观
      • 接口唯一标识
  • 开发和调试 API
    • 概述
    • 生成请求
    • 发送请求
    • 请求历史
    • 接口用例
    • 动态值
    • 校验响应
    • 文档模式/调试模式
    • 生成代码
    • 环境和变量
      • 概述
      • 全局/环境/临时变量
      • 环境管理
      • Vault Secrets(密钥库)
        • 功能简介
    • 前后置操作&脚本
      • 概述
      • 断言
      • 提取变量
      • 等待时间
      • 数据库操作
        • 概述
        • MySQL
        • MongoDB
        • Redis
        • Oracle
      • 使用脚本
        • 概述
        • 前置脚本
        • 后置脚本
        • 公共脚本
        • pm 脚本 API
        • 使用 JS 类库
        • 响应数据可视化
        • 调用外部程序
      • 脚本示例
        • 断言示例
        • 脚本使用变量
        • 脚本读取/修改接口请求信息
      • 常见问题
        • 如何获取动态参数的真实值并加密?
        • 脚本运行后,提取的数字(bigint)精度丢失应该如何处理?
    • API 调试
      • GraphQL 调试
      • WebSocket 调试
      • Socket.IO 调试
      • SSE 调试
      • SOAP/WebService
      • gRPC 调试
      • 使用请求代理调试
      • Dubbo 调试
        • 新建 Dubbo 接口
        • 调试 Dubbo 接口
        • Dubbo 接口文档
      • TCP(Socket)
        • Socket 接口功能简介
        • 报文数据处理器
  • Mock 数据
    • 概述
    • 智能 Mock
    • 自定义 Mock
    • Mock 优先级
    • Mock 脚本
    • 云端 Mock
    • 自托管 Runner Mock
  • 自动化测试
    • 概述
    • 编排测试场景
      • 新建测试场景
      • 测试步骤间传递数据
      • 测试流程控制条件
      • 从接口/用例同步数据
      • 跨项目导入接口/用例
      • 导出测试场景数据
    • 运行测试场景
      • 运行测试场景
      • 批量运行测试场景
      • 数据驱动测试
      • 定时任务
      • 管理其它项目接口的运行环境
    • 测试报告
      • 测试报告
    • API 测试
      • 性能测试
      • 集成测试
      • 端到端测试
      • 回归测试
    • Apifox CLI
      • 概述
      • 安装和运行 CLI
      • CLI 命令选项
    • CI/CD
      • 概述
      • 与 Jenkins 集成
      • 与 Gitlab 集成
      • 与 Github Actions 集成
      • 与其它更多 CI/CD 平台集成
      • Git 提交自动触发测试
  • 发布 API 文档
    • 概述
    • 快捷分享
    • 查看 API 文档
    • 发布文档站
    • 页面布局设置
    • 自定义页面代码
    • 自定义域名
    • AI 相关特性
    • SEO 设置
    • 高级设置
      • 文档站搜索设置
      • 跨域代理
      • 文档站接入 Google Analytics
      • 文档左侧目录设置
      • 文档可见性设置
      • 在线 URL 链接规范
    • API 版本
      • 功能简介
      • 创建 API 版本
      • 发布 API 版本
      • 快捷分享 API 版本
  • 迭代分支
    • 功能简介
    • 新建迭代分支
    • 在迭代分支中改动 API
    • 在迭代分支中测试 API
    • 合并迭代分支
    • 管理迭代分支
  • 管理中心
    • 入驻清单
      • 了解基本概念
      • 团队入驻
    • 管理团队
      • 成员角色与权限设置
      • 团队基本操作
      • 团队成员管理
      • 团队资源
        • 通用 Runner
        • 请求代理 Agent
        • 团队变量
      • 实时协作
        • 团队协作
    • 管理项目
      • 项目基本操作
      • 项目成员管理
      • 通知设置
        • 功能简介
        • 通知对象
        • 通知事件
      • 项目资源
        • 数据库连接
    • 管理组织
      • 单点登录(SSO)
        • 功能简介
        • 为组织配置单点登录
        • 管理用户账号
        • 将组映射到团队
        • Microsoft Entra ID
      • SCIM 用户管理
        • 功能简介
        • Microsoft Entra ID
      • 组织资源
        • 自托管 Runner
  • IDEA 插件
    • 快速上手
    • 生成接口文档
    • 生成数据模型
    • 配置
      • 全局配置
      • 项目内配置
      • 可配置规则
      • 脚本工具
      • Groovy 本地扩展
    • 进阶配置
      • 注释规范说明
      • 框架支持
    • 常见问题
      • 常见问题
  • 浏览器扩展
    • Chrome
    • Microsoft Edge
  • Apifox AI 功能
    • 总览
    • 启用 AI 功能
    • 修改数据模型
    • 常见问题
  • Apifox MCP Server
    • 概述
    • 通过 MCP 使用 Apifox 项目内的 API 文档
    • 通过 MCP 使用公开发布的 API 文档
    • 通过 MCP 使用 OpenAPI/Swagger文档
  • 最佳实践
    • 概述
    • 接口之间如何传递数据
    • 登录态(Auth)如何处理
    • 接口签名如何处理
    • 如何加密/解密接口数据
    • Jenkins 定时触发任务
    • 如何计算 AI 问答成本
    • 与其他成员共用数据库连接配置
    • 通过 CLI 运行包含云端数据库连接配置的测试场景
    • 通过 Runner 运行包含云端数据库连接配置的测试场景
    • Apifox 测试步骤之间怎么传递数据?
  • 账号&应用设置
    • 账号设置
    • API 访问令牌
    • 语言设置
    • 快捷键
    • 网络代理
    • 数据备份与恢复
    • 更新 Apifox
    • 实验性功能
  • 身份验证 & Auth 鉴权指南
    • 什么是 API Key
    • 什么是 Bearer Token
    • 什么是 JWT
    • 什么是 Basic Auth
    • 什么是 Digest Auth
    • 什么是 OAuth 1.0
    • 什么是 OAuth 2.0
      • 什么是 OAuth 2.0
      • 授权码授权类型
      • 授权码授权类型,带有 PKCE
      • 隐式授权类型
      • 密码凭证授权类型
      • 客户端凭证授权类型
  • 服务与隐私协议
    • 服务协议
    • 隐私协议
    • 服务等级协议
  • 参考资料
    • API 设计优先理念
    • JSON Schema 介绍
    • JSONPath 介绍
    • XPath 介绍
    • Apifox Markdown 语法
    • CSV 格式规范
    • 正则表达式
    • 安装 Java 环境
    • Runner 运行环境
    • 常见编程语言对应的数据类型
    • Socket 粘包和分包问题
    • 词汇表
    • Apifox Swagger 扩展
      • 概述
      • x-apifox-folder
      • x-apifox-status
      • x-apifox-name
      • x-apifox-maintainer
    • Apifox JSON Schema 扩展
      • 概述
      • x-apifox-mock
      • x-apifox-orders
      • x-apifox-enum
    • 动态值表达式
  • 常见问题
  1. 环境和变量

环境管理

在发送 API 请求时,经常需要在开发、测试和生产环境之间切换。Apifox 提供了便捷的环境切换功能——只需在界面右上角选择目标环境即可。
Apifox 环境由两个核心要素构成:第一个是 “前置 URL”,用于维护请求的目标地址;第二个是由一组或多组 “变量” 组成,这些变量可以在接口或脚本中引用。切换环境时,前置 URL 和环境变量都会根据当前环境中定义的值进行更新。

创建环境#

1
点击界面右上角的 “环境管理” 按钮 ≡。
2
点击左侧列表最后一项 新建环境。
3
输入新环境的名称,添加服务前置 URL 和变量。
image.png
4
点击 保存。
5
要使用新环境,从界面右上角的环境管理中选择它。这样就把它设为当前环境,并将所有变量设置为环境中指定的值。
Apifox 的 “环境” 概念与 Postman 略有不同。Postman 通常为每个前置 URL 创建一个单独的环境,这样容易模糊环境和前置 URL 之间的界限。
相比之下,Apifox 的环境更直接地反映了开发、测试和生产等实际工作环境,而不是将每个前置 URL 视为一个独立的环境。
例如,在测试环境中,可能同时包含多个服务,如用户服务和订单服务,这些服务应当共享同一个环境,而不应分成独立的 “用户环境” 和 “订单环境”。

前置 URL#

前置 URL 是 Apifox 环境中的核心功能。在 Apifox 中,接口路径以斜杠(/)开头,但不包含前置 URL;在发送接口请求时,需要指定目标前置 URL。这使得环境中的前置 URL 功能变得尤为重要——选择正确的环境是发送请求的前提。
标准的前置 URL 格式以协议开头,不带尾部斜杠(/),例如:
或
每个前置 URL 都对应一个 模块。一般情况下,接口都会使用其所在模块的前置 URL 来发送请求。
例如,如果生产环境的默认模块前置 URL 是 http://abc.com/v1,而你的接口路径是 /pet,那么在生产环境发送请求时,实际发送的请求地址是:
http://abc.com/v1/pet
如果接口路径以 http:// 或 https:// 开头,前置 URL 就不会被添加到请求中。不过,一般不推荐这种做法。
BASE_URL 变量
Apifox 中有一个特殊的环境变量 BASE_URL,用于存储当前环境的“默认服务”前置 URL。通常不建议直接使用这个变量。
对于自定义脚本,建议使用 pm.request.getBaseUrl() 来获取当前接口的前置 URL,避免使用 pm.environment.get('BASE_URL')。因为如果接口没有使用“默认服务”,则可能无法正确获取当前接口的前置 URL。
如果用户手动创建了名为 BASE_URL 的环境变量,它将覆盖系统预定义的 BASE_URL。
需要注意的是,脚本无法直接修改前置 URL。在脚本中执行 pm.environment.set('BASE_URL', 'My_url') 会创建一个名为 BASE_URL 的环境变量,而不会改变前置 URL 本身。

通过模块来使用多个前置 URL#

如果你的项目中的接口,需要使用多个前置 URL,那么你可以配置多个 模块。
例如,用户相关的请求指向 https://user.example.com,订单相关的请求指向 https://order.example.com,商品相关的请求指向https://product.example.com你可以按照以下方式具体操作:
1
在接口管理的目录树上方,成功添加多个模块。
2
在环境管理中,可以看到前置 URL 内可以设置这几个模块的前置 URL,将实际 URL 填写进去并保存;
image.png
3
在接口管理中某个模块的 “根目录” 页面,可以指定当前模块里的全部接口,使用的前置 URL 具体是哪一个:
默认设置:默认使用当前所在模块的第一个前置 URL。默认会使用此设置,一般情况下无需修改。
手动指定:手动指定一个当前所在模块的某个前置 URL 进行使用。在单模块中仍需要使用多个服务(前置 URL)时,可以进行指定。我们已不推荐这种用法,一般都建议创建多个模块来满足微服务场景下的需求。
image.png
4
在接口管理中,无论是某个模块下的 “子目录”,还是具体的 “接口” 页面,都可以指定该子目录内所有接口或某个接口所使用的前置 URL。
继承父级:继承上一级目录设置的前置 URL 使用方式。默认会使用此设置,一般情况下无需修改。
手动指定:手动指定一个当前所在模块的某个前置 URL 进行使用。在单模块中仍需要使用多个服务(前置 URL)时,可以进行指定。我们已不推荐这种用法,一般都建议创建多个模块来满足此场景下的需求。
image.png
5
选择好当前环境后,点击发送即可。无论是接口管理中单个接口请求发送或是自动化测试中运行发送多个请求,都会根据请求关联接口中的前置 URL 设置找到对应的前置 URL 进行实际发送。
6
每个不同的环境,都会包含项目全部的模块,并且这些模块的前置 URL 在每个环境中都需要进行单独设置。
image.png
这是因为在大多数团队中,测试和开发环境都有对应不同的前置 URL。通过为每个环境设置相应的前置 URL,当你在右上角切换环境时,所有接口请求都会被发送到正确的服务。在实践中,这是最高效的设计方式。
创建项目时的第一个模块为默认模块,当在一些特殊情况获取不到正确的前置 URL 时,是会返回此默认模块的前置 URL 的。

添加环境变量#

向环境添加变量时,可以为变量指定远程值(共享)和本地值(仅保存在电脑本地)。
了解更多使用变量的信息。

切换环境#

Apifox 在工作台右上角的环境管理中显示当前环境。每当你发送请求或执行脚本时,Apifox 都会使用所选环境中变量的当前值。
要切换到不同的环境,只需从环境管理中选择即可。

环境迁移#

在 Apifox 中,变量的远程值会在团队内同步,而本地值仅存储在本地。这意味着,当你在另一台电脑上使用 Apifox 时,无法访问之前设置的本地值。
为了解决这个问题,Apifox 提供了环境迁移功能。你可以将环境中的服务和变量导出为 JSON 文件,并在另一台电脑上导入。操作步骤如下:
1
在环境管理中,将鼠标悬停在环境列表旁的 ... 上,点击 “导出” 以获取 JSON 文件。
image.png
2
在另一台电脑上,打开环境管理,将鼠标悬停在环境列表旁的 ... 上,点击 “导入”,并选择要导入的 JSON 文件。
3
你也可以导入从 Postman 导出的环境。

环境可见范围#

有时,你可能需要创建仅供个人使用的变量,不希望对他人可见。这时,你可以创建一个私有环境。
在环境的右上角,你可以设置环境的可见范围。默认是共享的,而你可以将自己创建的环境设为仅自己可见。但是,你无法更改他人创建的环境的可见性。
私有环境与其他环境共用相同的服务列表。在私有环境中添加或删除服务会同时影响所有环境。
上一页
全局/环境/临时变量
下一页
功能简介
Built with