mcpField
R
running-release-tests

running-release-tests

github.com/aws测试与质量3.3k1.5k 次安装今天更新
代码仓库

关于 running-release-tests

该技能指导 Agent 使用 AWS DevOps Agent 的 Release Testing Agent,在云端执行 UI 或 API 发布测试。它涵盖测试配置选择、任务监控和报告获取,适用于需要自动化发布验证的团队。

主要功能

  1. 01云端 UI 与 API 测试
  2. 02使用预先创建的测试配置
  3. 03监控任务状态与测试记录
  4. 04获取并保存测试报告
  5. 05支持取消任务及 AWS CLI 回退

适用场景

  1. 01验证发布版本的 Web 界面
  2. 02依据 OpenAPI 规范执行 API 测试
  3. 03查看测试进展并获取结果报告

MCP 相关

该技能通过 AWS DevOps Agent 的 MCP 工具创建和跟踪发布测试任务,并获取测试报告;工具不可用时提供 AWS CLI 回退路径。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aws/agent-toolkit-for-aws --skill running-release-tests

安装后在 Claude Code 中输入/running-release-tests确认已加载。

详细介绍

发布测试

AgentSpace 路由(仅限 SigV4): 如果工具列表中有 list_agent_spaces,且本次会话尚未调用多空间编排技能,请先调用该技能,确定要使用的 agent_space_id。然后在下方所有工具调用中传入 agent_space_id。对于持有者令牌身份验证,无需执行此操作,因为令牌已限定在一个空间内。

通过 AWS DevOps Agent 的发布测试 Agent 在云端运行自动化发布测试。支持 UI 测试(基于浏览器)和 API 测试(基于 OpenAPI 规范)。使用预先存在的测试配置文件,其中定义了目标 URL、Agent 类型、测试角色和凭据。

输入是测试配置文件——测试配置文件已包含目标 URL、Agent 类型(UI 或 API)、测试角色和凭据。不要直接向用户询问 URL;URL 已在测试配置文件中定义。

前提条件

  • 预先存在的测试配置文件(知识项 ID,格式如 ki-12345),由 AWS DevOps Agent 控制台创建

收集测试参数

开始任何工作流之前,必须收集以下参数。未获得答复前,不得继续创建任务。

步骤 1 — 测试配置文件(必需)

询问用户要使用哪个测试配置文件。测试配置文件已包含目标 URL、Agent 类型(UI 或 API)、测试角色和凭据配置——无需单独收集这些信息。

注意: 预先存在的测试配置文件是前提条件。测试配置文件通过 AWS DevOps Agent 控制台或 API 创建,不能通过此工具创建。如果用户询问能否在此创建,请告知他们必须事先创建好。

步骤 2 — 测试要求(可选)

如果用户尚未说明测试重点,请询问:

“您有具体的测试要求或重点领域吗?如果没有,我将运行完整的探索性测试。”

等待用户回复。如果用户提供了要求,请将其用作 test_requirement。如果用户表示没有或跳过此项,请继续,不添加此参数。

重要:创建任务前必须等待用户回复。

核心工作流

1. 选择 Agent Space

列出可用的 Agent Space:

aws devops-agent list-agent-spaces --region us-east-1

向用户展示列表,并询问他们想使用哪个 Agent Space。在用户选定之前不得继续。 后续所有调用中均使用所选的 agentSpaceId 作为 SPACE_ID。

2. 检查工具是否可用

确认以下工具可用:aws_devops_agent__create_release_testing_job、aws_devops_agent__get_task、aws_devops_agent__list_journal_records、aws_devops_agent__get_release_ui_testing_report、aws_devops_agent__get_release_api_testing_report。这些工具不会延迟加载——如果它们未出现在工具列表中,即表示不可用。不要通过 ToolSearch 搜索这些工具。如果缺少任何工具,请跳过本节剩余步骤,改用下方的“回退(aws-mcp)”路径。

3. 启动任务
aws_devops_agent__create_release_testing_job(
    test_profile_id="ki-12345",
    webhook_event_message="<optional test requirement>"
)
→ {"taskId": "...", "executionId": "...", "status": "started"}

记录响应中的 taskId 和 executionId。

4. 轮询状态

每隔 30 秒调用 aws_devops_agent__get_task(task_id=TASK_ID),直到状态变为 IN_PROGRESS 或终止状态。

5. 监控直至完成

状态变为 IN_PROGRESS 后,循环轮询进度:

  1. 调用 aws_devops_agent__list_journal_records(execution_id=EXEC_ID, order="ASC") 获取新发现。
  2. 向用户逐条展示记录,并提供友好的进度更新。
  3. 后续轮询时使用响应中的 next_token,仅获取新记录。
  4. 每次轮询间隔等待 20 秒。
  5. 定期检查 aws_devops_agent__get_task(task_id=TASK_ID)——状态变为终止状态(COMPLETED、FAILED、CANCELED、TIMED_OUT)时停止。
6. 呈现结果

作业达到终态后:

  • 如果为 COMPLETED:
    1. 根据测试配置文件的 Agent 类型(UI 或 API)确定报告类型。对于 UI 配置文件,调用 aws_devops_agent__get_release_ui_testing_report(execution_id=EXEC_ID);对于 API 配置文件,调用 aws_devops_agent__get_release_api_testing_report(execution_id=EXEC_ID)。

    2. 将报告内容写入 Markdown 文件:

      release-testing-report-<YYYY-MM-DD-HHmmss>.md
      
    3. 告知用户报告已保存,并提供文件路径。

  • 如果为 FAILED 或 TIMED_OUT:呈现错误信息并建议后续步骤。
  • 如果为 CANCELED:告知用户作业已取消,且没有可用报告。

取消作业

aws_devops_agent__cancel_release_testing_job(task_id=TASK_ID)

错误处理

  1. 如果任务状态变为 FAILED,请停止工作流并报告错误。
  2. 如果任务在 5 分钟内未进入 IN_PROGRESS,请使用 cancel_release_testing_job 取消任务。
  3. 如果任何输出包含 "NoCredentialsError"、"ExpiredTokenException" 或身份验证失败,请建议用户刷新凭证或检查 bearer token。
  4. 如果遇到限流(429 或 ThrottlingException),请等待 30 秒后重试。重试 3 次后,告知用户。

回退方案(aws-mcp)

如果 aws-devops-agent 远程服务不可用,请直接使用 AWS CLI:

告知用户:"远程服务不可用 — 正在使用 AWS API 直接回退方案。"

1. 选择 Agent 空间

列出可用的 Agent 空间:

aws devops-agent list-agent-spaces --region us-east-1

向用户呈现列表,并询问他们想使用哪个 Agent 空间。在用户选择之前,请勿继续。 在所有后续调用中,将选定的 agentSpaceId 用作 SPACE_ID。

2. 启动作业
aws devops-agent create-backlog-task \
  --agent-space-id SPACE_ID \
  --task-type RELEASE_TESTING \
  --title 'Release Testing' \
  --priority MEDIUM \
  --description '{\"testProfileId\": \"<PROFILE_ID>\", \"webhookEventMessage\": \"<REQUIREMENT>\"}' \
  --region us-east-1

如果用户提供了测试要求,请将其作为 webhookEventMessage。如果没有提供,请省略此字段或留空。

3. 轮询状态
aws devops-agent get-backlog-task \
  --agent-space-id SPACE_ID \
  --task-id TASK_ID \
  --region us-east-1

每 30 秒 轮询一次,直到状态变为 IN_PROGRESS 或终态(COMPLETED、FAILED、CANCELED、TIMED_OUT)。

4. 监控直至完成

进入 IN_PROGRESS 后,循环轮询进度:

aws devops-agent list-journal-records \
  --agent-space-id SPACE_ID \
  --execution-id EXEC_ID \
  --order ASC \
  --region us-east-1
  1. 向用户呈现每条记录,并提供友好的进度更新。
  2. 使用响应中的 next_token,在后续轮询中仅获取新记录。
  3. 每次轮询迭代之间等待 20 秒。
  4. 定期检查 get-backlog-task — 状态变为终态(COMPLETED、FAILED、CANCELED、TIMED_OUT)后停止。
5. 呈现结果

作业达到终态后:

  • 如果为 COMPLETED:
    1. 使用相应的记录类型检索报告:

      • UI 测试:--record-type qa_ui_testing_report
      • API 测试:--record-type qa_api_testing_report
      aws devops-agent list-journal-records \
        --agent-space-id SPACE_ID \
        --execution-id EXEC_ID \
        --record-type qa_ui_testing_report \
        --order ASC \
        --region us-east-1
      
    2. 将报告内容写入 Markdown 文件:

      release-testing-report-<YYYY-MM-DD-HHmmss>.md
      
    3. 告知用户报告已保存,并提供文件路径。

  • 如果为 FAILED 或 TIMED_OUT:呈现错误信息并建议后续步骤。
  • 如果为 CANCELED:告知用户作业已取消,且没有可用报告。
取消(回退方案)
aws devops-agent update-backlog-task \
  --agent-space-id SPACE_ID \
  --task-id TASK_ID \
  --task-status CANCELED \
  --region us-east-1

评论

支持 Markdown