sdk/servicebus/Azure.Messaging.ServiceBus/stress/README.md
The scenarios in this directory provide a suite of stress tests that test the Service Bus clients for long-term durability and reliability. For more in-depth information about the Azure SDK stress test tools, see the stress test readme.
(env) <git root>/sdk/servicebus/Azure.Messaging.ServiceBus/stress/src> dotnet clean
(env) <git root>/sdk/servicebus/Azure.Messaging.ServiceBus/stress/src> dotnet publish
When tests are run locally, Azure resources need to be created prior to running the test. This can be done through the Azure CLI, an ARM pr bicep file, or the Azure Portal. The bicep file included in this directory can be used to deploy all resources aside from the application insights portal.
To run the compiled .dll file, navigate to the <git root>/artifacts/bin/Azure.Messaging.ServiceBus.Stress/Release/net7.0 directory.
The user is required to input the connection strings upon request on the command line when the test is being run, or include them in a .env file. To use the CLI input, add the -i or --interactive flag to the call:
To deploy stress tests from the command line, run the following command:
(env) <git root>/sdk/servicebus/Azure.Messaging.ServiceBus/stress> ../../../../eng/common/scripts/stress-testing/deploy-stress-tests.ps1 `
>> -Login `
>> -PushImages
Uses ServiceBusSender and ServiceBusReceiver to send and receive messages, each in their own container.
Uses ServiceBusSender and ServiceBusReceiver to send and receive batches of messages, each in their own container.
Uses ServiceBusSender and ServiceBusSessionReceiver to send and receive session messages, each in their own container.
Uses ServiceBusSender and ServiceBusProcessor to send and process messages, each in their own container.
Uses ServiceBusSender and ServiceBusSessionProcessor to send and process messages, each in their own container.
All metrics and logging are sent to App Insights via the Instrumentation Key provided during the initialization of the test. A brief explanation of the metrics collection approach is described below.
See the Metrics.cs file for more information about individual metrics and what they mean.
In order to deploy stress tests to be run in kubernetes clusters, run:
(env) <git root>/eng/common/scripts/stress-testing/deploy-stress-tests.ps1 `
>> -Login `
>> -PushImages
This command requires Azure login credentials.
EnvironmentVariables.csIn order to deploy stress tests to be run in kubernetes clusters, run:
(env) <git root>/eng/common/scripts/stress-testing/deploy-stress-tests.ps1 `
>> -Login `
>> -PushImages
This command requires Azure login credentials.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
Please see our contributing guide for more information.