Performance testing


If I write the .net core web api then I will do that performance testing using the below.

  1. Jmeter
  2. K6
  3. NBomber

This testing will be a good idea of how my system will behave at a certain load and by using that I can define the SLA.

May I know how do we get similar data for Nservicebus endpoints?

Any help is highly appreciated.

Thanks, Pon

Hi @ponkarthik87,

When you mention performance testing for endpoints, I’m assuming that you want to understand:

  • How long it takes for a number of messages to be processed
  • How many messages you can process per second, or the throughput of your endpoint

When you enable NServiceBus metrics, you can measure performance metrics and view those in ServicePulse. You’ll be interested to monitor critical time and processing time in your endpoints.

We have a monitoring demo available that allows you to explore the monitoring features in more detail.

When it comes to SLAs for business processes, you’ll have to consider which endpoints need to be running in order to complete a business process from start to end (e.g. an order that travels through the endpoints Sales, Finance, and Billing), and accumulate the duration of all the messages processed. In addition, it’s important to account for automatic retries that may be happening in the system as well.

We also have some best practices listed around grouping message handlers by SLA here.

To load test, we don’t have an out-of-the-box solution. An option could be to bring down the endpoint(s) you want to test. Invoke the code that sends the messages to the endpoint (most probably this will be done by one of your APIs) with any of the tools you’re already using, or by writing some custom code. Once you have the desired amount of messages in the queue to process, you can start the endpoints and measure how long it takes for all messages to be processed.

I hope that helps,