원클릭으로
testany-case
Testany platform case 注册与 CRUD - 将已准备好的 platform case package 注册到平台,并管理 metadata、脚本与生命周期
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Testany platform case 注册与 CRUD - 将已准备好的 platform case package 注册到平台,并管理 metadata、脚本与生命周期
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
从 OpenAPI 生成的 Testany case 源代码中自动识别入参和出参,并同步到 case 的环境变量列表中。适用于源代码存储在需要认证的 Git 仓库(如 Bitbucket)的场景。
Testany platform case 编写助手 - 将传统测试场景拆解为 Testany platform cases,并生成可注册的 case packages
Testany 平台核心概念和配置参考
Testany pipeline 编排与 CRUD - 基于 automation design 或现有 case keys 创建执行与编排单元
分析 Testany 测试失败原因 - 排查问题、查看日志、定位根因
Testany Git 导入:把 Git 仓库里的测试脚本批量注册成 Testany platform cases,并持续同步、切 commit、演化 binding、配 webhook
| name | testany-case |
| description | Testany platform case 注册与 CRUD - 将已准备好的 platform case package 注册到平台,并管理 metadata、脚本与生命周期 |
| argument-hint | [操作] [描述],如:注册这些 case packages、查看 A1B2C3D4、更新脚本、删除一个 case |
本 skill 通过 Testany MCP 工具管理 Testany 平台上的 platform cases。 所有操作都是对 Testany 平台的远程 API 调用,不涉及本地文件系统。
关键前提:
case 是可复用原子自动化步骤包testany-pipeline用户输入: $ARGUMENTS
使用本 skill 前,先按 automation-model.md 理解边界:
testany-case-writing 负责把它拆成 platform cases,并产出脚本、ZIP 与 decompositiontestany-pipeline 负责把 platform cases 组装成可执行 pipelinetestany-trigger 负责配置 Plan / Manual Trigger / Gatekeeper重要结论:
testany-case-writing 已产出的 platform case packagestestany-case-writingtestany-pipelinetestany-trigger| 用户意图 | 操作类型 | 工具 |
|---|---|---|
| 注册新的 platform case | Create | testany_create_case → testany_update_case → testany_update_case_script |
| 查看 case 详情 | Read | testany_get_case |
| 查看 case 脚本内容 | Read | testany_get_case_script |
| 搜索/列出 cases | Read | testany_list_cases |
| 列出我的 cases | Read | testany_list_my_cases |
| 更新 metadata / script | Update | testany_update_case / testany_update_case_script |
| 删除 case | Delete | testany_delete_case |
| 批量更新 cases | Bulk Update | testany_bulk_update_cases |
| 批量删除 cases | Bulk Delete | testany_bulk_delete_cases |
| dry run 验证 | Validate | testany_dry_run_case → testany_get_dry_run_result |
| 查看 dry run 日志 | Read | testany_get_dry_run_log(拼接出 logUrl + curlCommand,agent 代为执行) |
按以下优先级选择输入模式:
Primary:已有 platform case package
testany-case-writingSecondary:已有脚本/ZIP,但 metadata 不完整
Fallback:只想先创建草稿 shell case
如果用户只有传统测试场景,没有脚本、ZIP、decomposition:
testany-case-writing并行获取:
testany_filter_case_runtimestestany_get_my_workspacestestany_get_tenant_config(拿 deployment_type,决定 visibility 默认值,见 case-visibility-policy.md)如涉及 labels,先:
testany_list_labelstestany_create_label优先一次性收集以下内容:
| 字段 | 必填 | 说明 |
|---|---|---|
name | 是 | platform case 名称 |
runtime_uuid | 是 | 运行环境 UUID,推荐 cloudprime |
is_private | 是 | Global / Private — 受 deployment_type 约束,见 case-visibility-policy.md |
workspace_keys | 条件必填 | is_private=true 时必填;详见 policy 文档 |
description | 建议 | 说明该 platform case 的原子职责 |
case_labels | 建议 | 用于目录视图和检索 |
case_meta | 条件必填 | 运行所需配置,具体字段见 executors reference |
| ZIP / 脚本包 | 条件必填 | 若目标是注册 runnable case,通常需要 |
收集原则:
调用 testany_create_case:
nameruntime_uuidis_privateworkspace_keys调用 testany_update_case 设置:
descriptioncase_labelsenvironmentsowned_bycase_versioncase_meta这里的 case_meta 后端字段名仍然是 trigger_method,但它表示的是 case 级运行入口配置:
executortrigger_pathtrigger_command它不等于 Plan / Manual Trigger / Gatekeeper 这类 pipeline trigger。
case_meta.environment_variablescase 运行时可见的变量列表,每条有一个 type:
| type | 用途 | 填值方式 |
|---|---|---|
env(默认) | 普通环境变量、relay 输入 | 填 value |
output | 供 pipeline 中其他 case relay 消费 | 填 value(运行时由脚本写入) |
secrets | 引用 workspace 的 Credential Safe 条目 | 填 secret_ref: { workspace_key, credential_safe_key, credential_key };禁止填 value |
关于 type=secrets:
os.getenv("DB_PASSWORD")),不需要额外的取值代码或 SDKcredential_safe_key / credential_key,用 testany_list_credential_safes → testany_list_credential_keys 两步查询(runtime_uuid 必须与 case 一致;两个工具返回签名 curl,需 agent 代为执行)。详细流程见 executors.md 的"查询 credential_safe_key / credential_key"status(valid / blocked / invalid)和 status_reasons[]
valid 要向用户报告原因。常见 reason:owner_access_not_satisfied(owner 没访问权)、visibility_not_satisfied(case 可见性收窄)、target_not_found_or_unresolvable(safe/key 不存在)、secret_ref_malformed(引用字段不完整)value / status / status_reasons;传了会被后端拒绝testany_update_case / testany_bulk_update_cases / testany_bulk_append_cases 返回错误码 E400002(case_secrets_feature_disabled),向用户说明:当前 workspace 的 secrets 功能可能未开启,请联系 workspace 管理员写入注意(整集合替换语义):environment_variables 是整数组替换。若只想新增或修改单条 secret,必须先 testany_get_case 读出现有条目,在内存里合并后再写回;否则其他 env / output / secrets 行会被一并清空。
详细字段规则见:
如果用户已经准备好脚本包,调用 testany_update_case_script 上传。
如脚本中包含以下能力,提醒用户同步补齐配置:
case_meta.environment_variables 中声明对应的 type=output 行case_meta.environment_variables 中声明 type=secrets 行 + secret_ref,脚本里直接读同名环境变量即可如用户要求验证,或刚补齐了必填字段:
testany_dry_run_casetestany_get_dry_run_result 轮询直到进入终态testany_get_dry_run_log 拿 curlCommand 后由 agent 代为执行拉取日志创建完成后,必须显式说明:
testany-pipeline| 场景 | 工具 | 说明 |
|---|---|---|
| 获取单个 case 详情 | testany_get_case | 传入 case key |
| 获取 case 脚本内容 | testany_get_case_script | 下载 ZIP 并返回文件内容 |
| 搜索所有 cases | testany_list_cases | 支持 workspace / keyword / page 等过滤 |
| 列出我的 cases | testany_list_my_cases | 适合个人资产盘点 |
| 字段 | 说明 |
|---|---|
name | case 名称 |
description | 原子职责说明 |
is_private | 可见性 |
workspace_keys | 私有 case 的工作空间列表 |
environments | 环境标签 |
case_labels | 分类标签 |
case_version | 版本号 |
owned_by | 所有者 |
case_meta | 运行配置 |
| 脚本 ZIP | 通过 testany_update_case_script 上传 |
testany_get_case 获取当前配置testany_update_case 提交 metadata 更新testany_update_case_scriptis_private / workspace_keys 的更新受 deployment_type 约束:restricted → global 在 type=2 租户下会被拒(E400001)。见 case-visibility-policy.md。bulk_update_cases 走同一套校验。
如果修改了以下内容,必须提示用户同步检查相关 pipeline:
原因:
如果用户下一步就要修这些引用关系,切到 testany-pipeline。
调用 testany_delete_case 前,必须先明确告知用户:
409当前限制:
如果删除失败并返回 409:
testany-pipeline 解除组装关系,再重试testany_bulk_delete_cases 同样受上述约束:
Testany 使用 case_labels 实现虚拟目录结构:
典型流程:
testany_list_labelstestany_create_labeltestany_update_case / testany_bulk_update_cases / testany_bulk_append_casesdry run 只验证 case 本身是否 ready,不替代 pipeline 编排验证。
流程:
testany_dry_run_case —— 触发 dry run,拿到 dry_run_idtestany_get_dry_run_result —— 轮询直到 dry_run_status 进入终态testany_get_dry_run_log —— 拼接 logUrl + 签名 curl,由 agent 代为执行拉日志dry_run_status 与 execution status 共用同一套数值:
| 值 | 含义 | 是否终态 |
|---|---|---|
| -1 | NOT_STARTED(排队中) | 否 |
| 0 | RUNNING | 否 |
| 1 | SUCCESS | 是 |
| 2 | FAILURE | 是 |
| 5 | CANCELLED | 是 |
| 99 | ERROR | 是 |
常见误用:把 1 (SUCCESS) 当成 RUNNING 持续轮询。看到 1 就该停下来,要么报告成功、要么调 testany_get_dry_run_log 看输出。
典型用途:
testany_get_dry_run_log 看 stdout / 错误堆栈,定位是脚本 bug 还是配置 bug| 场景 | 处理方式 |
|---|---|
| 用户只有传统测试场景,没有 package | 先去 testany-case-writing |
| 用户要注册多个原子步骤 | 按 package inventory 逐个创建/更新 case |
| 用户希望形成可执行链路 | case 注册后继续到 testany-pipeline |
| 用户想删除 case | 先提醒 pipeline 组装约束与 409 风险 |
| 用户更新了 relay / 输入输出相关字段 | 提醒同步检查相关 pipeline |
任务完成后,向用户汇报:
A1B2C3D4)testany-pipelinetestany-trigger