Apidog Docs
🇨🇳 简体中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇨🇳 简体中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇨🇳 简体中文
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
  1. 团队资源
  • Apidog 学习中心
  • 入门
    • Apidog 简介
    • Apidog 中的基本概念
    • 导航 Apidog
    • 快速开始
      • 概述
      • 创建端点
      • 发送请求
      • 添加断言
      • 创建测试场景
      • 共享 API 文档
      • 探索更多
    • 迁移到 Apidog
      • 概述
      • 手动导入
      • 定时导入(绑定数据源)
      • 导入选项
      • 导出数据
      • 导入自
        • 从 Postman 导入
        • 导入 OpenAPI 规范
        • 导入 cURL
        • 导入 Markdown
        • 从 Insomnia 导入
        • 从 apiDoc 导入
        • 导入 .har 文件
        • 导入 WSDL
  • Mock API 数据
    • 概述
    • Smart Mock
    • 自定义模拟
    • 模拟优先级顺序
    • 模拟脚本
    • 云端模拟
    • 自托管 Runner 模拟
    • 模拟语言(区域设置)
  • 账号与偏好设置
    • 账户设置
    • 生成 OpenAPI 访问令牌
    • 通知
    • 语言设置
    • 快捷键
    • 网络代理配置
    • 备份数据
    • 更新 Apidog
    • 删除账户
    • 实验性功能
  • 发送请求
    • 概述
    • SSE 调试
    • MCP 客户端
    • Socket.IO
    • WebSocket
    • Webhook
    • SOAP 或 WebService
    • GraphQL
    • gRPC
    • 使用请求代理 Agent 进行调试
    • 创建请求
      • 请求历史
      • 请求基础
      • 参数和主体
      • 请求头部
      • 请求设置
      • 调试请求
      • 将请求保存为端点
      • HTTP/2
    • 身份验证与授权
      • 概述
      • CA 和客户端证书
      • 授权类型
      • Digest Auth
      • OAuth 1.0
      • OAuth 2.0
      • Hawk 身份验证
      • Kerberos
      • NTLM
      • Akamai EdgeGrid
    • 响应和 Cookie
      • 查看 API 响应
      • 管理 Cookie
      • 概述
  • 开发和调试 API
    • 概述
    • 生成请求
    • 发送请求
    • 调试用例
    • 测试用例
    • 动态值
    • 验证响应
    • Design-First vs Request-First
    • 生成代码
    • 环境与变量
      • 概览
      • 使用变量
      • 环境管理
    • Vault 密钥
      • 概述
      • HashiCorp Vault
      • Azure Key Vault
      • AWS Secrets Manager
    • 动态值模块
      • Airline
      • 动物
      • 颜色
      • 商务
      • Company
      • 数据库
      • 数据类型
      • 日期
      • Finance
      • 食物
      • Git
      • Hacker
      • Helpers
      • 图像
      • Internet
      • 位置
      • Lorem
      • 音乐
      • 数字
      • Person
      • 电话
      • 科学
      • String
      • System
      • Vehicle
      • Word
    • 前置和后置处理器
      • 概述
      • 断言
      • 提取变量
      • 等待
      • 安全
      • 数据库操作
        • 概述
        • MySQL
        • MongoDB
        • Redis
        • Oracle 客户端
      • 使用脚本
        • 概述
        • 预处理器脚本
        • 后处理器脚本
        • 公共脚本
        • Postman 脚本参考
        • 调用其他编程语言
        • 使用 JS 库
        • 可视化响应
        • 脚本示例
          • 断言脚本
          • 使用变量
          • 修改请求
          • 其他示例
    • API 调试
      • AI Agent Debugger
      • A2A 调试器
  • 设计 API
    • 概述
    • 创建新的 API 项目
    • 端点基础
    • API 设计指南
    • 模块
    • 配置多个请求主体示例
    • 组件
    • 通用字段
    • 全局参数
    • 端点变更历史
    • 评论
    • 批量端点管理
    • 自定义协议 API
    • Spec-first 模式(Beta)
    • 安全方案
      • 概述
      • 创建安全方案
      • 使用安全方案
      • 在线文档中的安全方案
    • 高级功能
      • 自定义端点字段
      • 关联的测试场景
      • 端点状态
      • 参数列表的外观
      • 端点唯一标识
    • Schemas
      • 概述
      • 创建新 Schema
      • 构建 Schema
      • 从 JSON 等生成 Schema
      • oneOf, allOf, anyOf
      • 使用 Discriminator
  • Apidog Europe
    • Apidog Europe
  • API 测试
    • 概述
    • 测试场景
      • 创建测试场景
      • 在请求之间传递数据
      • 流程控制条件
      • 从端点和端点用例同步数据
      • 从其他项目导入端点和端点用例
      • 导出测试场景
    • 测试报告
      • 测试报告
    • 运行测试场景
      • 运行测试场景
      • 批量运行测试场景
      • 数据驱动测试
      • 共享测试数据
      • 定时任务
      • 管理来自其他项目的 API 运行环境
    • 测试套件
      • 概述
      • 创建测试套件
      • 编排测试套件
      • 本地运行测试套件
      • 通过 CLI 运行测试套件
      • 定时任务
    • 测试 API
      • 集成测试
      • 性能测试
      • 端到端测试
      • 回归测试
      • 契约测试
    • Apidog CLI
      • 概述
      • 安装和运行 Apidog CLI
      • Apidog CLI 选项
    • CI/CD
      • 概述
      • 与 Github Actions 集成
      • 与 Gitlab 集成
      • 与 Jenkins 集成
      • 通过 Git Commit 触发测试
  • 发布 API 文档
    • 概述
    • 支持的 API 技术
    • 快速分享
    • 查看 API 文档
    • Markdown 文档
    • 发布文档站点
    • 自定义登录页面
    • 自定义布局
    • 自定义 CSS、JavaScript、HTML
    • 自定义域名
    • AI 功能
    • SEO 设置
    • 高级设置
      • 文档搜索
      • CORS 代理
      • 集成 Google Analytics
      • 文件夹树设置
      • 可见性设置
      • 在文档 URL 中嵌入值
    • API 版本
      • 概述
      • 创建 API 版本
      • 发布 API 版本
      • 共享带有 API 版本的端点
  • 分支
    • 概述
    • 创建 Sprint 分支
    • 在分支中测试 API
    • 在分支中设计 API
    • 合并 Sprint 分支
    • 管理 Sprint 分支
    • AI Branch(Beta)
  • AI 功能
    • 概述
    • 启用 AI 功能
    • 生成测试用例
    • 使用 AI 修改 Schema
    • 端点合规性检查
    • API 文档完整性检查
    • AI 驱动的字段命名
    • 常见问题
  • Apidog MCP 服务器
    • 概述
    • 将 Apidog 项目连接到 AI
    • 将已发布的文档连接到 AI
    • 将 OpenAPI 文件连接到 AI
  • 最佳实践
    • 处理 API 签名
    • 访问受 OAuth 2.0 保护的 API
    • 协作工作流
    • 管理身份验证状态
  • 离线空间
    • 概述
  • 管理
    • 管理项目
      • 管理项目
      • 通知设置
      • 管理项目成员
      • 项目资源
        • 数据库连接
        • Git 连接
    • 管理团队
      • 管理团队
      • 管理团队成员
      • 团队活动
      • 团队角色与权限
      • 团队资源
        • General Runner
        • 团队变量
        • 请求代理 Agent
      • 实时协作
        • 团队协作
    • 入门检查清单
      • 基本概念
      • 入门指南
    • 管理组织
      • 管理组织
      • 组织角色与权限
      • 套餐管理
        • 组织中的账单管理员
      • 单点登录 (SSO)
        • SSO 概述
        • 配置 Microsoft Entra ID
        • 配置 Okta
        • 为组织配置 SSO
        • 管理用户账户
        • 将组映射到团队
      • SCIM 配置
        • SCIM 预配简介
        • Microsoft Entra ID
        • Okta
      • 组织资源
        • 自托管 Runner
  • 计费
    • 概述
    • 积分
    • 升级您的套餐
    • 替代支付方式
    • 管理订阅
    • 将付费团队移入组织
  • 附加组件
    • API Hub
    • Apidog Intellij IDEA 插件
    • 浏览器扩展
      • Chrome
      • Microsoft Edge
    • 请求代理
      • Web 中的请求代理
      • 共享文档中的请求代理
      • 客户端中的请求代理
  • 数据与安全
    • 数据存储和安全
    • 用户数据隐私与安全
    • 请求路由与数据安全
  • 参考
    • API 设计优先方法
    • Apidog OpenAPI 规范扩展
    • JSONPath
    • XPath
    • 正则表达式
    • JSON Schema
    • CSV 文件格式
    • 安装 Java 环境
    • Runner 部署环境
    • Apidog Markdown 语法
    • Apidog Swagger 扩展
      • 概述
      • x-apidog-folder
      • x-apidog-status
      • x-apidog-name
      • x-apidog-maintainer
    • Apidog JSON Schema 扩展
      • 概述
      • x-apidog-mock
      • x-apidog-orders
      • x-apidog-enum
  • 支持中心
  1. 团队资源

General Runner

Apidog Self-hosted Runner 可以理解为一个可托管在独立服务器上的自动化程序。它可以执行 Apidog 中的任务,例如定时自动化测试、定时 API 文档导入,以及返回模拟响应结果。

准备工作#

主机(服务器或本地 PC)必须安装 Docker。
Docker 最低要求版本为 20.10.0,推荐使用 20.10.13 版本。

快速开始#

本节将指导你如何在服务器上部署 General Runner。

1. 部署 General Runner#

导航到 Apidog Home 页面,选择所需团队,然后点击右侧的 Resources。接着点击 Deploy General Runner 开始部署。
team-resources-general-runner.png

2. 获取 Runner 部署命令#

点击 Deploy General Runner 后,从弹出窗口复制 General Runner 的部署命令。你可以根据需要自定义命令,支持自定义服务器操作系统、暴露端口、挂载数据目录等。以下是这些设置的详细说明:
Server OS:指定 Docker 容器的操作系统。这包括 Linux、macOS 和 Windows。选择正确的操作系统对于确保 Docker 容器正常运行至关重要。
Docker Image:提供三个版本:General、Slim 和 Custom。如果你的“自定义脚本”需要调用外部程序,请根据所需环境选择合适的镜像进行安装:
General:包含 Runner 的所有功能,并预装以下语言环境:Node.js 18、Java 21、Python 3 和 PHP 8。
Slim:包含 Runner 的所有功能,但仅预装 Node.js 18。
Custom:包含 Runner 的所有功能,并支持为外部程序自定义语言环境。你可以创建自己的 Dockerfile,根据需要添加或移除环境。
Exposed Port:默认情况下,Docker 容器不会暴露内部端口以供外部访问。使用 -p 参数,可以将容器的内部端口映射到主机端口,从而允许外部访问容器提供的服务。例如,-p 80:4524 会将容器的内部端口 4524 映射到主机的 80 端口。
Mount Data Directory:-v 参数允许你将主机目录挂载到容器中,使容器能够访问和操作主机上的文件(例如数据库配置或外部程序)。例如,-v "/opt/runner":/opt/runner 会将主机的 /opt/runner 目录挂载到容器的 /opt/runner 目录。
image.png
TIP
部署命令包含 token 信息,出于数据安全原因只会显示一次。每次点击 Deploy General Runner 都会生成新的命令。
请将该命令保存在本地,因为你可以在未来升级 Runner 时使用它。

3. 在服务器上部署 Runner#

将复制的部署命令粘贴到服务器终端中,Runner 安装将自动开始。
TIP
你可以通过环境变量修改 Runner 的部署属性,以更好地匹配你的实际使用场景。阅读 runner deployment environment 了解更多信息。
安装完成后,终端会打印相关信息。如果出现错误,你可以根据错误详情进行排查。如果仍无法解决,请联系我们并提供反馈。

4. 在服务器上查看 Runner 状态#

你可以通过 Docker 客户端查看容器的运行状态。
你也可以在终端中使用 docker ps 命令查看容器的运行状态。

5. 在 Apidog 中查看已部署的 General Runner#

确认服务器上的 Runner 容器已部署并启用后,返回 Apidog。你可以在 Team Resources → General Runner 中看到 Runner 已部署并连接到 Apidog。
如果 General Runner 已在服务器上成功部署,但未显示在 Apidog 客户端中,请点击 “General Runner” 右侧的刷新按钮刷新页面并再次检查。
你可以重命名、添加描述以及删除 Runner,以便团队成员更好地使用此 Runner;你也可以停止/重启 Runner。
已暂停的 Runner 将不再执行指定的定时任务,也无法创建新的相关任务并指定该 Runner 执行。
请参考下表了解 Runner 的状态说明:
状态说明
已启动Runner 在服务器上的容器中正常启用,与 Apidog 保持通信,并可以处理 Apidog 下发的相关任务。
已停止Runner 在 Apidog 中被手动停止,但仍在服务器上的容器中正常运行并保持通信。它不会处理 Apidog 下发的任务,且新任务无法指定已停止的 Runner 执行。你可以在 Apidog 中手动启用它,使 Runner 恢复为已启动状态。
离线Runner 已与 Apidog 断开连接,无法处理任务。这可能是由于服务器上的 Runner 容器停止,或服务器与 Apidog 之间存在通信问题。要恢复 Runner,请确保 Runner 容器正在运行,并且与 Apidog 的通信没有问题,使 Runner 恢复为已启动状态。
你可以在一个团队中部署多个 General Runner。创建需要自托管 Runner 的任务时,团队成员可以从可用的 Runner 中进行选择。

在 Runner 中保存文件#

使用 Runner 执行端点请求、测试场景和定时任务等任务时,可能需要某些本地文件来支持任务执行。示例包括:
在自定义脚本中调用其他编程语言
在前置/后置处理器中使用数据库连接
发送请求时使用 SSL 证书
为此,请将必要文件保存到 Docker 容器内的指定目录中。当 Runner 执行相关任务时,它会根据任务要求从指定目录读取文件内容,以确保任务成功完成。
请参考下表,将具有适当格式和内容的文件放入指定目录以供使用:
使用内容指定目录路径(或文件名)Docker 命令示例
其他编程语言/app/external-programs/-v /Users/xxx/runner/packages/api-test/external-programs:/app/externalPrograms
数据库连接配置文件/app/database/database-connections.json-v /Users/xxx/runner/packages/api-test/database/database-connections.json:/app/database/database-connections.json
SSL 证书列表文件/app/ssl/ssl-client-cert-list.json-v /Users/xxx/runner/packages/api-test/ssl/ssl-client-cert-list.json:/app/ssl/ssl-client-cert-list.json
你可以参考此页面,了解如何从 Apidog 客户端导出配置文件。

升级与重新部署 Runner#

升级 Runner#

当 Runner 发布新版本时,桌面端 Runner UI 中会出现升级图标。点击该图标以安装 Apidog 提供的最新版本。
runner-user-interface.png
点击 Upgrade 会提示你停止当前正在运行的 Runner 容器。请注意,容器停止后,定时任务以及客户端发送到此 Runner 的任何任务都将不再执行。
update-prompt.png
确认升级后,Apidog 会自动停止当前 Runner 容器,并提供用于部署新版本的命令。按照初始部署步骤重新部署 Runner。部署成功后,你将使用最新版本。注意:客户端中现有的定时任务不会受到影响,也无需重新分配。
update-general-runner.png

重新部署 Runner#

如果 Runner 遇到问题,而你无法在 Q&A 部分找到解决方案,或相关说明无法帮助解决问题,请考虑重新部署 Runner。为此,请导航到特定 Runner 的 More Actions 部分,然后点击 Redeploy。
redeploy-the-runner.png
重新部署流程与上方的升级流程相同。注意:重新部署也会停止 Runner 容器。

Q&A#

1. 如何检查 Runner 日志以诊断问题?
使用 docker ps 命令定位有问题的 Runner。
使用以下命令查看日志:
我的 Runner 已宕机/断开连接,或无法执行任务。我该怎么办?
步骤 1:收集信息以诊断问题:
查找错误模式或运行详情
打开开发者工具 (Alt+7+8),向有问题的 Runner 发送一个测试场景,并记录端点详情
查看 Runner 日志,查找任何错误消息或线索
步骤 2:解决问题:
如果你可以识别问题,且问题不是由 Apidog bug 引起的,请自行修复
如果你无法定位问题,请联系 Apidog 社区获取进一步帮助
为什么 Runner 完成定时任务后我没有收到通知?
步骤 1:验证任务完成情况:
检查 Apidog 客户端中是否有该定时任务的测试报告
查看 Runner 日志中是否存在任何问题
步骤 2:检查通知配置:
确保通知设置已保存在定时任务中
再次检查条件和接收人是否配置正确
尝试手动触发任务,以确认通知是否正常发送
'No Runner Privilege' 错误是什么意思,如何修复?
此错误有两个可能原因:
部署命令已重新生成:如果你生成了命令,关闭弹窗,然后再次点击,则新的 token 可能会使之前的 token 失效。要修复此问题:
切换到左上角的另一个团队,然后返回需要部署 Runner 的团队
重新生成部署命令,复制并运行它。确保在流程完成之前不要再次点击重新生成。
teamId 变量的 ID 数据错误:这是一个已在最新版本中修复的已知 bug。如果问题仍然存在:
切换到左上角的另一个团队,然后返回需要部署 Runner 的团队
重新生成部署命令,复制并运行它。确保在流程完成之前不要再次点击重新生成。
Modified at 2026-06-09 08:55:47
Previous
团队角色与权限
Next
团队变量
Built with