Skill新手保姆级教程:从零到精通实用分享
一、理解Skill:AI的精准工作指令
Skill文件本质上是为AI量身定制的“操作手册”。其核心使命是明确告知AI在特定任务中应遵循的规则与期望输出。
试想:若缺失这份手册,AI生成的代码风格、测试覆盖范围、甚至选择器写法都可能参差不齐。借助Skill,AI如同经过你亲手培训的测试工程师,每次输出都能精准符合团队标准,显著提升效率并降低返工率。
二、Skill文件的存放路径
文件结构一目了然:文件夹充当封面,.SKILL.md才是真正的操作指南。
项目文件夹
└── xx.SKILL.md ← 这就是操作指南
文件名可自定义,但后缀必须为.SKILL.md。支持多份指南——每个功能模块可独立维护,彼此无干扰,灵活且清晰。
三、Skill文件的核心组成
一个完整的Skill文件仅由两部分构成:
(头部信息:描述该Skill的用途)
(正文:指导AI具体执行步骤)
结构精简,易于理解。
四、头部信息逐字段解析
以下关键字段及其实际用法:
name: Login Testing
Skill名称可任意定义,但建议一眼能识别其用途。
description: Step-by-step login test cases covering happy path, error handling, and edge cases
一句话概括能力边界。AI依据此字段判断是否激活该Skill,因此描述务必精准。
version: 1.0.0
版本号,首次创建填写1.0.0即可。
author: your-team
作者,填写个人或团队标识。
testingTypes: [functional, e2e]
测试类型:常用值包括functional(功能测试)、e2e(端到端)、visual(视觉测试)、api(接口测试)。
frameworks: [playwright, selenium, cypress]
支持框架,填写团队实际使用的工具即可。
languages: [typescript, javascript, python]
支持语言,AI会根据项目自动选择匹配。
domains: [web]
适用场景:web表示网页测试,另有mobile、api等选项。
agents: [claude-code, cursor, github-copilot, windsurf, cline]
兼容哪些AI工具。这属于意图声明,告知使用者或系统本指南适用的工具范围——但并不确保自动生效,具体还需参考各工具的约定。
五、正文编写规范
正文通过自然语言为AI划定规则,越具体,AI的执行力越强。
5.1 定义AI的角色定位
You are a senior QA engineer. When the user asks you to write, review,
or improve login test cases, follow these instructions precisely.
直译:你是一位资深QA工程师。当用户要求编写或评审登录测试用例时,严格遵循以下指令。
赋予AI明确的角色,其输出会更具专业性和聚焦度。
5.2 明确必须执行的动作
## What You Must Always Do
1. Cover the happy path first.
2. Cover error cases — wrong password, wrong username, empty fields.
3. Use descriptive test names.
4. Each test must be independent.
简单概括:先覆盖正常流程,再处理异常场景;测试名称应清晰反映验证点;每条用例必须独立运行。
5.3 规定统一的用例结构
Every login test must follow this structure:
GIVEN [the user is on the login page]
WHEN [the user performs an action]
THEN [the expected result happens]
经典的Given-When-Then格式,测试工程师普遍熟悉。强制使用该格式可显著提升用例逻辑的清晰度。
5.4 列出必须覆盖的测试场景
## Required Test Cases
Always generate at least these 6 test cases:
1. Valid credentials → redirect to dashboard
2. Wrong password → show error message
3. Wrong username → show error message
4. Empty username → show inline validation
5. Empty password → show inline validation
6. Both fields empty → show both validation messages
明确最低测试数量,防止AI偷工减料仅输出两三条。
5.5 提供完整的代码示例
这是Skill文件中价值最高的部分。给出标准答案后,AI生成的代码会自动对齐该风格。
## Example Output (Playwright + TypeScript)
When the user asks for Playwright tests, generate code in this exact format:
```typescript
import { test, expect } from '@playwright/test';
const STANDARD_USER = 'standard_user';
const VALID_PASS = 'secret_sauce';
test.describe('Login Page', () => {
test.beforeEach(async ({ page }) => {
await page.goto('https://www.saucedemo.com');
});
test('TC01 - standard_user 正常登录应跳转到商品列表页', async ({ page }) => {
await page.getByPlaceholder('Username').fill(STANDARD_USER);
await page.getByPlaceholder('Password').fill(VALID_PASS);
await page.getByRole('button', { name: 'Login' }).click();
await expect(page).toHaveURL(/inventory.html/);
});
});
```
注意设计细节:测试名带编号TC01便于追踪,beforeEach统一处理页面导航,避免重复代码。
5.6 明确禁止行为
## What You Must Never Do
- Never use waitForTimeout or sleep.
- Never write a test that depends on another test.
- Never ignore the error message text.
禁止清单同样关键。AI有时会走捷径使用sleep(3000)等硬等待——明确禁止后,它将避免这类不良实践。
六、Skill的使用方法
核心操作只有一步:将指南文件的路径告知AI,它即可遵循规范执行。
通过@手动指定文件路径,AI读取内容后便按其中规则运作,效果完全一致。
你还可以持续追问:
| 你的指令 | AI的响应 |
|---|---|
| "再加上 problem_user 的测试" | 补充图片异常的断言 |
| "帮我加上 Page Object Model" | 将代码重构为POM结构 |
| "改成 Python + pytest 版本" | 切换语言重新生成 |
| "这个用例的断言对吗?" | 协助审查代码 |
实际效果演示(以Claude Code为例):
接下来安装依赖,中间遇到的问题均由大模型自动解决,最终效果如下:
直接复用即可。
七、不同AI工具如何自动加载Skill
.claude/skills/ 是Kiro的专属路径,其他工具有各自约定的规则文件位置。将Skill正文内容复制到对应文件中,工具启动时便会自动生效。
| 工具 | 放置正文内容的文件路径 |
|---|---|
| Kiro | .claude/skills/*.SKILL.md |
| Claude Code | CLAUDE.md |
| Cursor | .cursorrules 或 .cursor/rules/*.mdc |
| Windsurf | .windsurfrules |
| Cline | .clinerules 或 .clinerules/*.md |
Skill正文内容通用,换工具仅需更换文件名,内容复制即可。
八、编写Skill的核心原则
| 原则 | 通俗解释 |
|---|---|
| 角色明确 | 告诉AI它扮演什么角色 |
| 规则具体 | 越详细越好,别指望AI猜测你的意图 |
| 提供示例 | 一个优秀范例胜过一百句描述 |
| 编写禁止清单 | 把你不想看到的行为明确罗列 |
| 正文使用英文 | 大模型对英文指令的理解更精准、更稳定 |
九、常见问题
Q:Skill文件不生效如何排查?
A:检查后缀是否拼写完整,必须为.SKILL.md而非普通.md。
Q:能否创建多个Skill文件?
A:完全可以。每个功能模块独立维护一个文件,例如login-testing.SKILL.md、api-testing.SKILL.md,互不干扰。
Q:Skill中的代码示例必须与项目完全一致吗?
A:不需要完全一致。AI会参考示例风格生成代码,具体细节它会自动适配项目环境。
Q:正文是否必须用英文?
A:强烈推荐使用英文。大模型对英文指令的理解比中文更稳定,出错概率更低。