EngineBlock Users Guide

Latest Release Build Status

EngineBlock is a new power tool in the test tooling arsenal.

The design goals:

  1. Provide a useful and intuitive Reusable Machine Pattern for constructing and reasoning about concurrent performance tests. To encourage this, the runtime machinery is based on simple and tangible core concepts.
  2. Reduce testing time of complex scenarios with many variables. This is achieved by controlling tests from an open javascript sandbox. This makes more sophisticated scenarios possible when needed.
  3. Minimize the amount of effort required to get empirical results from a test cycle. For this, metrics reporting is baked in.

In short, EngineBlock wishes to be a programmable power tool for performance testing. However, it is somewhat generic. It doesn’t know directly about a particular type of system, or protocol. It simply provides a suitable machine harness within which to put your drivers and testing logic. If you know how to build a client for a particular kind of system, EngineBlock will let you load it like a plugin and control it dynamically.

The most direct way to do this, if you are a tool developer, is to implement your own ActivityTypes and embed EngineBlock with them as the core runtime. You can always experiment with it and learn how it works by using the built-in diagnostic drivers.


The Engine Block project started as a branch of test client. It has since evolved to be more generic.


EngineBlock is licensed under the Apache Public License 2.0


If you are interested in contributing to Engine Block, more information is available in the Developer’s Guide.