mcpField
G
geb-skill

geb-skill

github.com/lambdatestテスト・品質386205 回インストール2 週間前に更新
リポジトリ

geb-skill について

Geb と Spock によるブラウザーおよび Web テストのリファレンスです。Groovy のテスト作成者向けに、ページオブジェクト、セレクター、クラウド実行、API テスト、CI のパターンを扱います。

主な機能

  1. 01Geb と Spock のテストパターン
  2. 02ページオブジェクトとコンテンツ DSL
  3. 03セレクターとブラウザー操作
  4. 04TestMu AI クラウド実行の設定
  5. 05Groovy による API テスト
  6. 06CI/CD とデバッグのガイド

活用シーン

  1. 01ページオブジェクトを使ったブラウザーテスト作成
  2. 02TestMu AI クラウドでのテスト実行
  3. 03Groovy による REST API テスト
  4. 04CI ワークフローへのテスト統合

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/lambdatest/agent-skills --skill geb-skill

インストール後、Claude Code で/geb-skillを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
advanced-patterns.md
cloud-integration.md
playbook.md

詳細

Geb Automation スキル

TestMu AI のクラウド実行については、reference/cloud-integration.md と shared/testmu-cloud-reference.md を参照してください。

基本パターン

基本テスト(Spock)
import geb.spock.GebSpec

class LoginSpec extends GebSpec {
    def "login with valid credentials"() {
        when:
        to LoginPage
        emailInput.value("[email protected]")
        passwordInput.value("password123")
        loginButton.click()

        then:
        at DashboardPage
        welcomeMessage.text().contains("Welcome")
    }

    def "login shows error for invalid credentials"() {
        when:
        to LoginPage
        emailInput.value("[email protected]")
        passwordInput.value("wrong")
        loginButton.click()

        then:
        at LoginPage
        errorMessage.displayed
        errorMessage.text().contains("Invalid")
    }
}
ページオブジェクト
class LoginPage extends geb.Page {
    static url = "/login"
    static at = { title == "Login" }
    static content = {
        emailInput { $("#email") }
        passwordInput { $("#password") }
        loginButton { $("button[type='submit']") }
        errorMessage(required: false) { $(".error") }
    }
}

class DashboardPage extends geb.Page {
    static url = "/dashboard"
    static at = { $(".dashboard").displayed }
    static content = {
        welcomeMessage { $(".welcome") }
        userName { $(".user-name") }
    }
}
Navigator API
$("css-selector")
$("div", class: "active")
$("input", name: "email")
$("div.items li", 0)        // First match
$("div.items li").size()     // Count

// Actions
element.click()
element.value("text")
element << "text"            // Append text
element.text()
element.displayed
element.@href                // Attribute
クラウド:driver = new RemoteWebDriver(new URL(gridUrl), caps)

セットアップ:geb-spock と selenium-support の依存関係を含む Gradle

TestMu AI でのクラウド実行

環境変数 LT_USERNAME、LT_ACCESS_KEY を設定します。

// GebConfig.groovy
environments {
    lambdatest {
        driver = {
            def ltOptions = [
                user: System.getenv("LT_USERNAME"),
                accessKey: System.getenv("LT_ACCESS_KEY"),
                build: "Geb Build",
                name: "Geb Test",
                platformName: "Windows 11",
                video: true,
                console: true,
                network: true,
            ]
            def caps = new ChromeOptions()
            caps.setCapability("LT:Options", ltOptions)
            new RemoteWebDriver(
                new URL("https://hub.lambdatest.com/wd/hub"), caps)
        }
    }
}

実行:./gradlew test -Dgeb.env=lambdatest

実行:./gradlew test

応用パターン

本番環境向けのパターンについては、reference/playbook.md を参照してください。

セクション内容
§1 プロジェクトのセットアップbuild.gradle、GebConfig.groovy、環境、待機設定
§2 ページオブジェクトContent DSL、at チェック、再利用可能なコンポーネント向けモジュール
§3 Spec テストSpock との統合、@Unroll によるデータ駆動テスト、@Stepwise フロー
§4 待機と非同期処理待機プリセット、JavaScript インタラクション、アラート/確認ダイアログ
§5 高度なパターンファイルのアップロード/ダウンロード、ウィンドウ、フレーム、カスタム拡張
§6 API テストGroovy JsonSlurper を使った REST API の仕様
§7 CI/CD 統合ヘッドレス Chrome を使った GitHub Actions、Gradle キャッシュ
§8 デバッグ表よくある問題12件と原因、解決方法
§9 ベストプラクティスGeb テストの14項目チェックリスト

コメント