gitwtfhub

wtf is zombie?

assaf/zombie — explained in plain English

Analysis updated 2026-06-26

5,631JavaScriptAudience · developerComplexity · 2/5Setup · easy

TL;DR

Zombie.js is a Node.js library that simulates a browser in memory so you can write automated web app tests that run fast, no real browser needed.

Mindmap

mindmap
  root((zombie.js))
    What it does
      In-memory browser
      Web app testing
      No real browser needed
    Capabilities
      Forms and buttons
      Cookies and redirects
      JavaScript execution
    Use cases
      Automated testing
      User flow testing
      CI pipeline tests
    Tech
      Node.js
      Works with Mocha
      npm install

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Write automated tests that fill out forms, click buttons, and check page content without launching a real browser.

REASON 2

Test multi-step user flows like signup, login, and checkout entirely in code with fast in-memory execution.

REASON 3

Intercept and modify HTTP requests in your tests using Zombie's pipeline system.

What's in the stack?

JavaScriptNode.js

How it stacks up

assaf/zombiedthree/vorpalgothinkster/react-redux-realworld-example-app
Stars5,6315,6355,627
LanguageJavaScriptJavaScriptJavaScript
Setup difficultyeasyeasyeasy
Complexity2/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 30min

Do not use Zombie to load pages from untrusted sources, their JavaScript runs in your test process.

License information is not clearly stated in the explanation.

Wtf does this do

Zombie.js is a Node.js library for testing web applications without opening a real browser. It simulates a browser in memory: it loads pages, runs the JavaScript on those pages, manages cookies, and lets you interact with forms and links through code. Because no actual browser window opens, tests run much faster than with browser-based testing tools. The typical use case is automated testing of web application flows. You write a test that says: visit this page, fill in this form field with this value, click this button, and then assert that the resulting page shows what you expect. Zombie handles all the behind-the-scenes work of making HTTP requests, parsing HTML, and executing JavaScript, so you can check the outcome. The README includes a working example that signs up a user on a test server, verifies the request succeeded, and checks that the welcome page title is correct. Zombie works with standard Node.js testing frameworks. The examples in the README use Mocha, but the library itself does not require any specific framework. It is installed as a development dependency via npm. The library exposes a detailed API for interacting with page content: visiting URLs, pressing buttons, checking and unchecking checkboxes, selecting radio buttons, choosing dropdown options, attaching files to upload fields, evaluating arbitrary JavaScript in the page context, navigating browser history, and inspecting HTTP response codes, cookies, and redirects. There is also a pipeline system for intercepting and modifying HTTP requests and responses. A note in the README warns that using Zombie to load pages from untrusted sources is not safe, because the JavaScript on those pages runs in the same process as your tests. The full README is longer than what was shown.

Yoink these prompts

Prompt 1
Using Zombie.js with Mocha, write a test that visits a signup page, fills in an email and password, submits the form, and asserts the welcome page title is correct.
Prompt 2
I want to test a login flow with Zombie.js. Show me how to set a cookie, visit a protected page, and verify I'm redirected if not authenticated.
Prompt 3
How do I intercept HTTP requests in Zombie.js to mock API responses during testing?
Prompt 4
I'm using Zombie.js for web app testing. Show me how to select a dropdown option, check a checkbox, and then verify the resulting page content.
Prompt 5
What are the tradeoffs between using Zombie.js versus Playwright or Puppeteer for automated web testing?

Frequently asked questions

wtf is zombie?

Zombie.js is a Node.js library that simulates a browser in memory so you can write automated web app tests that run fast, no real browser needed.

What language is zombie written in?

Mainly JavaScript. The stack also includes JavaScript, Node.js.

What license does zombie use?

License information is not clearly stated in the explanation.

How hard is zombie to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is zombie for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.