DEV.co
Open-Source Testing · elixir-wallaby

wallaby

Wallaby is an Elixir library for writing concurrent browser tests that simulate real user interactions with web applications. It manages multiple browser instances automatically, allowing tests to run in parallel and even model multi-user scenarios.

Source: GitHub — github.com/elixir-wallaby/wallaby
1.8k
GitHub stars
211
Forks
Elixir
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryelixir-wallaby/wallaby
Ownerelixir-wallaby
Primary languageElixir
LicenseMIT — OSI-approved
Stars1.8k
Forks211
Open issues54
Latest releasev0.31.0 (2026-06-27)
Last updated2026-06-29
Sourcehttps://github.com/elixir-wallaby/wallaby

What wallaby is

Wallaby provides a DSL for ExUnit-based browser automation tests in Elixir, supporting concurrent test execution via WebDriver (Chrome, Firefox, Selenium). It integrates with Phoenix, Ecto, and LiveView, offering database sandbox isolation for parallel test safety.

Quickstart

Get the wallaby source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/elixir-wallaby/wallaby.gitcd wallaby# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Phoenix web application integration testing

Test realistic user workflows across Phoenix endpoints and LiveView components with concurrent test execution and automatic session management.

Multi-user interaction scenarios

Simulate concurrent user actions (e.g., messaging, collaborative editing) by spawning multiple browser sessions within a single test case.

Ecto-backed application testing with database isolation

Leverage Ecto SQL Sandbox for safe concurrent testing where database state is isolated per test process without fixtures or cleanup overhead.

Implementation considerations

  • Requires Elixir 1.17+, OTP 26+, and bash; Alpine Linux deployments need explicit bash installation.
  • WebDriver (chromedriver or geckodriver) must be installed separately and kept in sync with browser versions.
  • Ecto Sandbox setup mandatory for concurrent tests; LiveView testing requires on_mount hooks and user_agent wiring.
  • Assets must be recompiled before test runs (esbuild or Webpack integration); cached assets can mask test failures.
  • Base URL configuration and Phoenix endpoint server mode required; works best with database supporting sandbox mode.

When to avoid it — and what to weigh

  • Non-Elixir or non-Phoenix stack — Wallaby is tightly coupled to Elixir/Phoenix; projects using Rails, Django, or Node.js should evaluate Capybara, Selenium, or Playwright instead.
  • Headless or serverless test infrastructure — Wallaby requires running WebDriver instances (Chrome, Firefox); containerized or cloud-based CI without persistent browser processes adds complexity.
  • Visual regression or pixel-perfect testing — Wallaby lacks built-in visual diffing; projects needing screenshot comparison should integrate a separate visual testing library.
  • Cross-browser testing at scale — While concurrent, Wallaby does not natively support Sauce Labs, BrowserStack, or distributed grid scaling; manual driver configuration required.

License & commercial use

MIT License. Permissive OSI-approved license permitting commercial use, modification, and distribution with attribution.

MIT License explicitly permits commercial use. However, verify that any WebDriver dependencies (chromedriver, geckodriver, Selenium) comply with your commercial licensing requirements independently.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityModerate
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

Wallaby executes tests against real browser instances and application servers; ensure test environments are isolated from production. WebDriver exposes browser automation APIs; restrict WebDriver port access. Database sandbox isolation required to prevent test data leaks. No explicit security audit or disclosure policy documented.

Alternatives to consider

Capybara (Ruby on Rails)

Mature, wide ecosystem, but locked to Rails; not applicable if using Elixir/Phoenix.

Cypress (JavaScript/TypeScript)

Modern, better DX for single-page apps, strong documentation; requires JavaScript test suite separate from backend code.

Playwright (multi-language)

Cross-browser, language-agnostic, excellent parallelism; Elixir support via wrapper; less Phoenix-native than Wallaby.

Software development agency

Build on wallaby with DEV.co software developers

Start with the official Hex documentation and review WebDriver setup for your CI environment. Ensure Ecto Sandbox is configured for safe concurrent testing.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

wallaby FAQ

Can I run Wallaby tests in CI without a display server?
Yes, via headless Chrome or Xvfb. chromedriver supports --headless flag; Selenium requires DISPLAY or virtual framebuffer. Configuration is environment-specific.
Does Wallaby support JavaScript assertion frameworks like Jest?
No. Wallaby is ExUnit-only; assertions are written in Elixir. Use Wallaby.Query and assert_has for DOM queries.
How does Wallaby handle flaky tests or timing issues?
Wallaby.Query provides implicit waits for element presence. For custom timing, use Process.sleep or explicit polling; README does not document retry strategies.
What is the performance impact of concurrent browser sessions?
Unknown without benchmarks. README notes concurrency is enabled by default; actual throughput depends on hardware, number of browsers, and application response time.

Work with a software development agency

Need help beyond evaluating wallaby? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and open-source testing integrations — and maintain them long-term.

Ready to add Wallaby to your Phoenix test suite?

Start with the official Hex documentation and review WebDriver setup for your CI environment. Ensure Ecto Sandbox is configured for safe concurrent testing.