Apifox 帮助文档
帮助文档
常见问题Apifox 官网私有化部署
开发者中心
开发者中心
  • 开放 API
  • 更新日志
  • Road Map
  • Apifox Markdown
下载
下载
  • 下载 Apifox
  • 下载 IDEA 插件
  • 下载浏览器扩展
  • Apifox Web 版
帮助文档
常见问题Apifox 官网私有化部署
开发者中心
开发者中心
  • 开放 API
  • 更新日志
  • Road Map
  • Apifox Markdown
下载
下载
  • 下载 Apifox
  • 下载 IDEA 插件
  • 下载浏览器扩展
  • Apifox Web 版
  1. Apifox CLI
  • 帮助中心
  • 更新日志
  • 入门
    • 产品介绍
    • 私有化部署
    • 联系我们
  • 开始使用
    • 下载 Apifox
    • 基本概念
    • 注册与登录
    • 页面布局
    • 快速上手
      • 概述
      • 新建接口
      • 发送接口请求
      • 快捷请求
      • 添加断言
      • 新建测试场景
      • 分享 API 文档
      • 了解更多
    • 导入导出数据
      • 导出数据
      • 手动导入
      • 概述
      • 定时导入(绑定数据源)
      • 导入设置
      • 其它方式导入
        • 导入 cURL
        • 导入 Markdown
        • 导入 Insomnia
        • 导入 apiDoc
        • 导入 .har 文件
        • 导入 Apipost
        • 导入 Eolink
        • 导入 knife4j
        • 导入 NEI
        • 导入小幺鸡(docway)
        • 导入 Apizza
        • 导入 WSDL
        • 导入 Postman
        • 导入 OpenAPI/Swagger
  • 设计 API
    • 概述
    • 新建 API 项目
    • 接口基础知识
    • 接口设计规范
    • 模块
    • 请求体多示例配置
    • 响应组件
    • 常用字段
    • 全局参数
    • 历史记录
    • 接口评论
    • 批量管理
    • 通用接口文档
    • 基础知识
      • 接口基本信息
        • 请求头
        • HTTP/2
        • 请求参数编码解码
        • 请求参数与请求体
        • 请求 URL 与方法
      • 认证与授权
        • 概述
        • 支持的授权类型
        • Digest Auth
        • OAuth 1.0
        • OAuth 2.0
        • Hawk Authentication
        • Kerberos
        • NTLM
        • Akamai EdgeGrid
        • CA 和客户端证书
      • 响应与 Cookie
        • 概述
        • API 响应
        • 创建和发送 Cookie
        • 实际请求
        • 提取响应示例
      • 请求代理
        • 网页端中的请求代理
        • 分享文档中的请求代理
        • 客户端中的请求代理
      • API Hub
        • API Hub
    • 数据模型
      • 概述
      • 高级数据类型
      • 构建数据模型
      • 通过 JSON 等生成
      • 新建数据模型
      • 数据模型进阶
        • 使用 oneOf / anyOf / allOf 构建组合模式
        • 使用 discriminator 实现多态数据结构
    • 鉴权组件
      • 概述
      • 创建鉴权组件
      • 使用鉴权组件
      • 在线文档中的鉴权组件
    • 高级功能
      • 参数列表外观
      • 接口唯一标识
      • 关联测试场景
      • 接口状态
      • 接口字段
  • 开发和调试 API
    • 概述
    • 生成请求
    • 发送请求
    • 请求历史
    • 接口调试用例
    • 单接口用例
    • 动态值
    • 校验响应
    • 文档模式/调试模式
    • 生成代码
    • 环境和变量
      • 概述
      • 环境管理
      • 全局/环境/模块/临时变量
      • Vault Secrets(密钥库)
        • 功能简介
    • 前后置操作&脚本
      • 概述
      • 断言
      • 提取变量
      • 等待时间
      • 数据库操作
        • 概述
        • MySQL
        • MongoDB
        • Redis
        • Oracle
      • 使用脚本
        • 概述
        • 前置脚本
        • 后置脚本
        • 公共脚本
        • pm 脚本 API
        • 使用 JS 类库
        • 响应数据可视化
        • 调用外部程序
      • 脚本示例
        • 断言示例
        • 脚本使用变量
        • 脚本读取/修改接口请求信息
      • 常见问题
        • 如何获取动态参数的真实值并加密?
        • 脚本运行后,提取的数字(bigint)精度丢失应该如何处理?
    • API 调试
      • SSE 调试
      • MCP 调试
      • GraphQL 调试
      • WebSocket 调试
      • Socket.IO 调试
      • SOAP/WebService
      • gRPC 调试
      • Webhook 调试
      • 使用请求代理调试
      • Dubbo 调试
        • 新建 Dubbo 接口
        • 调试 Dubbo 接口
        • Dubbo 接口文档
      • TCP(Socket)
        • Socket 接口功能简介
        • 报文数据处理器
  • Mock 数据
    • 概述
    • 智能 Mock
    • 自定义 Mock
    • Mock 优先级
    • Mock 脚本
    • 云端 Mock
    • 自托管 Runner Mock
  • 自动化测试
    • 概述
    • 编排场景用例
      • 新建场景用例
      • 测试步骤间传递数据
      • 测试流程控制条件
      • 从接口/用例同步数据
      • 跨项目导入接口/用例
      • 导出测试场景数据
    • 运行测试场景
      • 运行场景用例
      • 批量运行场景用例
      • 数据驱动测试
      • 定时任务
      • 管理其它项目接口的运行环境
    • 测试套件
      • 概述
      • 新建测试套件
      • 编排测试套件
      • 本地运行测试套件
      • CLI 运行测试套件
      • 定时任务
    • 测试报告
      • 测试报告
    • API 测试
      • 性能测试
      • 集成测试
      • 端到端测试
      • 回归测试
      • 契约测试
    • Apifox CLI
      • 概述
      • 安装和运行 CLI
      • CLI 命令选项
    • CI/CD
      • 概述
      • 与 Gitlab 集成
      • 与其它更多 CI/CD 平台集成
      • 与 Jenkins 集成
      • Git 提交自动触发测试
      • 与 Github Actions 集成
  • 发布 API 文档
    • 概述
    • 快捷分享
    • 查看 API 文档
    • 发布文档站
    • 页面布局设置
    • 自定义页面代码
    • 自定义域名
    • AI 相关特性
    • SEO 设置
    • 高级设置
      • 文档站搜索设置
      • 跨域代理
      • 文档站接入 Google Analytics
      • 文档左侧目录设置
      • 文档可见性设置
      • 在线 URL 链接规范
    • API 版本
      • 功能简介
      • 创建 API 版本
      • 发布 API 版本
      • 快捷分享 API 版本
  • 迭代分支
    • 功能简介
    • 新建迭代分支
    • 在迭代分支中改动 API
    • 在迭代分支中测试 API
    • 合并迭代分支
    • 管理迭代分支
  • 管理中心
    • 基本概念
    • 团队入驻
    • 管理团队
      • 团队基本操作
      • 成员角色与权限设置
      • 团队成员管理
      • 团队资源
        • 通用 Runner
        • 请求代理 Agent(Proxy)
        • 团队变量
      • 实时协作
        • 团队协作
    • 管理项目
      • 项目基本操作
      • 项目成员管理
      • 通知设置
        • 功能简介
        • 通知对象
        • 通知事件
      • 项目资源
        • 数据库连接
        • Git 仓库连接
    • 管理组织
      • 组织基本操作
      • 单点登录(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
    • 动态值表达式
  • 常见问题
帮助文档
常见问题Apifox 官网私有化部署
开发者中心
开发者中心
  • 开放 API
  • 更新日志
  • Road Map
  • Apifox Markdown
下载
下载
  • 下载 Apifox
  • 下载 IDEA 插件
  • 下载浏览器扩展
  • Apifox Web 版
帮助文档
常见问题Apifox 官网私有化部署
开发者中心
开发者中心
  • 开放 API
  • 更新日志
  • Road Map
  • Apifox Markdown
下载
下载
  • 下载 Apifox
  • 下载 IDEA 插件
  • 下载浏览器扩展
  • Apifox Web 版
  1. Apifox CLI

CLI 命令选项

Apifox CLI 是一个强大的命令行工具,允许开发人员在终端、CI/CD 流程中运行 Apifox 中的自动化测试。

基础语法#

image.png

身份验证#

在访问你的私有项目前,需要先登录或设置 访问令牌。
命令说明示例
login使用令牌登录,令牌会持久化到本地。apifox login --with-token <您的令牌>
logout退出登录。apifox logout
whoami显示当前登录的用户信息。apifox whoami
示例场景:首次登录

项目管理#

管理和查看你账户下的所有项目。
命令说明示例
project list列出所有项目(ID、名称、描述)。apifox project list
project view查看特定项目的详细配置。apifox project view <projectId>
示例场景:查找项目 ID

环境管理#

查看项目关联的环境配置信息,如前置 URL (Base URL) 和服务设置。
命令说明示例
environment list列出项目下的所有环境。apifox environment list --project <projectId>
environment view查看特定环境的配置详情(前置 URL 等)。apifox environment view <envId> --project <projectId>
示例场景:查看环境的前置 URL

自动化测试#

你可以快速查询并执行定义的测试流程。
命令说明示例
test-scenario list列出项目的所有场景用例。apifox test-scenario list --project <projectId>
test-scenario run运行指定的场景用例。apifox test-scenario run <id> --project <pid>
test-suite list列出项目的所有测试套件。apifox test-suite list --project <projectId>
test-suite run运行指定的测试套件。apifox test-suite run <id> --project <pid>
示例场景:直接运行场景用例

核心运行命令:apifox run#

这是最常见的用法,通常直接从 Apifox 客户端 -> 自动化测试 -> CI/CD 面板中复制生成的命令。

常用命令示例 (从客户端复制)#

1. 使用 Access Token 运行在线场景:
-t: 场景用例 ID
-e: 运行环境 ID
-r: 报告格式
--upload-report: 执行完后自动同步报告到云端
2. 运行本地导出的 JSON 文件:

运行参数表说明#

参数描述默认值
--access-token <token>设置鉴权令牌-
-t, --test-scenario <id>指定场景用例 ID-
-f, --test-scenario-folder <id>指定场景用例目录 ID-
--test-suite <id>指定测试套件 ID-
--project <id>项目 ID-
-e, --environment <id>环境 ID-
-r, --reporters [reporters]指定报告类型 (cli, html, json, junit)["cli"]
--out-dir <path>输出报告目录./apifox-reports
--out-file <name>输出报告文件名(不含后缀)。支持变量: {SCENARIO_NAME}, {FOLDER_NAME}, {GENERATE_TIME}apifox-report-{timestamp}
--out-json-failures-separated开启 JSON 报告时,将失败详情单独导出-
-n, --iteration-count <n>设置循环次数-
-d, --iteration-data <path>设置循环数据 (JSON/CSV) 或数据 ID-
--on-error <behavior>设置错误处理方式 (ignore, continue, end)-
--global-var <key=value>设置全局变量。支持设置多个。-
--env-var <key=value>设置环境变量。支持设置多个。-
--variables <path>指定包含变量的本地文件路径-
--notification <ids>运行完成后通知指定对象 ID (逗号分隔)-
--notification-failed-event <ids>仅失败时通知指定对象 ID-
--external-program-path <path>指定外部脚本/程序的所处目录当前目录
--database-connection <path>指定数据库配置文件的所处路径-
--ignore-redirects阻止自动重定向-
--silent开启静默模式,不输出至控制台-
--color <on|off|auto>控制台彩色输出开关auto
--delay-request [ms]请求之间的停顿间隔0
--timeout-request [ms]接口请求超时时间0
--timeout-script [ms]脚本执行超时时间0
-k, --insecure关闭 SSL 校验-
--ssl-client-cert-list <path>指定客户端证书配置路径 (JSON)-
--upload-report将本次测试报告上传至云端查看-
-b, --bigint兼容 BigInt 类型false
--verbose显示详细的请求/响应信息-
--lang <zh |en>设置 CLI 语言zh
image.png

CLI 中的文件上传#

在处理需要上传文件的接口时,要注意:Apifox 只保存本地文件路径,而实际文件是存在你的本地电脑或运行 CLI 的机器上的。这在不同机器上通过 CLI 运行测试时可能会出问题。
要解决这个问题,按照下面的步骤操作:
1
先将需要的文件复制或上传到运行 CLI 的机器上。
2
把该文件路径复制下来。 例如:/var/www/myapp/uploads/apifox-xiangmu.jpg
image.png
3
然后在 Apifox 的自动化测试里定位到需要上传文件的接口,点击 “批量编辑” 按钮。
image.png
4
将上传到 CLI 机器上的 “文件路径” 填入到格式中 “参数值” 的位置即可。
image.png
5
除此之外,还可以把文件路径放到环境变量的 “远程值” 那里,然后在 “批量编辑” 中通过变量的方式引用。
image.png
注意,如果你想在本地再次运行这个场景用例,需要把参数值中的文件路径改回本地机器上的路径。

CLI 中的数据库操作#

当你的场景用例包含数据库操作时,因为数据库配置是保存在本地而不是云端,需要额外步骤:
1
对于包含数据库操作的场景用例,在命令行生成界面点击 “下载数据库配置文件”。
image.png
2
下载该文件(如 database-connections.json),并放在运行 CLI 的目录下。
3
在命令中包含 --database-connection 选项。示例:

将本地 CLI 测试报告上传到云端#

只需在命令末尾加上 --upload-report 参数:
1
在命令执行时加入参数:
2
查看上传的报告:
打开 Apifox 自动化测试面板中的 “测试报告”
找到 “共享” 栏目

CLI 中使用外部脚本/程序#

可以通过 --external-program-path 引用外部脚本:
这个例子中,CLI 会引用 ./scripts 目录下的程序。如果没有指定层级,默认是当前 CLI 执行目录。
1.
本地路径:建议按类别整理脚本文件,放在特定目录下并在 CLI 命令中指定。
2.
云端代码仓库:在 CI/CD 工作流中先拉取脚本到本地,再在 CLI 命令中指定实际路径。

SSL#

Apifox CLI 支持传入客户端证书。

使用单个 SSL 客户端证书#

--ssl-client-cert
指定 SSL 客户端公钥证书的路径
--ssl-client-key
指定 SSL 客户端私钥证书的路径(可选)
--ssl-client-passphrase
指定 SSL 客户端证书密码(可选)

使用 SSL 客户端证书配置文件(支持多个证书)#

--ssl-client-cert-list
指定 SSL 客户端证书列表的 JSON 文件路径。例如:ssl-client-cert-list.json
ssl-client-cert-list.json

[
    {
        "name": "domain1",
        "matches": ["https://test.domain1.com/*", "https://www.domain1/*"],
        "key": {"src": "./client.domain1.key"},
        "cert": {"src": "./client.domain1.crt"},
        "passphrase": "changeme"
    },
    {
        "name": "domain2",
        "matches": ["https://domain2.com/*"],
        "key": {"src": "./client.domain2.key"},
        "cert": {"src": "./client.domain2.crt"},
        "passphrase": "changeme"
    }
]
此选项支持根据 URL 或主机名设置不同的 SSL 客户端证书。它的优先级高于 --ssl-client-cert、--ssl-client-key 和 --ssl-client-passphrase 选项。如果 URL 在列表中没有匹配项,会使用这些选项作为后备选项。

HTTP/2#

CLI 可以通过 --preferred-http-version 参数配置使用特定的协议版本发送请求。
协议版本参数值:
1.
"HTTP/2" - HTTP/2 应用层协议协商(ALPN),仅支持 HTTPS 请求
2.
"HTTP/2-with-prior-knowledge" - 已知的 HTTP/2
3.
"HTTP/1" - HTTP/1.1
参数支持以下配置方式:
1.
为 HTTPS 和 HTTP 请求设置不同的协议版本:
--preferred-http-version="https=HTTP/2,http=HTTP/2-with-prior-knowledge"
2.
为 HTTPS 和 HTTP 设置相同的协议版本:
--preferred-http-version="HTTP/1"
3.
为 HTTPS 和 HTTP 设置 HTTP/2(不支持的值会自动忽略):
--preferred-http-version="HTTP/2"

常见问题 (FAQ)#

如何解决 “Invalid character in header content['Authorization']” 这个错误?
这个错误通常是因为 Authorization 请求头中包含了非法字符,比如中文、换行符或多余的空格。请确认 Authorization 的值中 没有中文以及特殊符号,并且格式符合要求。
上一页
安装和运行 CLI
下一页
概述
Built with