Azure Load Testing - amitbhilagude/userfullinks GitHub Wiki

  1. Terminology
    1. JMeter: Script to write the load testing. The maximum user count to be added to script is no more than 250
    2. Test Parameter and Criteria: Inputs to the Script and certain criteria to be added
    3. Test Engine: Microsoft Paas Offering which will run this script. You can pass the number of Test Engines to be provisined e.g. If you provision 4 Test engines that means the total user load will be 250*4 = 100, user
    4. Client Metrics: Test engine outcomes like Response time etc. will be reported as Client Metrics by the Test Engine to the Dashboard
    5. Server Metrics: Azure Services performance which will be reported to the Azure Monitor will also incorporated into Dashboard
    6. Azure DevOps and Github actions: It also supports integration with CI\CD and allows you to pass Test parameters and criteria which help to decide to fail build e.g. If criteria to expected response within 1 ms, it can report back to the build pipeline.
  2. Pricing
    1. It has fixed charge per month for provisioning load testing resource with giving default Virtual User Hours
    2. There is pay-as-a-go for the Number of additional Virtual User Hours.
    3. Virtual user hours is (number users * time of simulations)/60 e.g. 100 Users run for 30 mins then it is (100*30/60) = 5 VUH
  3. Azure Load testing Resource provisioning
    1. Make sure you select the region where your application expects users. It will only allow to have one region per resource
    2. It supports 3 roles. Role test owner, contributor, and reader
    3. Upload Apache JMeter script or It creates sample which can be used to modify it. Most common changes you do in that is Url to hit the load test, Number of User, User ramping time and how long would you like to add the users
    4. Environment variable can be used for URL etc and jmeter script can read it. JMeter script has special formats and node to read it.
    5. Secret variable can be used to read secrets from Key vault. Need to enable Managed identity and user the secret URL in this variable. JMeter script has special format to read those secrets variable.
  4. Dashboard
    1. Shows are test run previously and option to compare the both test metrics.
    2. Shows serverside where list of Azure services you have used, need to select to those resources in configuration.
  5. JMeter
    1. Script required to upload in Azure Load testing is possible create JMeter UI application. Download from here which also requires JAVA setup. https://jmeter.apache.org/download_jmeter.cgi
    2. Export the configuration which will create JMeter script file.
  6. CI\CD Integration with Azure Load testing
    1. Sample example which can provision Azure Load testing resource and sample application is Here
    2. Config File added into CI-CD is Yaml file which can have jmx file included e.g. Sample App Yaml. JMX file is Here
    3. Deploy though Azure DevOps pipeline is mentioned Here
    4. CI will will publish result and all the metric are also shown in the console. You can also fail pipeline based on the criteria. Detailed are added here Here