关于 gauge-skill
gauge-skill 是编写和运行 Gauge 测试的参考技能,涵盖规格、可复用概念、步骤实现,以及浏览器测试和 CI/CD 实践。
主要功能
- 01Markdown 测试规格
- 02可复用概念与步骤组
- 03Java 和 Python 步骤示例
- 04钩子、页面对象和测试数据
- 05云端浏览器与 CI/CD 指南
适用场景
- 01为登录流程编写 Gauge 场景
- 02在多个规格间组织共享步骤
- 03通过远程执行运行浏览器测试
- 04排查 Gauge 配置和测试运行问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lambdatest/ agent-skills --skill gauge-skill安装后在 Claude Code 中输入/gauge-skill确认已加载。
附带文件reference/advanced-patterns.mdreference/playbook.md
详细介绍
Gauge 自动化技能
核心模式
规格(specs/login.spec)
# Login Feature
## Successful Login
* Navigate to login page
* Enter email "[email protected]"
* Enter password "password123"
* Click login button
* Verify dashboard is displayed
* Verify welcome message contains "Welcome"
## Invalid Credentials
* Navigate to login page
* Enter email "[email protected]"
* Enter password "wrong"
* Click login button
* Verify error message "Invalid credentials" is shown
## Login with multiple users
|email |password |expected |
|-----------------|---------|----------|
|[email protected] |admin123 |Dashboard |
|[email protected] |pass123 |Dashboard |
|[email protected] |wrong |Error |
* Login as <email> with <password>
* Verify <expected> page is shown
步骤实现 — Java
import com.thoughtworks.gauge.Step;
import com.thoughtworks.gauge.Table;
public class LoginSteps {
WebDriver driver;
@Step("Navigate to login page")
public void navigateToLogin() {
driver.get("http://localhost:3000/login");
}
@Step("Enter email <email>")
public void enterEmail(String email) {
driver.findElement(By.id("email")).sendKeys(email);
}
@Step("Enter password <password>")
public void enterPassword(String password) {
driver.findElement(By.id("password")).sendKeys(password);
}
@Step("Click login button")
public void clickLogin() {
driver.findElement(By.cssSelector("button[type='submit']")).click();
}
@Step("Verify dashboard is displayed")
public void verifyDashboard() {
assertTrue(driver.getCurrentUrl().contains("/dashboard"));
}
}
步骤实现 — Python
from getgauge.python import step
from selenium import webdriver
@step("Navigate to login page")
def navigate_to_login():
driver.get("http://localhost:3000/login")
@step("Enter email <email>")
def enter_email(email):
driver.find_element_by_id("email").send_keys(email)
@step("Click login button")
def click_login():
driver.find_element_by_css_selector("button[type='submit']").click()
概念(可复用的步骤组 — specs/concepts/login.cpt)
# Login as <email> with <password>
* Navigate to login page
* Enter email <email>
* Enter password <password>
* Click login button
设置:gauge install java(或 python、js、ruby)
初始化:gauge init java
运行:gauge run specs/ 或 gauge run specs/login.spec
在 TestMu AI 上云端执行
设置环境变量:LT_USERNAME、LT_ACCESS_KEY
// StepImplementation.java
ChromeOptions browserOptions = new ChromeOptions();
HashMap<String, Object> ltOptions = new HashMap<>();
ltOptions.put("user", System.getenv("LT_USERNAME"));
ltOptions.put("accessKey", System.getenv("LT_ACCESS_KEY"));
ltOptions.put("build", "Gauge Build");
ltOptions.put("platformName", "Windows 11");
ltOptions.put("video", true);
ltOptions.put("console", true);
browserOptions.setCapability("LT:Options", ltOptions);
Driver.setWebDriver(new RemoteWebDriver(
new URL("https://hub.lambdatest.com/wd/hub"), browserOptions));
标签:gauge run --tags "smoke"(在规格中使用 Tags: smoke)
深入模式
请参阅 reference/playbook.md,了解适用于生产环境的模式:
| 章节 | 内容 |
|---|---|
| §1 项目设置 | 安装、项目结构、环境属性 |
| §2 规格文件 | Markdown 场景、数据表、概念(.cpt) |
| §3 步骤实现 | Java 步骤、表格驱动步骤、断言 |
| §4 钩子与执行 | BeforeSuite/Scenario/Step、屏幕截图、浏览器日志 |
| §5 页面对象 | BasePage、具体页面、在步骤中的用法 |
| §6 数据管理 | ScenarioDataStore、SpecDataStore、CSV 数据 |
| §7 LambdaTest 集成 | 使用 LT:Options 的远程驱动工厂 |
| §8 CI/CD 集成 | 支持并行执行和 XML 报告的 GitHub Actions |
| §9 调试表 | 12 个常见问题及其原因和修复方法 |
| §10 最佳实践 | 包含 14 项内容的 Gauge 测试检查清单 |
评论
支持 Markdown