Citrus is a test framework written in Java that enables automated integration testing of message-based enterprise SOA applications. The tool can easily simulate surrounding systems across various transports and protocols (e.g. JMS, SOAP WebServices, HTTP, TCP/IP, etc.) in order to perform end-to-end use case testing. Citrus provides strong validation mechanisms for XML message contents and allows you to build complex testing logic such as sending and receiving messages, database validation, automatic retries, variable definitions, dynamic message contents, error simulation, and many more.
MASH is a modular, automated script harness. It allows users to implement simple harnesses that perform work external to a system. The framework will invoke that harness as outlined by an XML script. For example, when using the framework to test a system you could create a script that cleans and loads a database, FTPs some data, submits a login form, and verifies HTTP information. Harnesses can easily be built to do almost anything (many harnesses are provided), not just Web page verification. While harnesses are written in Java, the scripts may be run against any type of system as harnesses are intended to act as clients.