-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
353 lines (309 loc) · 15.3 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>Citrus Framework</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Citrus 4.5.0">
<meta name="description" content="Citrus Framework Website"/>
<meta name="author" content="ConSol Software GmbH"/>
<link type="application/atom+xml" rel="alternate" href="http://0.0.0.0:4000/feed.xml" title="Citrus Integration Tests" />
<link rel="alternate" type="application/atom+xml" title="Recent commits to Citrus master branch" href="https://github.com/citrusframework/citrus/commits/master.atom">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
<link rel="stylesheet" href="/css/screen.css">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<!--[if lt IE 9]>
<script src="/js/html5shiv.min.js"></script>
<script src="/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="wrap">
<header role="banner">
<nav class="mobile-nav show-on-mobiles">
<ul>
<li>
<img src="/img/brand-logo.png" alt="Citrus"><span class="brand hide-on-mobiles">Citrus</span>
</li>
<li class="current">
<a href="/">Home</a>
</li>
<li class="">
<a href="/projects/">Projects</a>
</li>
<li class="">
<a href="/docs/documentation/">Doc<span class="hide-on-mobiles">umentation</span><span class="show-on-mobiles">s</span></a>
</li>
<li class="">
<a href="/samples/">Samples</a>
</li>
<li class="">
<a href="/news/">News<span class="hide-on-mobiles"> & Blog</span></a>
</li>
<li class="">
<a href="/help/">Help</a>
</li>
<li>
<a href="https://github.com/citrusframework/citrus" target="_blank"><span class="hide-on-mobiles">View on </span>GitHub</a>
</li>
</ul>
</nav>
<div class="grid">
<nav class="main-nav whole hide-on-mobiles">
<ul>
<li>
<img src="/img/brand-logo.png" alt="Citrus"><span class="brand hide-on-mobiles">Citrus</span>
</li>
<li class="current">
<a href="/">Home</a>
</li>
<li class="">
<a href="/projects/">Projects</a>
</li>
<li class="">
<a href="/docs/documentation/">Doc<span class="hide-on-mobiles">umentation</span><span class="show-on-mobiles">s</span></a>
</li>
<li class="">
<a href="/samples/">Samples</a>
</li>
<li class="">
<a href="/news/">News<span class="hide-on-mobiles"> & Blog</span></a>
</li>
<li class="">
<a href="/help/">Help</a>
</li>
<li>
<a href="https://github.com/citrusframework/citrus" target="_blank"><span class="hide-on-mobiles">View on </span>GitHub</a>
</li>
</ul>
</nav>
</div>
</header>
<section class="intro">
<div class="grid jumbo">
<div class="unit whole align-center">
<p class="first">Citrus Integration<br>Testing</p>
<br>
<p>Framework for automated integration tests supporting a wide range of message protocols and data formats!<br>
Kafka, Http REST, JMS, TCP/IP, SOAP, FTP/SFTP, SSH, XML, Json and much more!</p>
<a href="/docs/download" class="btn btn-primary">Release v4.5.0</a>
</div>
</div>
</section>
<section class="intro">
<div class="grid">
<div class="unit whole align-center">
<h1>Messaging integration challenge</h1>
<h2><small>How Citrus helps with automated integration tests</small></h2>
<img src="/img/test-scenario.png" alt="Citrus solution">
<p>In a typical test scenario the system under test is running on a test infrastructure while interacting with
Citrus over various messaging transports. During the test Citrus is able to act on both sides as client and
consumer exchanging real request/response messages over the wire.</p>
<p>With each test step you can validate the exchanged messages with expected control data including message headers, attachments and body content (e.g. XML, Json, ...).
The test provides a Java fluent API to specify the test logic and is fully automated. The repeatable test is nothing but a normal JUnit or TestNG test and can easily run
as integration test in a CI/CD pipeline.</p>
</div>
</div>
<hr>
</section>
<section class="intro">
<div class="grid">
<div class="unit whole align-center">
<h1>Testing Kamelets - Verify event sources and sinks with YAKS</h1>
<h2><small>Presentation from ApacheCon 2021</small></h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/mIfmMFOgdbI" frameborder="0" allowfullscreen></iframe>
<p>Kamelets represent Camel K route snippets that act as standardized event sources and sinks in an event driven architecture. Kamelets provide a simple interface that hides the individual
implementation details and allows the user to connect to external systems with simply providing some required properties. YAKS is a test automation tool that provides special support for
Camel K, Kamelets and other technologies such as Knative, Apache Kafka, OpenAPI 3, Http REST, JMS, and many more. The presentation shows how to write automated integration tests for Kamelets
with YAKS in order to run those tests as part of Kubernetes. The talk begins with a short introduction into the framework concepts and illustrates the general test automation for event sources
and sinks in the form of examples and live demos. In the end the audience should be able to accomplish automated integration tests for custom Kamelets that bind to messaging technologies such
as Knative, Http, and Apache Kafka.</p>
</div>
</div>
<hr>
</section>
<section class="intro">
<div class="grid">
<div class="unit whole align-center">
<h1>Testing Camel K integrations with Cloud Native BDD</h1>
<h2><small>Presentation from ApacheCon 2020</small></h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/aYLLtj6TdjM" frameborder="0" allowfullscreen></iframe>
<p>Apache Camel K is a lightweight integration platform built from Apache Camel. Integrations built with Camel K run natively on Kubernetes and are specifically designed for serverless architectures.
With the declarative nature in Camel K users can instantly run integration code written in Camel DSL on their preferred cloud. The presentation outlines typical integration scenarios with Camel K
and shows how to write automated tests for these enterprise integrations. The session covers classical service provider/consumer scenarios with common messaging protocols (e.g. REST, JMS, Kafka) as
well as more complex integrations with data access and 3rd party Saas services included. The tests itself will also be Cloud Native citizens and make use of Behavior Driven Development concepts.</p>
</div>
</div>
<hr>
</section>
<section class="intro">
<div class="grid">
<div class="unit whole align-center">
<h1>Citrus TestTalks Interview</h1>
<h2><small>Integration Automation Using Citrus Testing Framework with Christoph Deppisch</small></h2>
<a href="https://testguild.com/podcast/automation/190-integration-automation-using-citrus-testing-framework-christoph-deppisch/" target="_blank"><img src="/img/assets/testtalks-interview/thumbnail.png" alt="TestTalks Interview"></a>
<p>Copyright by Joe Colantonio | Test Guild LLC</p>
<p>Joe Colantonio talks to Christoph Deppisch about 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.
Listen to this "testtalks" episode at <a href="https://testguild.com/podcast/automation/190-integration-automation-using-citrus-testing-framework-christoph-deppisch/" target="_blank">https://testguild.com/podcast</a></p>
</div>
</div>
<hr>
</section>
<section class="intro">
<div class="grid">
<div class="unit whole align-center">
<h1>BDD Integration with Citrus & Cucumber</h1>
<h2><small>Citrus "Tools in action" session <a href="https://github.com/DevoxxBE" class="user-mention">@DevoxxBE</a> 2017</small></h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/X76Wz0MNdrc" frameborder="0" allowfullscreen></iframe>
<p>The concept of behavior driven development (BDD) is quite simple. Business analysts and domain experts describe how the application should behave using Gherkin (given-when-then) feature stories.
Developers glue those specifications to automated tests. Can we use this approach when testing the integration of services, too? The talk gives answers with a combination of the frameworks Cucumber and Citrus.
After a short introduction to both frameworks we discuss the concepts and see some code examples that demonstrate how the behavior driven approach fits to testing the messaging integration with Http REST, JMS and mail communication.
At the end we will have an automated integration test with BDD and almost no glue code to write manually.</p>
</div>
</div>
<hr>
</section>
<section class="intro">
<div class="grid">
<div class="unit whole align-center">
<h1>Citrus & Cucumber BDD</h1>
<h2><small>Citrus "Tools in action" session <a href="https://github.com/DevoxxUS" class="user-mention">@DevoxxUS</a> 2017</small></h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/jNgROZjI98Y" frameborder="0" allowfullscreen></iframe>
<p>The concept of behavior driven development (BDD) is quite simple. Business analysts and domain experts describe how the application
should behave using Gherkin (given-when-then) feature stories. Developers glue those specifications to automated tests. The talk
combines the frameworks Cucumber and Citrus and gives some code examples that demonstrate how the behavior driven approach fits to
testing the messaging integration with Http REST, JMS and mail.</p>
</div>
</div>
<hr>
</section>
<section class="intro">
<div class="grid">
<div class="unit whole align-center">
<h1>Testing Microservices</h1>
<h2><small>Citrus "Tools in action" session <a href="https://github.com/DevoxxBE" class="user-mention">@DevoxxBE</a> 2015</small></h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/FPgXJveaLTo" frameborder="0" allowfullscreen></iframe>
<p>Citrus integrates with frameworks like Apache Camel, Arquillian, Kubernetes and Docker in order to provide
automated integration testing of Microservice applications. The tools in action session gives a brief introduction
to the Citrus framework and shows code samples for a complete integration test scenario in a Microservices environment.</p>
</div>
</div>
<hr>
</section>
<section class="features">
<div class="grid">
<div class="unit one-third">
<h2>Features</h2>
<p>Your enterprise applications requires detailed integration testing. Citrus provides a
tooling for complex integration test with great validation capabilities for XML, JSON and plain text.</p>
<ul>
<li>
<strong>Interface mocks and simulators:</strong> client and server side</li>
<li>
<strong>Test automation:</strong> repeatable integration tests within your continuous build</li>
<li>
<strong>Message transport connectivity:</strong> HTTP, JMS, TCP/IP, REST, SOAP, XML, JSON, and more</li>
<li>
<strong>Validation:</strong> message header and body assertions</li>
</ul>
<p>See the complete <a href="/docs/features">feature list →</a> for details.</p>
</div>
<div class="unit one-third">
<h2>Documentation</h2>
<p>See the following reading material and information on Citrus testing.</p>
<ul>
<li><a href="/docs/documentation/">Documentation</a></li>
<li><a href="http://labs.consol.de/tags/citrus" target="_blank">Blog</a></li>
<li><a href="http://javadoc.io/doc/org.citrusframework/citrus-core" target="_blank">Java API</a></li>
<li><a href="https://github.com/citrusframework/citrus" target="_blank">Java Sources</a></li>
</ul>
<p>The reference documentation material for the latest Citrus release is available as online HTML
or offline PDF version.</p>
<p><strong>Latest stable release:</strong><br>
Version 4.5.0: <a href="/reference/html/index.html" target="_blank">HTML</a> | <a href="/citrus/reference/4.5.0/pdf/citrus-reference-4.5.0.pdf" target="_blank">PDF</a>
</p>
</div>
<div class="unit one-third">
<h2>News & Blog</h2>
<ul>
<li class="">
<a href="/news/2023/10/25/release-4.0.0/">Citrus 4.0.0</a>
</li>
<li class="">
<a href="/news/2023/01/30/camel-k-yaks/">Testing Camel K with YAKS</a>
</li>
<li class="">
<a href="/news/2021/08/30/introducing-yaks/">Cloud-native BDD testing with YAKS</a>
</li>
<li class="">
<a href="/news/2021/08/25/new-camel-support/">Apache Camel support in Citrus 3</a>
</li>
<li class="">
<a href="/news/2021/08/16/citrus-3.0/">YAY, Citrus 3.0 is here!</a>
</li>
</ul>
</div>
<div class="clear"></div>
</div>
</section>
<footer role="contentinfo">
<div class="grid">
<div class="unit one-third center-on-mobiles">
<p>Citrus is open source and licensed under <br><a href="https://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a>.</p>
<p>This website is licensed under <br><a href="https://github.com/citrusframework/citrus/blob/master/LICENSE">MIT License</a>.</p>
<br>
<p>© 2024 ConSol Software GmbH</p>
</div>
<div class="unit one-third align-center center-on-mobiles">
<p>
<img src="/img/bmi_logo_eng.png" alt="Federal Ministry for Economic Affairs and Energy">
</p>
</div>
<div class="unit one-third align-right center-on-mobiles">
<p>
Hosted by<br>
<a href="http://www.consol.de">
<img src="/img/sponsor-logo.png" alt="ConSol">
</a>
</p>
<p> </p>
<br>
<br>
<p>
<a href="http://www.consol.com/legal-notice/">Legal notice</a> | <a href="https://www.consol.com/data-privacy/">Data privacy</a>
</p>
</div>
</div>
</footer>
<script>
var anchorForId = function (id) {
var anchor = document.createElement("a");
anchor.className = "header-link";
anchor.href = "#" + id;
anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
anchor.title = "Permalink";
return anchor;
};
var linkifyAnchors = function (level, containingElement) {
var headers = containingElement.getElementsByTagName("h" + level);
for (var h = 0; h < headers.length; h++) {
var header = headers[h];
if (typeof header.id !== "undefined" && header.id !== "") {
header.appendChild(anchorForId(header.id));
}
}
};
document.onreadystatechange = function () {
if (this.readyState === "complete") {
var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("samples")[0] || document.getElementsByClassName("news")[0];
if (!contentBlock) {
return;
}
for (var level = 1; level <= 6; level++) {
linkifyAnchors(level, contentBlock);
}
}
};
</script>
</body>
</html>