Write automated tests that fill out forms, click buttons, and check page content without launching a real browser.
Test multi-step user flows like signup, login, and checkout entirely in code with fast in-memory execution.
Intercept and modify HTTP requests in your tests using Zombie's pipeline system.
Do not use Zombie to load pages from untrusted sources, their JavaScript runs in your test process.
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.
← assaf on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.