MActor (Message Actor)

MActor is an extensible tool for functional integration testing. It can facilitate tests for a range of integration technologies (support for JMS, XML over HTTP, SOAP, TIBCO Rv, IBM MQ Series and file-shares are currently supplied with the tool)

The Challenge

The testing of complex integrations scenarios involving communication between several systems, different integration technologies, and with potentially a large number of test cases

The Approach

  • An "as simple as possible" language for declaring the flow of messages (the Test Specification Language), and for invoking SQL, shell commands, BSH scripts, Java classes, and a set of built-in functions.
  • A set of technology-adapters that provides a technology independent abstraction for sending and receiving messages (as long as the message has an XML-representation)
  • A means for specifying test data on a tabular format where each row in the data table represents the input for a complete test (potentially involving a large number of messages sent between several systems). Where the value each column in the test data can be using anywhere in the test (i.e. as a parameter X in message Y to system Z)
  • An GUI editor for creating and configuring tests and technology adapters (message brokers)
  • A GUI test-runner for running tests
  • A command line interface for running tests
  • A documented set of Java interfaces for extending the tool (i.e. with new technology-adapters, built-in functions or GUI functionality)

Limitations

  • The most fundamental limitation is that the messages must have a natural XML representation (however, it is still possible to get around this be creating custom technology-adapters, or to modify the existing ones)
  • The provided technology adapters does typically not provide the complete interface to the technology .I.e. the HTTP-SOAP adapter does not support HTTPS, and IBM MQ Series adapter does not support all options available in the IBM MQ Series API (however, it is still possible to get around this by modify the existing adapters - please send me the modifications if you do)
  • There is no user manual (except the info you can find on this site, and in the GUI)