npm

mountebank

Welcome, friend

mountebank is the only open source service virtualization tool that competes with the commercial offerings
in terms of protocol diversity, capability, and performance. Here's what
Capital One wrote
about their mobile cloud migration (emphasis theirs):

In fact, halfway through we discovered our corporate mocking software couldn’t handle the
sheer amount of performance testing we were running as part of this effort (we completely crushed
some pretty industrial enterprise software in the process). As a result, we made the call to move
the entire program over to a Mountebank OSS-based solution with a custom provision to give us the ability
to expand/shrink our mocking needs on demand.

mountebank is the first open source tool to provide cross-platform, multi-protocol test doubles over the wire.
Just point your application to mountebank instead of the real dependency,
and test like you would with traditional stubs and mocks.

Learn More

You can always learn more and support mountebank development by buying the book:

Goals

mountebank has the following goals:

Trivial to get started

mountebank is easy to install, without any platform dependencies. mountebank aims for fun and comprehensive
documentation with lots of examples, and a nice UI that lets you explore the API interactively.

A platform, not just a tool

mountebank aims to be fully cross-platform, with native language bindings. Servers are extensible through scripting.

Powerful

mountebank is the only open source stubbing tool that is non-modal and multi-protocol. Commercial
"service virtualization" solutions exist, but their licensed platforms make it hard to move the tests
closer to development and can even require a specialized IDE. mountebank provides service virtualization free
of charge without any platform constraints.

Not all of mountebank's goals are currently implemented, but fear not, for he has a team of top-notch open
source developers, and they are legion.

Roadmap and Support

mountebank is used by a large number of companies and I think it's important to convey my best guess as to what
the feature roadmap is. I've adopted GitHub tools to manage the roadmap. Specifically, the
Roadmap project page shows the features by release. I generally
re-prioritize and update the ETAs each release. I'm in the middle of writing the mountebank book at the moment too,
so please be patient.

mountebank is provided free of charge and maintained in my free time. As such, I'm unable to make any kind
of guarantees around either support turn-around time or release dates. If your company has commitments
that require more confidence and are willing to pay a reasonable services fee to obtain that confidence,
you can contact me directly at brandon.byars@gmail.com.

Build Status

Node Version

Ubuntu 12.04

CentOS 6.7

OS X Mavericks

Windows Server 2012

npm

v8

(not tested)

npm

v6 (LTS)

(not tested)

npm

v4

(not tested)

OS package

v6

(not tested

N/A

Self-contained archive

v6

(not tested)

(Performance)

v6

(not tested)

(not tested)

(not tested)

Building

./build should do the trick on Mac and Linux, and build.bat on Windows, assuming you have at least node 4.0.
If not, yell at me.

There are some tests that require network access (grunt airplane ignores them in case that offends your
moral sensibilities). A few of these tests verify the correct behavior under DNS failures. If your ISP
is kind enough to hijack the NXDOMAIN DNS response in an attempt to allow you to conveniently peruse their
advertising page, those tests will fail. I suggest that, under such circumstances, you talk to your ISP
and let them know that their policies are causing mountebank tests to fail. You can also run grunt airplane,
which will avoid tests requiring your DNS resolver.

Contributing

Contributions are welcome!
Some tips for contributing are in the contributing link that spins up when you run mb.
I have a liberal policy accepting pull requests - I'd rather you sent them even if you can't figure out
how to get the build working, etc. I'm also available via Skype or something similar to help you get started.
Feel free to reach me at brandon.byars@gmail.com.