Journal

Load-testing Java microservices with Locust and Python
Performance testing Java microservices with Locust and Python measures the behaviour of a complete request path under controlled concurrency, rather than…
Awaitility for Reliable Asynchronous Testing in Groovy
Groovy makes asynchronous code compact: a service call may return a CompletableFuture, place work on a thread pool, publish a message, or update a database…
Testing Kafka Streams Topologies with TopologyTestDriver in Java
Kafka Streams applications can look deceptively simple. A few topics enter a topology, records are filtered or transformed, and a result topic receives the…
Functional tests for Java build tool plugins
Build plugins sit at the boundary between configuration and execution. A Maven mojo or Gradle task can pass unit tests yet fail when a real project resolves…
Mocking JNDI resources for Java EE tests with Mockito
Java EE components often obtain database connections, JMS destinations, mail sessions, and connection factories through JNDI. That indirection is useful inside…
Testing Java WebSockets with Spring WebSocket Test
A WebSocket keeps one TCP connection open for two-way traffic, so a passing HTTP request test can still miss a broken upgrade, subscription, frame handler,…
Integration Testing Redis Cache with an Embedded Instance
Redis remains one of the most common components behind the response time of a backend service. From session stores at Sydney-based fintechs to feature flag…
Parallel Test Execution in Java Projects with TestNG
Test suites in Java projects grow the moment a team commits to quality. A small suite that finishes in seconds quickly becomes a multi-minute one once…
Unit testing Java rule engines built on Drools
Rule engines are wonderfully expressive tools for capturing business logic, yet they tend to be under-tested because their behaviour is dynamic, their internal…
Performance Testing GraphQL with Apollo Load Testing Tools
GraphQL gives clients a flexible way to request exactly the fields they need, but that flexibility changes how performance must be tested. A single endpoint…