We try to give you example projects as a good starting point for your very own Citrus testing project.

The Citrus sample applications try to demonstrate how Citrus works in different integration test scenarios. The projects are executable with Maven and should give you a detailed picture how Citrus testing works.

Please have a look at the repository on citrus-samples. There you can find all our sample projects.

Each sample demonstrates a special aspect of how to use Citrus. Most of the samples use a simple todo-list application as system under test. Please find following list of samples and their primary objective

Name Objective Source code
sample-testng Use TestNG test framework
sample-message-store Use the local message store
sample-junit5 Use JUnit5 test framework
sample-junit Use JUnit test framework
sample-hamcrest Use Hamcrest matchers
sample-dictionaries Add data dictionaries
sample-behavior Add custom test behavior
sample-annotation-config Use Java annotation configuration
sample-reporting Add custom test reporting
sample-docker Shows how to use Citrus within Docker
sample-soap-ssl Shows SOAP secure web service support
sample-rmi Shows Remote Method Invocation support
sample-soap-wsaddressing Configure SOAP web service client and server with WSSecurity
sample-soap-static-response Shows how to setup a static response generating SOAP web service server component
sample-http-static-response Shows how to setup a static response generating Http server component
sample-javaee Use Citrus and Arquillian in combination
sample-http-loadtest Calls REST API on Http server with multiple threads for load testing
sample-soap-wssecurity Configure SOAP web service client and server with WSSecurity
sample-gradle Uses Gradle build to execute tests
sample-xml Shows XML validation feature with schema and Xpath validation
sample-xhtml Shows XHTML validation feature
sample-soap Shows SOAP web service support
sample-oxm Shows XML object marshalling feature when sending and receiving messages
sample-mail Shows mail server activities in Citrus
sample-json Shows Json payload validation feature with JsonPath validation
sample-jms Shows JMS queue connectivity
sample-jdbc Validates stored data in relational database
sample-javaconfig Uses pure Java POJOs for configuration
sample-https Shows how to use SSL connectivity as a client and server
sample-http Shows REST API calls as a client
sample-dynamic-endpoints Shows dynamic endpoint component usage
sample-dataprovider Shows TestNG data provider usage in Citrus
sample-databind Shows JSON object mapping feature when sending and receiving messages
sample-cucumber Shows BDD integration with Cucumber
sample-cucumber-spring Shows BDD integration with Cucumber using Spring Framework injection
sample-camel-context Interact with Apache Camel context and routes
sample-binary Shows binary message content handling in Citrus

Pick your sample application for try out and got to the respective folder. Each sample is executable on your host. You just need Maven, Java and a git client. Refer to the detailed instructions in the sample README.

Of course we appreciate any kind of help that you can give us in order to make things easy for Citrus users. So if you have a sample worth reading for others please let us know. Also if you are missing a sample because you do not know how to accomplish the Citrus use case please do not hesitate to contact us. You may also open a new issue in the Citrus samples repository.