بنقرة واحدة
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 المهني
| 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从 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