Communitygithub.com

SenroAI/agent-skills

通过检查网站仓库、理解用户旅程并编写可直接导入的测试用例套件,为WebMCP网站创建Senro测试用例。适用于从网站代码库生成或扩展Senro测试套件时使用。

agent-skills 是什么?

该技能指导AI代理通过检查WebMCP网站的源代码仓库并理解其用户旅程,来生成Senro测试用例。它能够分析源代码、框架和文档,自动化构建测试套件的过程,支持多种场景,如成功工作流、边界条件、无效输入、空结果、恢复操作及状态断言。该技能不运行测试,而是输出一个符合预定义导入格式的结构化JSON文件,随后由Senro平台针对已注册的目标页面执行。它适用于CI/CD流程中直接从代码库生成测试覆盖率,并包含内置验证器以确保输出格式正确。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SenroAI/agent-skills/tree/HEAD/skills/senro-tests

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Senro测试

根据用户指定的数量,从包含已添加到Senro的页面的仓库中,生成恰好数量的有用Senro测试用例。编码代理不运行WebMCP或生成的测试;Senro稍后针对已注册的页面运行测试套件。

工作流程

  1. 确认当前仓库包含被测试的WebMCP行为的页面。将仓库视为事实来源。

  2. 在生成任何内容之前检查仓库。排除.git、依赖目录、构建输出、覆盖率输出和生成的文件。

  3. 使用项目自身的源代码、框架、依赖项、测试、夹具和文档,确定网站如何暴露其WebMCP工具。不要假定特定的WebMCP API、框架、文件布局或注册模式。

  4. 为每个发现的工具构建内部清单,包括其名称、描述、输入模式、注释、实现和可用示例。

  5. 如果无法从仓库中确定任何WebMCP工具,则停止并清晰报告。如果存在多个不相关的站点或应用,请识别它们并询问应使用哪一个。

  6. 阅读相关路由、组件、数据文件、夹具、验证代码、文档和现有测试,以映射真实的用户旅程以及可见的成功和失败状态。

  7. 在编写测试用例之前,阅读references/import-format-v1.md。仅使用其中记录的字段和结构。

  8. 生成用户请求的恰好数量的不同测试用例。覆盖仓库中最强的旅程,包括成功工作流、边界条件、无效输入、空结果、恢复操作、重大操作以及源支持的状态断言。

  9. 如果仓库无法支持请求的基于源的有意义用例数量,则报告此限制并停止。不要用虚构的场景、值或行为填充套件。

  10. 仅使用源自源的支持的工具名称和参数。永远不要虚构ID、账户、产品、枚举值或后端状态。当无法安全确定精确的运行时值时,使用仅目标的测试。

  11. 仅当源支持预期路径时,才使用预期的工具调用。不要强制在可能有多个有效路径的工作流中使用精确的轨迹。

  12. 如果需要,创建./senro。将套件写入./senro/test-cases.json。如果该文件已存在于磁盘上,则使用下一个可用的数字后缀,例如./senro/test-cases-2.json。已删除的Git跟踪文件不视为冲突。将套件直接放在./senro中;不要归档或移动现有文件。

  13. 在报告成功之前,对生成的精确文件运行内置的结构预检验证器:

    node <skill-root>/scripts/validate-tests.mjs <output-path>
    
  14. 报告确切的输出路径、测试数量、旅程覆盖范围以及任何假设。不要声称测试已通过运行时验证;Senro必须针对实时页面运行套件。

输出规则

  • 写入一个包含tests数组的JSON对象。
  • 保持测试名称简洁,不超过70个字符。
  • 编写自然的用户请求。仅在被测试行为需要时才包含技术细节。
  • 在源支持的情况下,变化对话模式、评估类型和旅程复杂度。对明确请求使用脚本化对话,对需要澄清或多轮决策使用模拟对话。不要强制添加无用的变化。
  • 脚本化测试仅包含一条初始用户消息。
  • 模拟测试包含空的作者消息列表且没有作者后续消息。
  • 确保每个测试都有一个目标、一个必需的预期调用或一个页面检查。
  • 在成功结果中描述代理应完成的操作。对必要的调用和参数使用工具调用预期,对最终页面状态使用页面检查。当存在多个有效路径时,不要在结果中规定实现路径。
  • 保持设置调用具体;绝不要在设置参数中使用匹配器运算符。
  • 在页面检查中使用源自源的稳定选择器。
  • 断言稳定的最终页面状态,而不是可能被后续有效操作清除的临时消息。通过支持的工具调用和结果检查或成功结果验证中间行为。
  • 当禁用工具调用评估时,使用expectedCall: null。它不禁止工具调用。
  • 在生成套件时不要修改网站源代码。
  • 不要将机密、凭据或私人客户数据写入套件。

参考资料

相关技能