A Java-based testing framework, dubbed Citrus, aims to automate integration testing of message-based enterprise service-orientated artchitecture (SOA) applications by simulating surrounding systems across multiple protocols.
Developed by German software company ConSol, Citrus was designed to satisfy a need for a tool that supported automated integration tests of Enterprise Application Integration (EAI) systems connected using different protocols as “the IT world discovered a surprisingly huge variety of technologies two applications may use to talk to each other”.
Citrus supports protocols such as JMS, SOAP WebServices, HTTP and TCP/IP to perform “end-to-end use case testing” and, according to its developers, provides “a lot of vitamin C for your SOA applications”.
Its features include strong validation mechanisms for XML message contents, the ability to build complex testing logic like sending and receiving messages, database validation, automatic retries, variable definitions, dynamic message contents and error simulation.
The software tester defines a message flow as it is designed for a use case. The tests can then be used in a continuous integration environment so Citrus “gives credit to the software quality at all time”.
Citrus is developed with the open source Spring, which now owned by VMware. It requires Java 5.0 (or later) and a build tool like Apache Maven (recommended) or Apache Ant. An IDE like Eclipse is also recommended to help manage Citrus projects.
The Citrus code is licensed under the GNU GPL and available on GitHub.