ワンクリックで
e2e-test
创建和执行 Bifrost 代理的端到端测试;在添加新功能或修复 bug 后用于验证。必须优先于 rust-project-validate 技能执行。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
创建和执行 Bifrost 代理的端到端测试;在添加新功能或修复 bug 后用于验证。必须优先于 rust-project-validate 技能执行。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
使用 bifrost 命令行工具管理代理生命周期、规则、Group 规则、证书、脚本、系统代理、运行时配置与流量查询(含 JSONPath/header 等值/时间窗高级过滤、search --include 直接挂 body/headers、traffic 批量 get、auth-status JWT/Cookie 诊断、export curl/fetch/HAR、replay + JSON Patch、capture wait 等下一条请求、status --format json),以及远程调用(remote shell 执行、授权管理、远程流量排查)。当用户提到以下任意场景时触发:1) 启动/停止/检查 bifrost 代理;2) 配置 TLS 拦截(域名白名单、应用白名单);3) 调试或管理规则/Group 规则/脚本;4) 查看流量记录、搜索请求;5) 通过一个少于 6 位的数字 ID 获取请求详情(如「获取 57544 的详情」「获取 47544 请求的内容」「查看 12345」等);6) 修改 values/config/CA 证书/系统代理;7) 远程调用:连接/断开远端 Bifrost、远程执行命令(shell exec)、管理 Shell Access 策略与 Profile、管理远程授权(grant);8) 诊断 JWT/Cookie 过期/重放请求/导出 curl/fetch/HAR/等待下一条匹配请求/批量取多条 traffic。常见触发表述:'使用 bifrost 获取 xxxxx 的详情''获取 xxxxx 的请求内容''查看 xxxxx 的内容''bifrost traffic get xxxxx''导出 xxxxx 为 curl''重放 xxxxx 这条请求''看下 xxxxx 的 JWT 还有效吗''等下一条 POST xxxxx 的请求''远程执行命令''管理远程授权' 等、远程文件操作(file.read/list/stat/glob/search/hash/upload/download)。
Use when changing Bifrost WebUI, desktop shell UI, public site, docs visual style, interaction patterns, layout, copy density, colors, typography, spacing, or component styling. Reads DESIGN.md as the product design contract and validates it with @google/design.md.
面向 Bifrost 管理端的端到端 UI 与 API 验证工具。 适用于浏览器测试、场景回归、管理端接口验证与页面快照排查。 Use when: 端到端验证、功能验证、E2E 测试、UI 测试、浏览器测试、API 测试、接口验证
Open a target website, wait for user login, verify login with required cookies plus an HTTP probe, and save cookies into .env for later automation. Use this when a site needs controlled browser login, cookie persistence, and automatic login-state checks.
Inspect Codex async task progress from the correct data directory. Use when the user asks to check Codex status, inspect async task progress, summarize task state, or determine whether local Codex workers are still running. Always detect the active Codex data dir first: prefer CODEX_HOME when set, otherwise fall back to $HOME/.codex; only use repo .codex-tasks when the user explicitly targets it.
用 Personal Access Token 通过 GitHub REST API 分析 Actions CI 的失败 run/job/step、拉取日志、轮询运行状态、做 PR code review,并驱动 fix → push → watch → iterate 的闭环。Token 只从 GITHUB_TOKEN 环境变量读取,不落盘、不回显。适合在 bifrost remote / CI 调度器 / 无头环境里跑。仓库锁定在 AGENTS.md 或调用处通过 GH_REPO 显式指定。
| name | e2e-test |
| description | 创建和执行 Bifrost 代理的端到端测试;在添加新功能或修复 bug 后用于验证。必须优先于 rust-project-validate 技能执行。 |
该技能用于创建和执行 Bifrost 的端到端测试,优先覆盖本次变更涉及的能力。
在执行任务前,必须先阅读 E2E 测试框架的详细文档:
./.bifrost-e2ecargo run 或旧进程已生效e2e-tests/rules/ 下,不能散落到根目录、临时文件或其他测试目录e2e-tests/rules/ 下的规则文件必须按“模块功能 + 测试目标”组织:
forwarding/、request_modify/、response_modify/.txt 文件;一个文件只表达一组紧密相关的规则语义,避免把多个无关目标塞进同一个文件headers.txt、wildcard_level.txt、tls_intercept_rule.txte2e-tests/tests/,不能继续放在 scripts/、根目录或其他位置;脚本命名建议与测试目标对应,例如 test_header_replace.she2e-tests/test_data/、e2e-tests/mock_servers/ 等目录,不要和规则文件混放CARGO_TARGET_DIR=./.bifrost-ui-target cargo build --bin bifrost
BIFROST_DATA_DIR=./.bifrost-e2e-test ./.bifrost-ui-target/debug/bifrost start -p 8800 --unsafe-ssl
bifrost 进程监听,例如 lsof -nP -iTCP:8800 -sTCP:LISTENcurl -sS http://127.0.0.1:8800/_bifrost/api/proxy/addressbifrost 进程/_bifrost/api/traffic、/_bifrost/api/traffic/{id} 返回的真实状态/api/push 的 framesent/framereceived,判断是“服务端没推”还是“页面没订阅/没消费”当本次变更涉及 bifrost CLI 子命令(例如 bifrost value ...、bifrost rule ...、bifrost script ...)时,推荐使用“黑盒 + 独立数据目录”的方式编写与执行测试:
BIFROST_DATA_DIR:用 mktemp -d 创建测试目录并导出,避免污染本机 ~/.bifrosttarget/release/bifrost,不存在时再 cargo build --release --bin bifrostgrep/jq(如有)做关键字段断言BIFROST_DATA_DIR 下对应文件/目录是否按预期创建与更新trap cleanup EXIT 确保结束后停止残留进程并删除临时目录现有 CLI 测试用例可直接参考与复用:
e2e-tests/test_values_cli.sh:示例化展示了 build、BIFROST_DATA_DIR 隔离、以及 set/get/list/delete/import 的断言方式e2e-tests/tests/test_cli_proxy_start_e2e.sh:启动相关 CLI 的端到端覆盖e2e-tests/tests/test_upgrade_cli.sh:升级相关 CLI 覆盖以 bifrost script 为例,核心验证点建议包括:add → show → list → delete 以及脚本文件落盘路径:
TEST_DIR="$(mktemp -d)"
trap 'rm -rf "$TEST_DIR"' EXIT
export BIFROST_DATA_DIR="$TEST_DIR"
BIFROST_BIN="./target/release/bifrost"
"$BIFROST_BIN" script add request cli_test -c 'log.info("hello");'
"$BIFROST_BIN" script show request cli_test | grep -q 'hello'
"$BIFROST_BIN" script list -t request | grep -q 'cli_test'
test -f "$BIFROST_DATA_DIR/scripts/request/cli_test.js"
"$BIFROST_BIN" script delete request cli_test