CheckOps
Wallaby
Wallaby is an MIT-licensed Elixir library for browser-based feature tests of web applications, simulating realistic user interactions, running tests concurrently and managing browsers via ChromeDriver or Selenium.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Wallaby helps you test web applications by simulating realistic user interactions. According to its README, it runs each test case concurrently by default and manages browsers for you, which keeps browser test suites fast on the BEAM. It is commonly used with Phoenix applications for end-to-end feature tests.
Tests use use Wallaby.Feature and the feature macro, receiving a browser session. A pipeline-friendly API reads naturally: session |> visit("/todos") |> fill_in(text_field("New Todo"), with: "...") |> click(button("Save")) |> assert_has(css(".todo", text: "...")). Queries find elements by CSS, text fields, buttons and links, with automatic waiting for elements to appear. The default driver is Wallaby.Chrome (via ChromeDriver), and a Selenium driver is also available. Integration with the Ecto SQL sandbox lets concurrent browser tests use isolated database transactions, and screenshots are captured on failure. Version 0.31.0 was released on 27 June 2026.
The source code is at elixir-wallaby/wallaby on GitHub under the MIT licence, with about 1,800 stars; the most recent commit was on 9 November 2026.
Features
- Concurrent browser tests: Feature tests run in parallel by default.
- Pipeline API: Readable chained interactions.
- Automatic waiting: Queries wait for elements to appear.
- Ecto sandbox support: Isolated database state per test.
Pros
- Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 9 November 2026.
Cons
- Browser setup required: ChromeDriver or Selenium must be installed in CI.
- Elixir only: For Elixir web applications.
Usage and Links (Example)
defmodule MyAppWeb.Features.TodoTest do
use ExUnit.Case, async: true
use Wallaby.Feature
import Wallaby.Query, only: [css: 2, text_field: 1, button: 1]
feature "users can create todos", %{session: session} do
session
|> visit("/todos")
|> fill_in(text_field("New Todo"), with: "Write my first Wallaby test")
|> click(button("Save"))
|> assert_has(css(".todo", text: "Write my first Wallaby test"))
end
end
Resources:
Pricing
Wallaby is free and open source under the MIT licence.
Recommended for?
- Phoenix and Elixir teams writing browser feature tests.
- Teams wanting fast, concurrent E2E tests on the BEAM.
Conclusion
Wallaby is the leading browser testing library for Elixir, combining concurrency with a clean, pipeline-style API.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Wallaby side by side.
EExUnitExUnit is Elixir's built-in unit testing framework, with concurrent async tests, describe blocks, setup callbacks, tags, doctests and rich assertion diffs, run with mix test.Compare with Wallaby- CCapybaraAcceptance test framework for web applications.Compare with Wallaby
PPlaywrightPlaywright is a framework for Web Testing and Automation.Compare with Wallaby
SSeleniumA browser automation framework and ecosystem.Compare with Wallaby
CCypressFast, easy and reliable testing for anything that runs in a browser.Compare with Wallaby
MMoxMox is an Apache-2.0 Elixir library from Dashbit for defining concurrent, behaviour-based mocks that follow the "mocks as explicit contracts" principles and work with async tests.Compare with Wallaby