Configure Azure Load Testing Preview for high-scale load

In this article, learn how to set up a load test for high-scale load by using Azure Load Testing Preview. To simulate a large number of virtual users, you'll configure the test engine instances.

Important

Azure Load Testing is currently in preview. For legal terms that apply to Azure features that are in beta, in preview, or otherwise not yet released into general availability, see the Supplemental Terms of Use for Microsoft Azure Previews.

Prerequisites

  • An Azure account with an active subscription. If you don't have an Azure subscription, create a free account before you begin.

  • An existing Azure Load Testing resource. To create an Azure Load Testing resource, see the quickstart Create and run a load test.

Determine requests per second

The maximum number of requests per second (RPS) that Azure Load Testing can generate depends on the application's latency and the number of virtual users (VUs). Application latency is the total time from sending an application request by the test engine to receiving the response.

You can apply the following formula: RPS = (# of VUs) * (1/latency in seconds).

For example, if application latency is 20 milliseconds (0.02 seconds), and you're generating a load of 2,000 VUs, you can achieve around 100,000 RPS (2000 * 1/0.02s).

Apache JMeter only reports requests that made it to the server and back, either successful or not. If Apache JMeter is unable to connect to your application, the actual number of requests per second will be lower than the maximum value. Possible causes might be that the server is too busy to handle the request, or that an TLS/SSL certificate is missing. To diagnose connection problems, you can check the Errors chart in the load testing dashboard and download the load test log files.

Test engine instances

In Azure Load Testing, test engine instances are responsible for executing a test plan. If you use an Apache JMeter script to create the test plan, each test engine executes the Apache JMeter script.

The test engine instances run in parallel. They allow you to define how you want to scale out the load test execution for your application.

In the Apache JMeter script, you define the number of parallel threads. This number indicates how many threads each test engine instance executes in parallel. Each thread represents a virtual user. We recommend that you keep the number of threads below a maximum of 250.

For example, to simulate 1,000 threads (or virtual users), set the number of threads in the Apache JMeter script to 250. Then configure the test with four test engine instances (that is, 4 x 250 threads).

Important

For preview release, Azure Load Testing supports up to 45 engine instances for a test run.

Configure your test plan

In this section, you configure the scaling settings of your load test.

  1. Sign in to the Azure portal by using the credentials for your Azure subscription.

  2. Go to your Load Testing resource. On the left pane, select Tests to view the list of load tests.

  3. In the list, select your load test, and then select Edit.

    Screenshot that shows the list of load tests and the 'Edit' button.

  4. You can also edit the test configuration from the test details page. To do so, select Configure, and then select Test.

    Screenshot that shows the 'Configure' and 'Test' buttons on the test details page.

  5. On the Edit test page, select the Load tab. In the Engine instances box, enter the number of test engines required to run your test.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  6. Select Apply to modify the test and use the new configuration when you rerun it.

Next steps