CheckOps home

Tools directory

W

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.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

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

  1. Concurrent browser tests: Feature tests run in parallel by default.
  2. Pipeline API: Readable chained interactions.
  3. Automatic waiting: Queries wait for elements to appear.
  4. Ecto sandbox support: Isolated database state per test.

Pros

  1. Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
  2. Actively maintained: The repository had commits as recent as 9 November 2026.

Cons

  1. Browser setup required: ChromeDriver or Selenium must be installed in CI.
  2. Elixir only: For Elixir web applications.
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.

  1. Phoenix and Elixir teams writing browser feature tests.
  2. 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.