CommunityCodierung & Entwicklunggithub.com

LambdaTest/agent-skills

Kurierte Sammlung von Agent Skills (TestMu AI), die KI-Assistenten das Schreiben von produktionsreifen Testautomatisierung über Browser und Plattformen hinweg beibringen.

Was ist agent-skills?

Dieser Skill bietet eine vollständige Referenz zum Schreiben von Geb-basierten Testautomatisierungen, die in der TestMu AI Cloud ausgeführt werden. Er enthält Kernmuster wie Spock-Tests, Page-Object-Klassen und die Navigator-API, die KI-Assistenten (z. B. Claude Code, Cursor, Codex) direkt in ihre Codegenerierung einfließen lassen können. Der Skill unterstützt sowohl lokale Ausführung mit Gradle als auch Cloud-Ausführung auf LambdaTest, indem lediglich Umgebungsvariablen (`LT_USERNAME`, `LT_ACCESS_KEY`) gesetzt und die GebConfig.groovy entsprechend angepasst wird. Für fortgeschrittene Anforderungen wie Wartezeiten, asynchrone Interaktionen, Datei-Uploads, API-Tests und CI/CD-Integration wird auf eine detaillierte Playbook-Referenz verwiesen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add LambdaTest/agent-skills

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Geb-Automatisierungs-Skill

Für die TestMu AI Cloud-Ausführung siehe reference/cloud-integration.md und shared/testmu-cloud-reference.md.

Kernmuster

Basistest (Spock)

import geb.spock.GebSpec

class LoginSpec extends GebSpec {
    def "Login mit gültigen Anmeldedaten"() {
        when:
        to LoginPage
        emailInput.value("[email protected]")
        passwordInput.value("password123")
        loginButton.click()

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

    def "Login zeigt Fehler bei ungültigen Anmeldedaten"() {
        when:
        to LoginPage
        emailInput.value("[email protected]")
        passwordInput.value("wrong")
        loginButton.click()

        then:
        at LoginPage
        errorMessage.displayed
        errorMessage.text().contains("Invalid")
    }
}

Page Objects

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)        // Erster Treffer
$("div.items li").size()     // Anzahl

// Aktionen
element.click()
element.value("text")
element << "text"            // Text anhängen
element.text()
element.displayed
element.@href                // Attribut

Cloud: driver = new RemoteWebDriver(new URL(gridUrl), caps)

Einrichtung: Gradle mit geb-spock- und selenium-support-Abhängigkeiten

Cloud-Ausführung auf TestMu AI

Umgebungsvariablen setzen: 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)
        }
    }
}

Ausführen: ./gradlew test -Dgeb.env=lambdatest

Ausführen: ./gradlew test

Fortgeschrittene Muster

Siehe reference/playbook.md für produktionsreife Muster:

AbschnittWas Sie erhalten
§1 Projekteinrichtungbuild.gradle, GebConfig.groovy, Umgebungen, Warte-Konfiguration
§2 Page ObjectsContent-DSL, at-Prüfungen, Module für wiederverwendbare Komponenten
§3 SpezifikationstestsSpock-Integration, datengesteuert mit @Unroll, @Stepwise-Abläufe
§4 Warten & AsynchronitätWarte-Voreinstellungen, JavaScript-Interaktion, Alarme/Bestätigungen
§5 Fortgeschrittene MusterDatei-Upload/Download, Fenster, Frames, benutzerdefinierte Erweiterungen
§6 API-TestsREST-API-Spezifikationen mit Groovy JsonSlurper
§7 CI/CD-IntegrationGitHub Actions mit Headless-Chrome, Gradle-Caching
§8 Debugging-Tabelle12 häufige Probleme mit Ursachen und Lösungen
§9 Best Practices14-Punkte-Checkliste für Geb-Tests

Verwandte Skills