@shuppert/mountebank
v2.12.0
Published
Over the wire test doubles
Downloads
68
Maintainers
Readme
bbyars/mountebank is no longer maintained
Unfortunately, there are no easy exit ramps for hobbyist open source. I've greatly enjoyed building and maintaining mountebank, but after a decade, I find myself no longer having the energy or passion to continue to do so on nights, weekends, and holidays. Handing someone else that responsibility for a 10-year-old code base that they did not write is... challenging.
Please fork at will, and thank you for being part of the community.
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.
At the moment, the following protocols are implemented, either directly in the tool or as a community extension:
- http
- https
- tcp (text and binary)
- smtp
- ldap
- grpc
- websockets
- graphql
- snmp
- telnet
- ssh
- netconf
mountebank supports mock verification, stubbing with advanced predicates, JavaScript injection, and record-playback through proxying.
See getting started guide for more information.
Install and Run
Install:
npm install -g mountebank
Run:
mb
There are a number of command line options if you need to customize mountebank.
All pre-release versions of mountebank are available with the beta
npm tag.
No beta
version is published unless it has passed all tests.
Learn More
After installing and running, view the docs in your browser at http://localhost:2525, or visit the public site.
You can always learn more and support mountebank development by buying the book:
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.
Visit the Google group for any support questions. Don't be shy!
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.
Building
There are two packages: mountebank itself, and a test package called mbTest (which houses all out-of-process tests against mountebank). First ensure all dependencies are installed for both packages:
npm install
Then, run all tests:
npm test
Several other test configurations exist. You can see the CI pipeline in .circleci/config.yml.
There are some tests that require network access.
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 set
the environment variable MB_AIRPLANE_MODE=true
, which will avoid tests requiring your DNS resolver.
Support
I make a good faith effort to monitor conversations in the mountebank Google group. Given that mountebank is a free tool freely maintained in my (increasingly limited) free time, I make no promises about response time (or responses at all).
Contributing
Contributions are welcome! Some tips for contributing are in the CONTRIBUTING.md.