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
| Configuration | Description | Sources |
|---|---|---|
| sample-javaconfig | Uses pure Java POJOs for configuration | |
| sample-annotation-config | Use Java annotation configuration | |
| sample-reporting | Add custom test reporting |
| Connectors | Description | Sources |
|---|---|---|
| sample-docker | Shows how to use Citrus within Docker | |
| sample-kubernetes | Run tests in Kubernetes |
| Demo | Description | Sources |
|---|---|---|
| sample-cucumber | Shows BDD integration with Cucumber | |
| sample-camel-context | Interact with Apache Camel | |
| sample-quarkus | How to verify Quarkus applications with Citrus | |
| sample-jbang | Prototype Citrus tests in minutes with JBang | |
| sample-selenium | Use Selenium for UI testing |
| Endpoints | Description | Sources |
|---|---|---|
| sample-http | Shows REST API calls as a client | |
| sample-scp | SCP client and server interaction in Citrus | |
| sample-soap-attachment | How to send SOAP attachments to server | |
| sample-soap-mtom | Handle MTOM enabled SOAP attachments | |
| sample-http-basic-auth | Basic authentication on client and server components | |
| sample-ftp | FTP client and server interaction in Citrus | |
| sample-dynamic-endpoints | Shows dynamic endpoint component usage | |
| sample-soap | Shows SOAP web service support | |
| sample-sftp | SFTP client and server interaction in Citrus | |
| sample-https | Shows how to use SSL connectivity as a client and server | |
| sample-swagger | Auto generate tests from Open API | |
| sample-mail | Shows mail server activities in Citrus | |
| sample-jms | Shows JMS message broker connectivity | |
| sample-wsdl | Auto generate tests from WSDL | |
| sample-soap-wssecurity | Configure SOAP web service client and server with WSSecurity | |
| sample-jdbc | Validates stored data in relational database | |
| 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-http-loadtest | Calls REST API on Http server with multiple threads for load testing | |
| sample-kafka | Shows Kafka integration |
| Miscellaneous | Description | Sources |
|---|---|---|
| sample-gradle | Uses Gradle build to execute tests | |
| sample-behavior | Add custom test behavior | |
| sample-dictionaries | Add data dictionaries | |
| sample-message-store | Use the local message store |
| Quarkus | Description | Sources |
|---|---|---|
| event-driven-kafka | How Citrus helps to verify event driven Kafka messaging in a Quarkus application |
| Runtimes | Description | Sources |
|---|---|---|
| sample-junit5 | Use JUnit5 test framework | |
| sample-dataprovider | Shows TestNG data provider usage in Citrus | |
| sample-testng | Use TestNG test framework | |
| sample-junit | Use JUnit test framework |
| Validation | Description | Sources |
|---|---|---|
| sample-xhtml | Shows XHTML validation feature | |
| sample-oxm | Shows XML object marshalling feature when sending and receiving messages | |
| sample-hamcrest | Use Hamcrest matchers | |
| sample-xml | Shows XML validation feature with schema and Xpath validation | |
| sample-json | Shows Json payload validation feature with JsonPath validation | |
| sample-databind | Shows JSON object mapping feature when sending and receiving messages | |
| sample-http-form-data | Exchange form data via Http GET/POST | |
| sample-sql | Execute SQL statements in Citrus | |
| 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.