Build
Connect & operate
Design & teams
Start hereScope a build in one callBring a spec, a wireframe, or a paragraph. You leave with an architecture, a timeline, and a number.Book a scoping call
AI software
LLM & data systems
Vibe coding
Ready to ship?Put AI where the work isAgents, RAG, and private LLMs wired into the systems your team already uses — not a chatbot bolted to a homepage.Discuss an AI project
Domain firstWe learn your workflow before we model itRegulated, operational, or high-volume — the constraints belong in the schema, not in a training doc.Talk about your domain
Plan smarterEstimate before you commitCost ranges, scope templates, and the questions we ask in discovery — free, no form.Open the cost calculator
Real conversationsTalk with a technical leadNo SDR, no discovery gauntlet. The person on the call is the one who scopes the build.Book a call
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

DEV.co has shipped open-source testing software across regulated and high-growth industries. Our software development services and AI development services cover the work that follows a decision to adopt wallaby.

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.