Skip to content

Add load testing to CI - #525

Draft
mgaffigan wants to merge 3 commits into
OpenIntegrationEngine:mainfrom
mgaffigan:maint/perf-test
Draft

mgaffigan wants to merge 3 commits into
OpenIntegrationEngine:mainfrom
mgaffigan:maint/perf-test

Conversation

@mgaffigan

Copy link
Copy Markdown
Contributor

Adds two load tests:

ChainFanOut: File Reader -> MLLP and HTTP across three channels

QueuedDestinations: Parallel destination threads

Both calculate metrics on 1k messages.

Signed-off-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Test Results

130 files  ± 0  130 suites  ±0   12m 42s ⏱️ + 9m 40s
791 tests + 2  788 ✅  - 1  0 💤 ±0  0 ❌ ±0  3 🔥 +3 
929 runs  +14  916 ✅ +7  6 💤 ±0  1 ❌ +1  6 🔥 +6 

For more details on these errors, see this check.

Results for commit 4ba7049. ± Comparison against base commit a403039.

♻️ This comment has been updated with latest results.

Signed-off-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
Signed-off-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
@NicoPiel

Copy link
Copy Markdown
Contributor
  1. Flaky queue-depth check (QueuedDestinationsLoadTest.java:736): the test only starts looking at queue depth after all messages have been received. On a fast host the queues may already be empty by then, so maxQueueDepth > 0 fails even though the queues did fill up. For the same reason, the drain time it reports is wrong.
  2. Cleanup can leave channels running (ChainFanoutLoadTest.java:115 and QueuedDestinationsLoadTest.java:713): clean() runs before the undeploys without a try/finally. If it throws, the load channels stay deployed, with MLLP 9082, HTTP 9083 and a File Reader still active on the shared server.
  3. Server change loses error detail (MirthResourceInvocationHandlerProvider.java:251): the new SQLException handling keeps only the message. It drops the SQLState, the vendor code and the getNextException() chain, and it logs at ERROR on every hit. It's also a change to production error handling bundled into a test PR, with no unit test.

@mgaffigan
mgaffigan marked this pull request as draft October 28, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants