Weave Code
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

Mink Zombie Driver Laravel Package

behat/mink-zombie-driver

Mink driver powered by Zombie.js for fast, headless browser testing with Node.js. Install Zombie via npm (v2+) and the driver via Composer, then run Mink sessions against real pages to interact with DOM, click, fill forms, and assert content.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. Buy: Enables rapid implementation of headless browser testing for PHP applications without the complexity of maintaining a custom Selenium or Playwright stack. Ideal for teams needing lightweight UI validation without investing in full-fledged browser automation tools.
  • Feature Roadmap:
    • Enhance Test Coverage: Add client-side interaction tests (e.g., form validation, dynamic content rendering) to existing PHP test suites, bridging gaps left by unit/HTTP tests.
    • Legacy System Modernization: Support PHP monoliths with JavaScript dependencies (e.g., jQuery plugins, AJAX workflows) by validating UI behavior without full frontend test suites.
    • CI/CD Optimization: Reduce test execution time for UI-heavy workflows by leveraging Zombie.js’s headless Chromium backend, which is faster than Selenium for simple scenarios.
    • Behavior-Driven Development (BDD): Extend Behat test scenarios to include JavaScript-driven UI interactions, enabling non-technical stakeholders to validate workflows.
  • Use Cases:
    • Regression Testing: Catch JavaScript-related bugs (e.g., broken modals, failed AJAX calls) in PHP backends without relying on frontend teams.
    • API + UI Contract Testing: Verify that API responses render correctly in the browser (e.g., JSON → HTML templates) for critical user journeys.
    • Hybrid Testing: Combine with Laravel’s HTTP tests or Pest to validate both backend logic and frontend rendering in a single pipeline.
    • Third-Party Integration Testing: Test interactions with external JavaScript-heavy services (e.g., payment gateways, analytics tools) from a PHP perspective.

When to Consider This Package

Adopt if:

  • Your application is PHP-based (Laravel/Symfony) with JavaScript dependencies (e.g., jQuery, Vue.js, or Livewire) that require UI validation.
  • You need lightweight headless testing for simple client-side interactions (e.g., form submissions, dynamic content updates) without the overhead of Selenium or Playwright.
  • Your team already uses Behat/Mink or can adopt it for test automation, and you want to leverage existing Gherkin scenarios for UI testing.
  • You’re testing legacy systems where modern browser automation tools (e.g., Playwright) are incompatible or overkill.
  • Your CI/CD pipeline can accommodate Node.js dependencies (Zombie.js requires npm), and you prioritize speed over modern browser features.
  • You need to validate UI behavior triggered by API responses (e.g., JSON → HTML rendering) without full frontend test coverage.

Look elsewhere if:

  • You require modern browser automation (e.g., WebDriver, Playwright, Puppeteer) for complex interactions like file uploads, WebSockets, or WebRTC.
  • Your application relies on cutting-edge JavaScript frameworks (e.g., React, Angular) or WebAssembly, which Zombie.js (v2.x) does not support.
  • You need cross-browser testing (Zombie.js uses Blink/Chromium internally but lacks support for IE, Edge Legacy, or Safari).
  • Your team prefers native PHP solutions and cannot accommodate Node.js dependencies in the test environment.
  • You’re building a new project and prioritize long-term maintainability over quick wins; this package is archived and unmaintained (last release: 2022).
  • You need debugging tools (e.g., Chrome DevTools Protocol) or advanced JavaScript execution, which Zombie.js lacks.

How to Pitch It (Stakeholders)

For Executives: "This package lets us test how our PHP backend’s JavaScript interactions work—like form validation or dynamic content updates—without needing a full Selenium setup. It’s like adding ‘automated QA eyes’ to our existing tests, catching UI bugs earlier and reducing manual testing costs. Think of it as a lightweight alternative to Selenium: faster to set up, cheaper to run, and perfect for our current stack. The tradeoff? It’s not for modern SPAs or complex browser features, but it’s a cost-effective way to validate the UI layer without overhauling our testing infrastructure."

For Engineers: *"MinkZombieDriver lets us spin up a headless Chromium instance (via Zombie.js) from PHP to test JavaScript-heavy workflows. Here’s why it’s useful:

  • No Selenium overhead: Faster than WebDriver for simple scenarios like form submissions or AJAX calls.
  • Behat integration: Reuse existing Gherkin scenarios to test UI interactions without learning new tools.
  • PHP-native: Avoid context-switching to Node.js/Python for tests—just PHP and Mink. Downsides: Zombie.js is outdated (v2.x), and we’d need Node.js in CI. Best for legacy PHP apps with JS dependencies—not a replacement for Playwright or modern E2E tools. We’d use this for regression testing or API+UI contract validation."*

For QA/BDD Teams: *"This lets you write ‘Given/When/Then’ steps for JavaScript interactions—like ‘click a button that triggers an AJAX call’—using your existing Behat tests. No need to learn JavaScript frameworks; just PHP. Great for validating workflows like:

  • ‘Does the checkout button disable after click?’
  • ‘Is the error message shown when validation fails?’ Limitation: Can’t test WebSocket apps or complex SPAs, but it’s a huge win for our current PHP + jQuery stack. You’ll still need manual testing for edge cases, but this catches 80% of the bugs automatically."*

For DevOps/CI Engineers: *"This adds a Node.js dependency to our PHP test suite, but it’s lightweight and runs headless Chromium for UI tests. Key points:

  • Faster than Selenium: Zombie.js starts up quickly and is ideal for CI pipelines where speed matters.
  • Isolated tests: Runs in a sandboxed environment, reducing flakiness compared to full browser automation.
  • Docker-friendly: We can containerize Node.js in CI to avoid polluting the host environment. Tradeoff: Requires Node.js 12+ and npm, but the setup is straightforward with a Docker image. We’d use this for parallelized UI test suites where speed is critical."*
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.
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours