Skip to content

qa-channel 是 OpenClaw 内置的合成测试渠道,通过 HTTP 接口模拟消息收发和渠道插件边界行为,无需真实 IM 账号即可运行确定性端到端测试。配置时需设置 baseUrl、botUserId 等参数,支持多账号和群组策略;生产环境请勿使用,仅限自动化和 CI 场景。

OpenClaw QA 渠道配置与端到端测试运行指南

qa-channel 是 OpenClaw 自带的合成消息传输渠道,用于自动化 QA 测试。

它不是生产渠道。它的存在是为了在状态完全确定、可检查的前提下,使用与真实渠道(如 Slack、Discord、Telegram)相同的插件边界做测试。

功能说明

  • Slack 格式的目标语法:
    • dm:<user> — 私聊
    • channel:<room> — 频道消息
    • group:<room> — 群组消息
    • thread:<room>/<thread> — 线程消息
  • HTTP 驱动的合成总线,支持:
    • 入站消息注入
    • 出站转录捕获
    • 创建线程、回复、编辑、删除消息
    • 搜索和读取操作
  • 自检运行器,输出 Markdown 报告到 .artifacts/qa-e2e/

配置

json
{
  "channels": {
    "qa-channel": {
      "baseUrl": "http://127.0.0.1:43123",
      "botUserId": "openclaw",
      "botDisplayName": "OpenClaw QA",
      "allowFrom": ["*"],
      "pollTimeoutMs": 1000
    }
  }
}

账号级配置项

类型说明
enabledboolean总开关
namestring可选显示标签
baseUrlstring合成总线 URL
botUserIdstringbot 用户 ID(Matrix 风格)
botDisplayNamestring出站消息显示名
pollTimeoutMsinteger长轮询超时,100–30000 ms
allowFromarray of strings发送者允许列表;私信和群组策略都使用这些合成发送者 ID,"*" 表示全部允许
groupPolicystring群组共享房间策略:"open"(默认)、"allowlist""disabled"
groupAllowFromarray of strings可选的共享房间发送者允许列表;当 groupPolicy"allowlist" 且此项省略时,回退到 allowFrom
groups.<room>.requireMentionboolean在特定群组/频道房间中需要提及 bot 后回复;groups."*" 可设置默认值
defaultTostring未指定目标时的默认投递目标
actions.messages / actions.reactions / actions.search / actions.threadsobject按操作控制工具开关

多账号配置

channels.qa-channel 下可以配置多组账号:

  • accounts — 对象,key 为账号 ID,value 为各账号的覆盖配置(与上面账号级配置结构相同)
  • defaultAccount — 多个账号时的默认账号 ID

运行测试

宿主侧自检

bash
pnpm qa:e2e

该命令通过 qa-lab 启动仓库内的 QA 总线,加载内置的 qa-channel 运行时切片,运行确定性自检,并在 .artifacts/qa-e2e/ 下生成 Markdown 报告。

完整场景套件

bash
pnpm openclaw qa suite

并行运行场景,通过 QA gateway 通道执行。场景、配置文件和运行模式参见 QA 概览

Docker 后端 QA 环境

bash
pnpm qa:lab:up

构建 QA 站点,启动 Docker 化的 gateway + QA Lab 调试器堆栈,输出 QA Lab URL。在该调试器中选择场景、模型通道,启动单次运行并实时查看结果。QA Lab 调试器与正式版 Control UI 独立。

常见问题

qa-channel 可以在生产环境使用吗?

不可以。qa-channel 是专为自动化测试设计的合成渠道,没有真实的用户身份验证、消息持久化等生产级特性。仅用于开发测试和 CI/CD。

如何配置多个 qa-channel 账号?

channels.qa-channel 下添加 accounts 对象,键为账号 ID,值为每个账号的覆盖配置(如 baseUrlbotUserId 等)。同时设置 defaultAccount 指定默认账号。

端到端测试报告在哪里?

运行 pnpm qa:e2e 后,报告生成在项目根目录下的 .artifacts/qa-e2e/ 文件夹中,格式为 Markdown 文件。可直接查看或作为 CI artifact 保存。

相关文档