Geb Automação Skill

Coleção curada de Skills para Agentes (TestMu AI) que ensinam assistentes de codificação de IA a escrever automação de testes de nível profissional em navegadores e plataformas.

O que é Geb Automação Skill?

Esta Skill fornece padrões e configurações completas para automação de testes com Geb (Spock + Geb), projetada para ser usada por agentes de IA como Claude Code, Cursor e Codex. Ela inclui exemplos de testes Spock, definições de Page Object, uso da Navigator API e configuração detalhada para execução em nuvem no TestMu AI (LambdaTest). A Skill é organizada em seções que vão desde a configuração básica do projeto com Gradle até padrões avançados como testes assíncronos, upload/download de arquivos e integração com CI/CD via GitHub Actions. O conteúdo é baseado em um playbook de referência que lista 9 seções com tópicos como configuração de espera, testes de API e uma tabela de depuração com 12 problemas comuns. O agente de IA pode usar essa Skill para gerar código de automação de testes pronto para produção, seguindo as melhores práticas da comunidade Geb e Spock.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add LambdaTest/agent-skills

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Skill de Automação Geb

Para execução em nuvem TestMu AI, veja reference/cloud-integration.md e shared/testmu-cloud-reference.md.

Padrões Principais

Teste Básico (Spock)

import geb.spock.GebSpec

class LoginSpec extends GebSpec {
    def "login com credenciais válidas"() {
        when:
        to LoginPage
        emailInput.value("[email protected]")
        passwordInput.value("password123")
        loginButton.click()

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

    def "login mostra erro para credenciais inválidas"() {
        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)        // Primeiro resultado
$("div.items li").size()     // Contagem

// Ações
element.click()
element.value("texto")
element << "texto"            // Adicionar texto
element.text()
element.displayed
element.@href                // Atributo

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

Configuração: Gradle com dependências geb-spock e selenium-support

Execução em Nuvem no TestMu AI

Defina as variáveis de ambiente: 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)
        }
    }
}

Execute: ./gradlew test -Dgeb.env=lambdatest

Execute: ./gradlew test

Padrões Avançados

Veja reference/playbook.md para padrões de nível de produção:

SeçãoO Que Você Obtém
§1 Configuração do Projetobuild.gradle, GebConfig.groovy, ambientes, configuração de espera
§2 Page ObjectsContent DSL, verificações at, módulos para componentes reutilizáveis
§3 Testes SpecIntegração Spock, testes orientados a dados com @Unroll, fluxos @Stepwise
§4 Espera e AssíncronoPredefinições de espera, interação com JavaScript, alertas/confirmações
§5 Padrões AvançadosUpload/download de arquivos, janelas, iframes, extensões personalizadas
§6 Testes de APIEspecificações de API REST com Groovy JsonSlurper
§7 Integração CI/CDGitHub Actions com Chrome headless, cache Gradle
§8 Tabela de Depuração12 problemas comuns com causas e correções
§9 Melhores PráticasChecklist de 14 itens para testes Geb

Habilidades Relacionadas