Apifox 帮助文档
帮助文档
常见问题
Apifox 官网
私有化部署
开发者中心
开放 API
更新日志
Road Map
Apifox Markdown
下载
下载 Apifox
下载 IDEA 插件
下载浏览器扩展
Apifox Web 版
帮助文档
常见问题
Apifox 官网
私有化部署
开发者中心
开放 API
更新日志
Road Map
Apifox Markdown
下载
下载 Apifox
下载 IDEA 插件
下载浏览器扩展
Apifox Web 版
运行测试场景
复制页面
帮助中心
更新日志
入门
产品介绍
联系我们
私有化部署
开始使用
下载 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 等生成
高级数据类型
数据模型进阶
使用 oneOf / anyOf / allOf 构建组合模式
鉴权组件
概述
创建鉴权组件
使用鉴权组件
在线文档中的鉴权组件
高级功能
接口字段
接口状态
关联测试场景
参数列表外观
接口唯一标识
开发和调试 API
概述
生成请求
发送请求
请求历史
接口用例
动态值
校验响应
文档模式/调试模式
生成代码
环境和变量
概述
全局/环境/临时变量
环境管理
Vault Secrets(密钥库)
功能简介
前后置操作&脚本
概述
断言
提取变量
等待时间
数据库操作
概述
MySQL
MongoDB
Redis
Oracle
使用脚本
概述
前置脚本
后置脚本
公共脚本
pm 脚本 API
使用 JS 类库
响应数据可视化
调用外部程序
脚本示例
断言示例
脚本使用变量
脚本读取/修改接口请求信息
常见问题
如何获取动态参数的真实值并加密?
脚本运行后,提取的数字(bigint)精度丢失应该如何处理?
API 调试
GraphQL 调试
WebSocket 调试
Socket.IO 调试
SSE 调试
SOAP/WebService
gRPC 调试
Webhook 调试
使用请求代理调试
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
动态值表达式
常见问题
运行测试场景
复制页面
运行测试场景
当你完成测试场景的编排后,可以运行它来生成测试报告。
选择合适的运行方式
#
Apifox 提供了多种测试场景运行方式,满足不同的需求:
1.
本地可视化运行
从本地机器发起,适用于小规模、快速的测试。
适合同时开发和测试,便于实时查看结果和调整。
2.
本地 Apifox CLI 运行
适合大规模数据或迭代场景,运行速度较快。
支持离线运行,适用于资源有限或不依赖图形界面的情况。
3.
CI/CD 运行
在 CI/CD 流水线中运行,适用于自动化集成和持续部署流程。
适合频繁运行测试的环境,确保每次代码变更后都能及时验证 API 的稳定性。
4.
自托管 Runner 执行
团队可以在自己的服务器上部署 Apifox Runner,使用更强大的计算资源来运行测试。
支持定时任务,适用于定期运行测试场景或负载较大的测试需求。
测试场景中如果使用到了环境/全局变量,那么在选择不同方式运行时,实际使用的变量值可能会不同,导致运行结果不一致。
了解更多
接下来,我们将从本地可视化运行开始。
开始使用
#
1
选择一个测试场景,然后选择运行环境。
2
点击 “运行”。
3
你会看到一个测试报告,显示当前运行的通过率、耗时时间和其它数据。你可以点击每个测试步骤来查看校验和断言结果,并查看实际的请求和响应详情。
了解更多关于
测试报告
的信息。
测试场景中的运行配置项
#
在 Apifox 中运行测试场景时,可以配置多个设置和选项来根据特定要求运行测试。
通用配置
#
你可以在测试场景右侧的 tab 页中调整以下设置:
运行环境
测试步骤中每个接口的运行链接(前置 URL),详情见
环境与服务
。
测试数据
测试场景支持导入外部测试数据集。当测试场景运行时,系统会循环运行数据文件里所有的数据集,并且会将数据集里的数据赋值对应的变量,详情见
数据驱动测试
。
循环次数
循环次数是指整个测试场景完整执行的轮次。
线程数
线程数指的是同时并发运行测试场景的线程数,每个线程都会按顺序运行选中的所有步骤。注意这是一个处于 Beta 阶段的功能,可能会出现预期之外的问题。
运行于
实际消耗硬件资源运行测试场景的机器。所有测试场景中发起的请求,会从这里指定的机器发起,所以有可能因为请求机器的网络环境不同导致产生不同的测试结果。
此设置不会保存为测试场景的运行配置中,每次都是默认使用本机运行测试场景。并且这个设置不会在批量运行、CLI 运行时生效,使用以上方式运行时还是消耗当前机器资源发起请求。
指定机器发起测试场景运行,如果该测试场景中使用了文件(请求发送文件、数据库连接、外部程序、SSL 证书等),则需要将所有要用到的文件存放在指定机器本地才可正常使用。
通知
是否在手动运行本测试场景完成之后,发送一个通知信息给指定的对象,信息内会有测试总览结果和详情链接。打开后可以设置是只要完成运行即进行通知还是在仅发生失败时进行通知,用以减少无效通知的打扰。通知对象的详细说明请
参考此处
。
共享
点击高级设置右侧的“共享”选项后,每次运行测试场景后的测试报告都将会自动共享给项目内的其它成员。你可以在“测试报告”中的“共享” tab 页中查看所有已在团队内共享的测试报告。有关于测试报告的内容,详细说明请参考
《查看测试报告》
。
如果当前测试场景步骤中存在从其它项目导入的接口,那么你可以参考
管理其它项目接口的运行环境
。
高级设置
#
在高级设置中,你还可以调整:
遇到错误时的策略
当某个测试步骤执行出错时,例如出现断言错误、数据格式校验错误或服务器错误等情况,系统根据预设的策略进行处理,提供以下 3 种策略:
忽略:跳过当前异常步骤,继续执行后续步骤。
跳到下一轮循环:结束当前循环测试,跳转到下一轮循环测试。
结束运行:停止测试,并标记为失败。
间隔停顿
前一个测试步骤运行完成后,停顿一段时间,再运行下一个步骤。
保存请求 / 响应详情
开启后将保存接口的实际请求、请求响应 headers 与 bodies,但数据过多有可能会影响性能,你可以选择保存“全部请求”或“仅失败请求”。
保存变量变化值
测试场景运行结束后,将测试过程中有变化的环境/全局变量值保存至项目中的环境/全局变量。
使用全局 Cookie
1.
如果使用全局 Cookie,则在测试场景中,所有接口的请求都将带上全局 Cookie。
2.
如果不使用全局 Cookie,则在测试场景中,每个接口的请求都将带上自己的 Cookie。
保存 Cookie 到全局
测试场景运行结束后,将已变化的 Cookie 值保存至当前项目内的全局 Cookie 中。
在编排模式中调整运行配置
#
如果你进入了编排模式,相关的运行配置被收起到 “运行” 按钮的右侧。将鼠标 Hover 在此设置按钮上,即可看到本测试场景的详细运行配置。
运行功能测试
#
运行功能测试后将进入测试场景运行页。下图中的饼状图显示运行结果总览,并且在测试场景的运行过程中实时变化;饼状图下面是具体执行的测试步骤,在运行中将会显示每个测试步骤的执行情况。
功能测试运行结束后,你可以点击相关接口以查看该接口在测试过程中的各项指标和状态,包括接口名称、请求方式、请求地址、响应状态码、响应时间、响应内容、据校验及断言情况等。详细说明请参考
《查看测试报告》
。
不同运行方式间,使用不同的环境/全局变量值的规则
#
因为环境与全局变量支持持久化,可以长期保存在某个位置,用以跨单次运行或跨不同测试场景使用。所以如果你在某个测试场景中使用到了环境/全局变量,那么在选择不同方式运行时,实际使用的变量值可能会不同。
例如:
测试场景中使用了环境变量 Token,在客户端内发起运行已经完全成功,但是同样内容使用自托管 Runner 运行会发生报错,因为环境变量 Token 的值不正确。
这个例子发生的可能原因是,环境变量 Token 的实际值,在客户端内运行时是使用了客户端内保存的本地值;然而在自托管 Runner 内运行时,Runner 内并没有保存跟客户端一样的 Token 本地值,导致运行失败。
为了解决这个问题,Apifox 提供了一套在不同运行方式间使用不同规则来使用环境/全局变量值的规则:
运行方式
环境/全局变量使用方式
环境/全局变量保存位置
本地发起运行(客户端、Web 端)
使用环境/全局变量的
本地值
实际运行。
保存在本地,可以手动修改、通过运行前后置操作修改。可通过 “环境管理 - 环境/全局变量 - 本地值” 可视化查看。
CLI、CI/CD 运行
选择实时在线运行:
使用环境/全局变量的
远程值
实际运行
(默认)
。
通过使用
--variables <path>
选项来指定使用在运行测试场景机器内的文件中保存的环境/全局变量值实际运行。
了解更多
选择导出数据运行:
使用导出文件中,包含的环境/全局变量值实际运行。
远程值保存在 Apifox 云端,仅能通过在客户端内手动更改。
保存在选项
--variables <path>
中指定 path 文件内的环境/远程变量值。可以手动在文件中修改、通过运行前后置操作修改。
保存在导出文件内的环境/全局变量值。可以手动修改、通过运行前后置操作修改。
自托管 Runner 运行
使用环境/全局变量的
远程值
实际运行
(默认)
。
使用保存在 Runner 中的本地值实际运行。
了解更多
远程值保存在 Apifox 云端,仅能通过在客户端内手动更改。
保存在指定的 Runner 内的变量范围中,可以手动修改、通过运行前后置操作修改。可通过产品界面上的引导可视化查看,也可在 Runner 容器
/opt/runner/variables
下的文件内查看。
如果需要在 Apifox 客户端中可视化查看、修改 Runner 中保存的环境/全局变量本地值,则需要配置相关 Runner 的
Serverhost
才能够实现。因为此查看与修改操作是直接由客户端发起,通过 Serverhost 直连到 Runner 的。
运行包含其它项目接口的测试场景
#
运行测试场景时,如果测试场景中包含了从其它项目中导入的接口,那么这些接口的运行环境中的请求地址将会从 “环境关联” 中的预设前置 URL 中获取。
例如当测试场景指定了使用
“正式环境”
,当测试步骤运行到从
“医疗问答信息系统”
项目内导入的接口时,将会按照环境关联页中所指定正式环境:
http://www.nhc.gov.cn
发起请求,其它接口则按照 “正式环境” 内预设的地址发起请求。
上一页
导出测试场景数据
下一页
批量运行测试场景