Christoph Deppisch Test Talks

190: Integration Automation Using Citrus Testing Framework with Christoph Deppisch


Today we’ll be test talking with the creator of the Citrus Integration Testing Framework, Christoph Deppisch. Citrus is an open source solution that was developed to help you automate integration tests for pretty much any messaging protocol or data format. So if you’re looking to expand your automation efforts beyond lame, flaky, UI-based automated tests, this episode is for you.

About Christoph Deppisch

Christoph Deppisch Head Shot

Christoph is a senior software developer at ConSol Software located in Munich, Germany. He has worked in Middleware Integration projects for more than 10 years and has gained a special interest in continuous integration. Christoph is the lead developer of the Open Source test framework Citrus and believes in automated integration testing with passion.

Quotes & Insights from this Test Talk Citrus Testing Framework with Christoph Deppisch

  • Citrus has a focus on the messaging integration. So if you have a software and you have to talk to other services or to other software components and you are using any kind of messaging transport you usually you have HTTP rest or you have to JMS or some other kind of messaging transport then citrus is the framework that you should use or you can use to test these messaging integration.
  • So citrus could trigger selenium for interacting with the user interface click some buttons and on the backed and side citrus can just receive this e-mail or could receive the JMS communication that was triggered by the UI intact in the very same test. So you can have a test case where your first action is a selenium action and you click some button and the second action could be receiving mail action that receives the mail. And the third action could be your JMS integration where you just validate that your back-end service is having some message on the on the JMS Transport.
  • So, first of all, you can create XML test cases so you can write your test case without having to write Java code at all. You can just code it in XML. But then, of course, we also integrated the Java world itself so you can use a fluent API in Java to write your citrus test cases as you would write a normal Java unit test for example.
  • Camel has a huge set of adapters for different messaging transports or data formats and citrus is able to interact or to use those camel components directly in the test. So if citrus is not having an integration with messaging transport or with a data format you should have a look into Apache camel and if there you can use it in citrus also because citrus can just use the camera component out of the box.
  • There's a citrus BDD extension that works on top of Cucumber so that you can use the components and fluent API of citrus inside of Cucumber test.
  • First of all you have to write your integration test so they can be automated. This is probably my advice. So many people create integration tests where you just have some kind of manual interaction and you have to do some kind of prepare for the testing environment and you should just do this and that in a manual state. No, just have to write your integration test so that it can be automated and integrated into your continuous delivery and only then these tests will be executed at a very fluent and frequent way. And I think this is the main advice I would say to someone that is into integration testing — try to automated it completely from one to the other hand.

Resources

Connect with Christoph Deppisch about Citrus Testing Framework

May I Ask You For a Favor?

Thanks again for listening to the show. If it has helped you in any way, shape or form, please share it using the social media buttons you see on the page.

Additionally, reviews for the podcast on iTunes are extremely helpful and greatly appreciated! They do matter in the rankings of the show and I read each and every one of them.

SponsoredBySauceLabs

Test Talks is sponsored by the fantastic folks at Sauce Labs. Try it for free today!