Features

See below a list of features that Citrus provides as a test automation framework for enterprise integration testing. If you are missing a feature in Citrus please help us and submit a feature request. You can also just vote for ideas and features, so we can start developing those things that are most relevant for you.

Control the test flow

  • Send and receive messages and specify control messages for validation
  • Simulate interface partners supporting a wide range of protocols (Http, JMS, SOAP WebServices, TCP/IP, ...)
  • Force timeouts and error situations
  • Define the sequence of messages
  • Wait for messages to arrive
  • Trigger messages and validate responses
  • Save dynamic message content and reuse those later in test case (proper response generation with dynamic identifiers)
  • Test complex messaging scenarios with step by step sequence of operations
  • Use advanced logic in test cases (loops, delays, retries, parallel sections, ...)

Message validation

  • Message header validation
  • XML message payload validation
    • XML tree comparison
    • XPath element validation
    • Groovy XML validation
  • XML schema and DTD validation
  • Groovy message validaiton

Database access/validation

  • Validate existence of data
  • Prepare/simulate database content
  • Execute queries and use database content in tests

Test writing

  • Human readable tests (XML format)
  • Simple test creation (cross-editor support, XML schema support)
  • Separation of test cases and environment configurations (easy environment switching, improved maintenance)

Effective testing

  • Test grouping / test templates / test suites
  • IDE support (execute tests as TestNG/JUnit tests from Eclipse, IntelliJ IDEA or NetBeans)
  • Integration into build lifecycle (Maven, ANT)
  • Reliable failure descriptions
  • Reports and test results
  • Parallel test execution realistic message load on tested system and faster test runs
  • Provide test plan and document test coverage

Framework extensions

  • Write adapters to support more protocols
  • Write customized functions
  • Write customized test actions
  • Execute Groovy code