Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Behat Selenium Bundle Laravel Package

mouncef/behat-selenium-bundle

A Symfony bundle that integrates Behat with Selenium, providing the configuration and services needed to run browser-based acceptance tests. It helps wire Mink and Selenium drivers into your test suite so you can automate real browser interactions with minimal setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Framing correction (read first): The brief asks how a TPM would leverage this as a Laravel/PHP package. The artifact described is a Symfony bundle — behat:install is a Symfony console command, reports are rendered with Twig, and mail uses symfony/mailer. There is no Laravel service provider, facade, Artisan command, or config/*.php publish path. Treat "Laravel adoption" as a repackaging exercise, not an install.

Architecture fit

  • Strong fit for Symfony 6.4/7.x shops already doing Behat-based acceptance testing; it is a modern rewrite of froggdev/behat-installer, so it targets an existing, narrow audience rather than net-new adoption.
  • The genuinely portable, framework-agnostic assets are the Docker Compose Selenium stack (Chrome + noVNC) and the ~90 French Gherkin step definitions (navigation, forms, alerts, windows, MUI widgets, disposable mailboxes, scenario variables). These carry value into a Laravel test suite even if the bundle itself is not consumed.
  • Framework-coupled assets — the behat:install generator, Twig HTML report, ZIP export, symfony/mailer notification — would each need a Laravel-side substitute (Artisan command or documented shell script, Blade/Markdown report, Laravel Mail/Notifications).

Integration feasibility

  • Composer-level install into a Laravel app is technically possible but likely drags in symfony/framework-bundle and full kernel expectations; expect autoload/discovery friction and a bundle that boots only under a Symfony kernel, not under Illuminate\Foundation\Application.
  • PHP ≥ 8.2 floor is compatible with Laravel 11/12 and Symfony 6.4/7.x — no version-matrix blocker there.
  • Behat 3.14 pinning is a real constraint: the harness ages independently of the app framework and will need its own upgrade cadence.

Technical risk

  • Medium-high for Laravel. No first-party Laravel path; every Symfonic piece (installer command, Twig, mailer) is a manual port. Cost is unbounded until the source is inspected.
  • French-only step vocabulary. Step definitions are authored in French; teams must write and read Gherkin in French, and accented phrasing must match exactly. This is a hard adoption gate for non-Francophone teams and a latent maintenance tax (re-wording steps breaks suites).
  • External test dependencies. Disposable-mailbox steps imply reliance on third-party ephemeral mail services — a classic source of CI flakiness and a data-handling question (what test data leaves the network?).
  • Low evidence confidence. This assessment is derived from release notes alone — no source, docs, tests, licence, or maintainer history reviewed. All risk ratings are provisional.

Key questions to resolve before committing

  1. Is there any Laravel bridge, or is a Symfony kernel a hard dependency for behat:install?
  2. Which Symfony packages are required vs. optional, and can the Docker Compose + step library be consumed standalone?
  3. Is the disposable-mailbox provider pluggable, or hardcoded to one service?
  4. Licence, maintainer count, and release cadence (single-maintainer rewrite = bus-factor risk)?
  5. Is there CI guidance beyond local Docker (GitHub Actions / GitLab CI recipes, artifact retention)?
  6. Are step definitions extensible/overridable, and is there an English locale or translation mechanism?

Integration Approach

Stack fit

  • Symfony shop: near drop-in. composer require --dev, run behat:install, adjust behat.yml, point at the app's base URL. Value realised in days.
  • Laravel shop: partial. Consume it as a reference harness, not a dependency — lift the Docker Compose Selenium service and the step-definition catalogue into the repo, and run Behat (or a Pest/Dusk equivalent) alongside the existing test suite. Do not attempt to boot the bundle.

Migration path (from froggdev/behat-installer)

  • The rewrite is the migration: expect file layout, config keys, and step-naming changes. Do not assume behat.yml from the old installer loads unchanged — plan for a config-diff pass and a suite run to surface renamed steps.
  • Because the toolchain moved to PHP 8.2 / Symfony 6.4-7 / Behat 3.14, migration is a coordinated upgrade: PHP runtime, Behat, and step definitions must move together. Sequence the PHP/Symfony upgrade first, Behat harness second.

Compatibility

  • Confirm the target repo's PHP and Behat versions before adoption; a Behat 3.x → 3.14 bump can alter hook ordering and output formatters.
  • Pin the Selenium/Chrome image tag — floating latest will silently break suites when Chrome changes behaviour.
  • Verify Twig and symfony/mailer do not collide with application-level versions in a mixed Symfony/Laravel estate.

Sequencing

  1. Spike (1-2 days): read source, confirm hard dependencies, attempt standalone use of Docker Compose + steps in a throwaway Laravel branch.
  2. Pilot (1 sprint): wire 5-10 smoke scenarios against one Laravel surface; measure flake rate and wall-clock time.
  3. Decide: adopt as harness vs. adopt as bundle (Symfony only) vs. decline and hand-roll on Dusk/Pest browser.
  4. Roll out: standardise the Docker Compose service, publish behat.yml templates, and add CI job with artifact upload for screenshots/ZIP.
  5. Harden: quarantine flaky steps, set artifact retention policy, replace external mailbox service with a self-hosted sink (Mailpit/MailHog).

Operational Impact

Maintenance

  • High bus-factor exposure: a single-maintainer rewrite of an older package, v1.0.0 with no track record. Budget for owning a fork or vendoring the step library rather than depending on upstream responsiveness.
  • Two upgrade clocks to track: the app framework and the Behat/Selenium harness. Harness drift is the more likely breakage source.
  • French step definitions become internal documentation debt — no locale mechanism means any wording change is a suite-wide edit.

Support

  • Expect recurring questions of the form "why did this step stop matching" and "why is the Selenium container timing out" — both are harness-level, not application-level, so routing to app teams is common.
  • If symfony/mailer notifications are enabled, credentials and SMTP config land in test infrastructure; treat mail secrets as first-class secrets with rotation.

Scaling

  • Selenium-per-run does not scale horizontally without a grid. Parallel Behat execution needs a Selenium Grid (or equivalent) plus per-worker isolation of scenario variables and disposable mailboxes.
  • Screenshot + ZIP + HTML artifacts grow linearly with scenario count; enforce retention and offload to CI artifact storage rather than the repo or app server.

Failure modes

  • Flaky browser tests (timing, MUI animation/portal selectors, window/alert handling) eroding trust until the suite is ignored.
  • Third-party disposable-mailbox outage → false negatives across every mail-dependent scenario.
  • Twig report generation or mail notification failing after a green suite, producing a red pipeline for a reporting defect.
  • Floating Chrome image upgrade silently breaking selectors.
  • Silent partial runs if the behat:install scaffold is edited without review.

Ramp-up

  • Symfony teams: ~half a day to install and run the demo feature; ~1-2 weeks to author meaningful coverage using the 90 provided steps.
  • Laravel teams: add ~1 sprint for the harness-port work above, plus French Gherkin fluency for whoever writes scenarios — realistically 2-4 weeks to first stable suite.
  • Recommend nominating one owner for the harness (Docker images, step library, CI job) so flake triage and upgrades have a home; otherwise the suite decays within two quarters.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings