testmu-ai/serenity-bdd-skill

Генерирует тесты Serenity BDD на Java с паттерном Screenplay, подробной отчётностью и интеграцией Cucumber. Нужен при упоминании Serenity, Screenplay и @Steps.

Установка

$npx skills add https://github.com/LambdaTest/agent-skills/tree/main/serenity-bdd-skill

Ставит скилл в текущий проект - CLI спросит, для каких агентов. С флагом -g - в домашнюю папку, для всех проектов. Другие способы

Описание автора

Generates Serenity BDD tests in Java with Screenplay pattern, rich reporting, and Cucumber integration. Use when user mentions "Serenity", "Screenplay", "@Steps", "Serenity BDD". Triggers on: "Serenity BDD", "Screenplay pattern", "@Steps", "Serenity report".

Serenity BDD Skill

Core Patterns

Step Library Pattern

import net.serenitybdd.annotations.Step;
import net.serenitybdd.core.pages.PageObject;

public class LoginSteps extends PageObject {

    @Step("Navigate to login page")
    public void navigateToLogin() {
        openUrl(getDriver().getCurrentUrl() + "/login");
    }

    @Step("Enter email: {0}")
    public void enterEmail(String email) {
        find(By.id("email")).sendKeys(email);
    }

    @Step("Enter password")
    public void enterPassword(String password) {
        find(By.id("password")).sendKeys(password);
    }

    @Step("Click login button")
    public void clickLogin() {
        find(By.cssSelector("button[type='submit']")).click();
    }

    @Step("Should see the dashboard")
    public void shouldSeeDashboard() {
        assertThat(getDriver().getCurrentUrl()).contains("/dashboard");
        assertThat(find(By.cssSelector(".welcome")).isDisplayed()).isTrue();
    }
}

Test Class

import net.serenitybdd.junit5.SerenityJUnit5Extension;
import net.serenitybdd.annotations.Steps;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;

@ExtendWith(SerenityJUnit5Extension.class)
public class LoginTest {
    @Steps LoginSteps loginSteps;

    @Test
    void shouldLoginWithValidCredentials() {
        loginSteps.navigateToLogin();
        loginSteps.enterEmail("user@test.com");
        loginSteps.enterPassword("password123");
        loginSteps.clickLogin();
        loginSteps.shouldSeeDashboard();
    }
}

Screenplay Pattern

import net.serenitybdd.screenplay.*;

public class Login implements Performable {
    private final String email, password;

    public Login(String email, String password) {
        this.email = email; this.password = password;
    }

    @Override
    public <T extends Actor> void performAs(T actor) {
        actor.attemptsTo(
            Enter.theValue(email).into(LoginPage.EMAIL_FIELD),
            Enter.theValue(password).into(LoginPage.PASSWORD_FIELD),
            Click.on(LoginPage.LOGIN_BUTTON)
        );
    }

    public static Login withCredentials(String email, String password) {
        return new Login(email, password);
    }
}

// Usage
actor.attemptsTo(Login.withCredentials("user@test.com", "pass123"));
actor.should(seeThat(TheWebPage.currentUrl(), containsString("/dashboard")));

Reporting

# Run tests — generates rich HTML report
mvn verify
# Report at: target/site/serenity/index.html

Cloud Execution on TestMu AI

Add the serenity-lambdatest plugin dependency:

<dependency>
  <groupId>net.serenity-bdd</groupId>
  <artifactId>serenity-lambdatest</artifactId>
  <version>${serenity.version}</version>
</dependency>

Configure serenity.conf:

webdriver {
  driver = remote
  remote.url = "https://"${LT_USERNAME}":"${LT_ACCESS_KEY}"@hub.lambdatest.com/wd/hub"
}

serenity {
  take.screenshots = AFTER_EACH_STEP
}

lambdatest {
  build = "Serenity Build"
}

# LT:Options capabilities
"LT:Options" {
  platformName = "Windows 11"
  browserVersion = "latest"
  visual = true
  video = true
  console = true
  network = true
}

Or configure via serenity.properties:

webdriver.driver=remote
webdriver.remote.url=https://hub.lambdatest.com/wd/hub
lt.user=${LT_USERNAME}
lt.key=${LT_ACCESS_KEY}
lt.platform=Windows 11
lt.browserName=chrome

Setup: Maven with serenity-core, serenity-junit5, serenity-screenplay-webdriver, serenity-lambdatest

Run: mvn verify (generates living documentation)

Deep Patterns

For advanced patterns, debugging guides, CI/CD integration, and best practices, see reference/playbook.md.

Ещё из LambdaTest/agent-skills

Все 49
  1. testmu-ai/appium-skillавтотесты мобильных приложений на Appium
  2. testmu-ai/behat-skillтесты на Behat для PHP
  3. testmu-ai/behave-skillтесты BDD на Behave для Python
  4. testmu-ai/capybara-skillтесты E2E на Capybara и Ruby
  5. testmu-ai/cicd-pipeline-skillконфигурации CI/CD для автотестов
  6. testmu-ai/codeception-skillтесты Codeception на PHP
  7. testmu-ai/cucumber-skillтесты BDD на Cucumber и Gherkin
  8. testmu-ai/cypress-skillтесты Cypress на JavaScript и TypeScript

Похожие скиллы

Тесты и отладка
  1. systematic-debuggingobra/superpowersсистематическая отладка с поиском причины
  2. test-driven-developmentobra/superpowersразработка через тесты (TDD)
  3. verification-before-completionobra/superpowersпроверка перед отчётом о готовности
  4. webapp-testinganthropics/skillsтесты локальных веб-приложений на Playwright
  5. webapp-testingComposioHQ/awesome-claude-skillsпроверка веб-приложений через Playwright
  6. android-emulator-qaopenai/pluginsпроверка Android-сценариев в эмуляторе
  7. muratcankoylan/evaluationmuratcankoylan/Agent-Skills-for-Context-Engineeringоценка агентов: тесты, рубрики, метрики
  8. lackeyjb/playwright-skilllackeyjb/playwright-skillавтоматизация браузера через Playwright