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
    • 概述
    • 新建 API 项目
    • 接口基础知识
    • 请求体多示例配置
    • 响应组件
    • 常用字段
    • 全局参数
    • 历史记录
    • 批量管理
    • 数据模型
      • 概述
      • 新建数据模型
      • 通过 JSON 等生成
      • 高级数据类型
      • 构建数据模型
    • 鉴权组件
      • 概述
      • 创建鉴权组件
      • 使用鉴权组件
      • 在线文档中的鉴权组件
    • 高级功能
      • 接口字段
      • 接口状态
      • 关联测试场景
      • 参数列表外观
      • 接口唯一标识
  • 开发和调试 API
    • 概述
    • 生成请求
    • 发送请求
    • 请求历史
    • 接口用例
    • 动态值
    • 校验响应
    • 文档模式/调试模式
    • 生成代码
    • 环境和变量
      • 概述
      • 全局/环境/临时变量
      • 环境与服务
      • Vault Secrets(密钥库)
        • 功能简介
    • 前后置操作&脚本
      • 概述
      • 断言
      • 提取变量
      • 等待时间
      • 数据库操作
        • 概述
        • 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 平台集成
  • 发布 API 文档
    • 概述
    • 快捷分享
    • 查看 API 文档
    • 发布文档站
    • 页面布局设置
    • 自定义域名
    • AI 相关特性
    • 高级设置
      • 文档站搜索设置
      • 跨域代理
      • 文档站接入 Google Analytics
      • SEO 设置
      • 文档左侧目录设置
      • 文档可见性设置
      • 在线 URL 链接规范
    • API 版本
      • 创建 API 版本
      • 发布 API 版本
      • 快捷分享 API 版本
      • 功能简介
  • 迭代分支
    • 功能简介
    • 新建迭代分支
    • 在迭代分支中改动 API
    • 在迭代分支中测试 API
    • 合并迭代分支
    • 管理迭代分支
  • 管理中心
    • 入驻清单
      • 了解基本概念
      • 团队入驻
    • 管理团队
      • 团队基本操作
      • 团队成员管理
      • 成员角色与权限设置
      • 团队资源
        • 通用 Runner
        • 请求代理 Agent
        • 团队变量
      • 实时协作
        • 团队协作
    • 管理项目
      • 项目基本操作
      • 项目成员管理
      • 通知设置
        • 功能简介
        • 通知对象
        • 通知事件
      • 项目资源
        • 数据库连接
    • 管理组织
      • 单点登录(SSO)
        • 功能简介
        • 为组织配置单点登录
        • 管理用户账号
        • 将组映射到团队
        • Microsoft Entra ID
      • SCIM 用户管理
        • 功能简介
        • Microsoft Entra ID
      • 组织资源
        • 自托管 Runner
  • IDEA 插件
    • 快速上手
    • 生成接口文档
    • 生成数据模型
    • 配置
      • 全局配置
      • 项目内配置
      • 可配置规则
      • 脚本工具
      • Groovy 本地扩展
    • 进阶配置
      • 注释规范说明
      • 框架支持
    • 常见问题
      • 常见问题
  • 浏览器扩展
    • Chrome
    • Microsoft Edge
  • Apifox MCP Server
    • 概述
    • 通过 MCP 使用 Apifox 项目内的 API 文档
    • 通过 MCP 使用公开发布的 API 文档
    • 通过 MCP 使用 OpenAPI/Swagger文档
  • 最佳实践
    • 概述
    • 接口之间如何传递数据
    • 登录态(Auth)如何处理
    • 接口签名如何处理
    • 如何加密/解密接口数据
    • Jenkins 定时触发任务
    • 如何计算 AI 问答成本
    • 与其他成员共用数据库连接配置
    • 通过 CLI 运行包含云端数据库连接配置的测试场景
    • 通过 Runner 运行包含云端数据库连接配置的测试场景
  • 账号&应用设置
    • 账号设置
    • 语言设置
    • 网络代理
    • 快捷键
    • 数据备份与恢复
    • 更新 Apifox
    • API 访问令牌
  • 身份验证 & 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. 运行测试场景

运行测试场景

当你完成测试场景的编排后,可以运行它来生成测试报告。

选择合适的运行方式#

Apifox 提供了多种测试场景运行方式,满足不同的需求:
1.
本地可视化运行
从本地机器发起,适用于小规模、快速的测试。
适合同时开发和测试,便于实时查看结果和调整。
2.
本地 Apifox CLI 运行
适合大规模数据或迭代场景,运行速度较快。
支持离线运行,适用于资源有限或不依赖图形界面的情况。
3.
CI/CD 运行
在 CI/CD 流水线中运行,适用于自动化集成和持续部署流程。
适合频繁运行测试的环境,确保每次代码变更后都能及时验证 API 的稳定性。
4.
自托管 Runner 执行
团队可以在自己的服务器上部署 Apifox Runner,使用更强大的计算资源来运行测试。
支持定时任务,适用于定期运行测试场景或负载较大的测试需求。
测试场景中如果使用到了环境/全局变量,那么在选择不同方式运行时,实际使用的变量值可能会不同,导致运行结果不一致。了解更多
接下来,我们将从本地可视化运行开始。

开始使用#

1
选择一个测试场景,然后选择运行环境。
image.png
2
点击 “运行”。
3
你会看到一个测试报告,显示当前运行的通过率、耗时时间和其它数据。你可以点击每个测试步骤来查看校验和断言结果,并查看实际的请求和响应详情。
image.png
了解更多关于测试报告的信息。

测试场景中的运行配置项#

在 Apifox 中运行测试场景时,可以配置多个设置和选项来根据特定要求运行测试。

通用配置#

你可以在测试场景右侧的 tab 页中调整以下设置:
运行环境
测试步骤中每个接口的运行链接(前置 URL),详情见环境与服务。
测试数据
测试场景支持导入外部测试数据集。当测试场景运行时,系统会循环运行数据文件里所有的数据集,并且会将数据集里的数据赋值对应的变量,详情见数据驱动测试。
循环次数
循环次数是指整个测试场景完整执行的轮次。
线程数
线程数指的是同时并发运行测试场景的线程数,每个线程都会按顺序运行选中的所有步骤。注意这是一个处于 Beta 阶段的功能,可能会出现预期之外的问题。
运行于
实际消耗硬件资源运行测试场景的机器。所有测试场景中发起的请求,会从这里指定的机器发起,所以有可能因为请求机器的网络环境不同导致产生不同的测试结果。
此设置不会保存为测试场景的运行配置中,每次都是默认使用本机运行测试场景。并且这个设置不会在批量运行、CLI 运行时生效,使用以上方式运行时还是消耗当前机器资源发起请求。
指定机器发起测试场景运行,如果该测试场景中使用了文件(请求发送文件、数据库连接、外部程序、SSL 证书等),则需要将所有要用到的文件存放在指定机器本地才可正常使用。
通知
是否在手动运行本测试场景完成之后,发送一个通知信息给指定的对象,信息内会有测试总览结果和详情链接。打开后可以设置是只要完成运行即进行通知还是在仅发生失败时进行通知,用以减少无效通知的打扰。通知对象的详细说明请参考此处。
共享
点击高级设置右侧的“共享”选项后,每次运行测试场景后的测试报告都将会自动共享给项目内的其它成员。你可以在“测试报告”中的“共享” tab 页中查看所有已在团队内共享的测试报告。有关于测试报告的内容,详细说明请参考《查看测试报告》。
如果当前测试场景步骤中存在从其它项目导入的接口,那么你可以参考管理其它项目接口的运行环境。

高级设置#

在高级设置中,你还可以调整:
遇到错误时的策略
当某个测试步骤执行出错时,例如出现断言错误、数据格式校验错误或服务器错误等情况,系统根据预设的策略进行处理,提供以下 3 种策略:
忽略:跳过当前异常步骤,继续执行后续步骤。
跳到下一轮循环:结束当前循环测试,跳转到下一轮循环测试。
结束运行:停止测试,并标记为失败。
间隔停顿
前一个测试步骤运行完成后,停顿一段时间,再运行下一个步骤。
保存请求 / 响应详情
开启后将保存接口的实际请求、请求响应 headers 与 bodies,但数据过多有可能会影响性能,你可以选择保存“全部请求”或“仅失败请求”。
保存变量变化值
测试场景运行结束后,将测试过程中有变化的环境/全局变量值保存至项目中的环境/全局变量。
使用全局 Cookie
1.
如果使用全局 Cookie,则在测试场景中,所有接口的请求都将带上全局 Cookie。
2.
如果不使用全局 Cookie,则在测试场景中,每个接口的请求都将带上自己的 Cookie。
保存 Cookie 到全局
测试场景运行结束后,将已变化的 Cookie 值保存至当前项目内的全局 Cookie 中。

在编排模式中调整运行配置#

如果你进入了编排模式,相关的运行配置被收起到 “运行” 按钮的右侧。将鼠标 Hover 在此设置按钮上,即可看到本测试场景的详细运行配置。
image.png

运行功能测试#

运行功能测试后将进入测试场景运行页。下图中的饼状图显示运行结果总览,并且在测试场景的运行过程中实时变化;饼状图下面是具体执行的测试步骤,在运行中将会显示每个测试步骤的执行情况。
功能测试运行结束后,你可以点击相关接口以查看该接口在测试过程中的各项指标和状态,包括接口名称、请求方式、请求地址、响应状态码、响应时间、响应内容、据校验及断言情况等。详细说明请参考《查看测试报告》。
CleanShot 2024-12-06 at 10.34.33@2x.png

不同运行方式间,使用不同的环境/全局变量值的规则#

因为环境与全局变量支持持久化,可以长期保存在某个位置,用以跨单次运行或跨不同测试场景使用。所以如果你在某个测试场景中使用到了环境/全局变量,那么在选择不同方式运行时,实际使用的变量值可能会不同。例如:
测试场景中使用了环境变量 Token,在客户端内发起运行已经完全成功,但是同样内容使用自托管 Runner 运行会发生报错,因为环境变量 Token 的值不正确。
这个例子发生的可能原因是,环境变量 Token 的实际值,在客户端内运行时是使用了客户端内保存的本地值;然而在自托管 Runner 内运行时,Runner 内并没有保存跟客户端一样的 Token 本地值,导致运行失败。
为了解决这个问题,Apifox 提供了一套在不同运行方式间使用不同规则来使用环境/全局变量值的规则:
运行方式环境/全局变量使用方式环境/全局变量保存位置
本地发起运行(客户端、Web 端)使用环境/全局变量的本地值实际运行。保存在本地,可以手动修改、通过运行前后置操作修改。可通过 “环境管理 - 环境/全局变量 - 本地值” 可视化查看。
CLI、CI/CD 运行选择实时在线运行:
  1. 使用环境/全局变量的远程值实际运行 (默认)。
  2. 通过使用 --variables <path> 选项来指定使用在运行测试场景机器内的文件中保存的环境/全局变量值实际运行。了解更多
选择导出数据运行:
  1. 使用导出文件中,包含的环境/全局变量值实际运行。
  1. 远程值保存在 Apifox 云端,仅能通过在客户端内手动更改。
  2. 保存在选项 --variables <path> 中指定 path 文件内的环境/远程变量值。可以手动在文件中修改、通过运行前后置操作修改。
  3. 保存在导出文件内的环境/全局变量值。可以手动修改、通过运行前后置操作修改。
自托管 Runner 运行
  1. 使用环境/全局变量的远程值实际运行 (默认)。
  2. 使用保存在 Runner 中的本地值实际运行。了解更多
  1. 远程值保存在 Apifox 云端,仅能通过在客户端内手动更改。
  2. 保存在指定的 Runner 内的变量范围中,可以手动修改、通过运行前后置操作修改。可通过产品界面上的引导可视化查看,也可在 Runner 容器 /opt/runner/variables 下的文件内查看。

运行包含其它项目接口的测试场景#

运行测试场景时,如果测试场景中包含了从其它项目中导入的接口,那么这些接口的运行环境中的请求地址将会从 “环境关联” 中的预设前置 URL 中获取。
例如当测试场景指定了使用 “正式环境” ,当测试步骤运行到从 “医疗问答信息系统” 项目内导入的接口时,将会按照环境关联页中所指定正式环境:http://www.nhc.gov.cn 发起请求,其它接口则按照 “正式环境” 内预设的地址发起请求。
image.png
修改于 2025-02-05 04:06:38
上一页
导出测试场景数据
下一页
批量运行测试场景
Built with