Azure Load Testing Detailed Walkthrough

Поділитися
Вставка
  • Опубліковано 4 лип 2024
  • Azure Load Testing can help you gain confidence in your application and architecture, by knowing it will scale and perform under demand to meet business requirements, and if it doesn't, you will be able to quickly understand where the bottleneck in your application architecture lies.
    You can easily integrate load tests to your CI/CD process to build confidence during the build and release process of your applications. Join me to take a detailed look at Azure Load Testing, a new fully managed testing service provided by Microsoft!
    // SUBSCRIBE ✅
    ua-cam.com/users/mattallford?su...
    // RESOURCES & REFERENCES 📃
    Azure Load Testing Pricing :
    🔗azure.microsoft.com/en-us/pri...
    Create an Apache JMeter script :
    🔗docs.microsoft.com/en-us/azur...
    Azure Load Testing Roles:
    🔗docs.microsoft.com/en-us/azur...
    Configure a load test in YAML:
    🔗docs.microsoft.com/en-us/azur...
    Azure Sample Application:
    🔗github.com/Azure-Samples/node...
    Apache JMeter:
    🔗jmeter.apache.org/
    Apache JMeter Download (Requires Java):
    🔗jmeter.apache.org/download_jm...
    Example JMeter scripts used in demos:
    🔗gist.github.com/mattallford/a...
    // FOLLOW ME 👉
    Blog - mattallford.com
    LinkedIn - / mattallford
    Twitter - / mattallford
    GitHub - github.com/mattallford
    // TIMESTAMPS 🕛
    00:00 - Introduction
    02:05 - Azure Load Test Overview
    13:50 - Pricing
    16:00 - Demo Agenda
    18:05 - Prerequisites
    20:36 - Create Azure Load Test
    23:37 - Load Test Roles
    24:49 - Review Load Test Resource
    26:03 - Create a Test in the Portal
    33:30 - Review Test Results
    38:22 - Compare Tests
    40:01 - Using Parameters in Tests
    47:09 - Using Secrets in Tests
    58:38 - Adding Server Side Metric Monitoring
    1:05:38 - Apache JMeter User Interface
    1:09:41 - Identify Bottlenecks Using Azure Load Test
    1:24:47 - Integrate Azure Load Test with CI/CD (GitHub Actions)
    1:51:55 - Summary
  • Навчання та стиль

КОМЕНТАРІ • 75

  • @PekDraine
    @PekDraine Рік тому

    Great Matt! Really. Informative and hands-on examples.

    • @PekDraine
      @PekDraine Рік тому +1

      You got me as an new follower

    • @MattAllford
      @MattAllford  Рік тому

      Hey there, sorry I just realised I missed this comment. Really happy you enjoyed the content, more to come!

  • @user-pj9ut4bk5y
    @user-pj9ut4bk5y 7 місяців тому +1

    Great work! Clear and concise instructions. Thanks for that. 😍

  • @rishad356
    @rishad356 Місяць тому

    That's an amazing walkthrough... Very informative and to the point...

    • @MattAllford
      @MattAllford  Місяць тому

      Thank you for watching and taking the time to comment - I really appreciate the feedback!

  • @ibukun4069
    @ibukun4069 Рік тому +1

    Great content with clear explanations

    • @MattAllford
      @MattAllford  Рік тому

      Thanks Ibukun, appreciate the comment and I’m happy it was helpful!

  • @sharry87
    @sharry87 Місяць тому

    I created for post and get packets to https and using dynamic data.. All thanks to this tutorial.

  • @marcdiaz1844
    @marcdiaz1844 4 місяці тому +1

    Great video Matt, thanks a lot!

    • @MattAllford
      @MattAllford  4 місяці тому

      My pleasure! Thank you for watching!

  • @maanasanagarajan4138
    @maanasanagarajan4138 6 місяців тому +1

    Great video! Very useful and highly informative. Thank you 🙂

    • @MattAllford
      @MattAllford  4 місяці тому

      Thank you for watching! I’m glad it helped.

  • @Akshattheyoutuber
    @Akshattheyoutuber Рік тому +1

    Great work Matt.. Thanks

  • @shubhasismathur
    @shubhasismathur Рік тому +1

    Thank you Matt, this is awesome.

    • @MattAllford
      @MattAllford  Рік тому +1

      You are most welcome! I appreciate the comment, and am super happy you liked the content 😃

    • @shubhasismathur
      @shubhasismathur Рік тому

      My pleasure Matt. Your content and way of explaining is super nice.

  • @aghiles2893
    @aghiles2893 Рік тому +1

    Excellent video!

    • @MattAllford
      @MattAllford  Рік тому +1

      Thank you, I appreciate the feedback!

  • @satyamparmar4458
    @satyamparmar4458 Рік тому

    great content!! Thanks for the awesome info.

    • @MattAllford
      @MattAllford  Рік тому +1

      Thank you for watching and for the nice comment too 🙂 glad it was helpful!

  • @agito289
    @agito289 Рік тому +1

    Wow. What a great video, and for free at that!

  • @user-ur6fl7ro6y
    @user-ur6fl7ro6y Рік тому

    Really excellent video thank you so much :)

    • @MattAllford
      @MattAllford  Рік тому

      You are most welcome! Thanks so much for letting me know you enjoyed the content :)

  • @SnoopBok
    @SnoopBok Рік тому

    I love this video, it gives me a very clear understanding of Azure Load Testing. Thank you 🙂
    PS: what application do you use to draw arrows and stuff while presenting?

    • @MattAllford
      @MattAllford  Рік тому +1

      Thanks for the comment, glad it was helpful!
      For the markup tool, this one is called ZoomIt, which is part of the Microsoft Sysinternals utilities.

    • @SnoopBok
      @SnoopBok Рік тому

      @@MattAllford Thanks for you reply, really appreciate it. Nice tool to use when giving demos 🙂

  • @saurabhsrivastav902
    @saurabhsrivastav902 Рік тому +1

    Thank you so much for the video.. Could you also explain about AWS Distribution load test? Would be helpful.. :)

    • @MattAllford
      @MattAllford  Рік тому

      Hey @saurabhsrivastav902, thanks for the comment! I'm not familiar with AWS sorry, hopefully there's some other content out there to help!

  • @prateekbansal9774
    @prateekbansal9774 10 місяців тому

    Very informative 👏🏽

  • @ahande123
    @ahande123 7 місяців тому +1

    Great video Matt.
    Is there a Q&A board for asking questions on Azure load test? The Microsoft Q&A board for Azure load testing is dead.
    I have several issues with my JMeter script that works well locally with no issues but chokes in Azure load test.
    The documentation is useless. There are no examples / documentation on how to ensure that cookies are extracted and passed in with every subsequent request after logging in.
    I have an HTTP cookie manager at the plan level in the JMX and that works great and I can test all areas of the website.
    But since the cookie extraction doesn't work, I can't get past the login process in Azure load test.
    No help to be found anywhere.
    Azure load test is not ready for prime time.

    • @MattAllford
      @MattAllford  7 місяців тому +1

      Thanks for watching!
      Sorry to hear the docs are falling short. Do you have an active subscription with a support agreement? It could be worth opening a service request via the Azure Portal.
      Otherwise, I believe the team moved from GitHub issues over to the VS developer community for load testing ideas, feedback, and issues. URL is below, I hope this helps!
      developercommunity.visualstudio.com/loadtesting

  • @zamarinen
    @zamarinen Рік тому

    Tip for a video
    Powershell Pestor for testing (Unit, Validation etc)

  • @kumark-co9ei
    @kumark-co9ei 10 місяців тому

    Thankyou for posting the video.
    in the test criteria
    when i add 10 metrics in load test getting pass failure can't have 10 metrics points
    can you pls help on this

    • @MattAllford
      @MattAllford  9 місяців тому

      No worries, hopefully it was helpful!
      I haven’t come across that issue before sorry.

  • @Sonradan-Gorme
    @Sonradan-Gorme Місяць тому +1

    Hi Matt, Thank you for great content. I get an "MalformedURLException" error after running tests with an jmx file. Do you have any idea about this?

    • @MattAllford
      @MattAllford  Місяць тому

      I haven’t come across that myself, sorry. There seems to be a bit of information about that error and JMX files. Have you gotten far with general troubleshooting or even with a LLM like ChatGPT?

    • @sharry87
      @sharry87 Місяць тому

      I also got MalformedURLExpception. I used your sample directly and used it from git. It appears as if somehow environment variables are not picking up. Checked UDVs it is correct. Any settings in Azure to somehow let it pick?

  • @user-wo5vr6jj3m
    @user-wo5vr6jj3m Рік тому +1

    Hi @Matt
    Another issue - Unable to upload JMeter script which works fine in local system
    While trying to upload the JMeter script in Test plan tab of Azure load testing service, it throws the following error “The uploaded JMeter script is invalid. Please remove it, and upload a valid script.” But the script is working fine in local system. Please let me know what would be causing this issue?

    • @MattAllford
      @MattAllford  Рік тому

      Hi there!
      Unfortunately I’ve got no idea, sorry. I’d recommend logging a support request with Microsoft, or reporting the issue in the community below (I noticed they redirect you here now from the Azure Load Testing GitHub repository).
      Hope this helps!
      developercommunity.visualstudio.com/loadtesting/report

  • @nikhil.kamboj
    @nikhil.kamboj 18 днів тому

    very informative videos!
    can we generate .jtl file if we are running test in azure?

    • @MattAllford
      @MattAllford  17 днів тому +1

      Thanks for the feedback!
      Good question - I’m honestly not sure. I don’t think that functionality was there when this video was released, but it may be today.
      Alternatively leveraging LLMs to create the files is a great use of that technology.

    • @nikhil.kamboj
      @nikhil.kamboj 17 днів тому

      @@MattAllford thanks will try

  • @user-ht4mn2ud1o
    @user-ht4mn2ud1o 8 місяців тому

    Hi quick query:
    When the test engines are running will they bring down the performance of the actual app service where my app is hosted ? ( trying to understand if these load tests would hamper user experience using the website at the same time )

    • @MattAllford
      @MattAllford  8 місяців тому

      Howdy.
      Yes, this is a live load test against the target endpoint you provide when performing the test, so it will generate real load and therefore impact the performance. It's not a simulation, it is real load hitting the target.
      So you're right in thinking through whether you'd want to do this against, say, a production endpoint, or maybe have another environment that is used for load testing, with the same architecture as your production site, but doesn't have active users that will be impacted by the test.

    • @user-ht4mn2ud1o
      @user-ht4mn2ud1o 8 місяців тому

      The catch I see with creating a separate environment is paying for the 1 instance even when load testing is not being performed. In my research, the one way I've noticed this can be tackled with is by using Azure Container apps that have the ability to go down to 0 instance ( no charge ) when not in use, and an autoscaling can be put in place for it to scale to 1 instance or more once the requests start coming in ( the only issue I see here is the initial requests the load test would send would fail with a 503 as there wouldn't be an instance available to service them ? ). Not an ideal solution, however let me know if a different method comes to your mind. Thanks a bunch for the response, great video ! :)@@MattAllford

    • @MattAllford
      @MattAllford  8 місяців тому +1

      @@user-ht4mn2ud1o​​⁠I’m glad you enjoyed the video!
      This is really one of those “it depends” kind of things, but I really do mean that.
      If the infrastructure isn’t too large and complex, maybe you can deploy it via pipelines using Infrastructure as Code, deploy the application, load test against that environment, and then delete the environment. This could all be done using pipelines such as Azure DevOps or GitHub Actions.
      A lot of customers I work with will typically have multiple environments, so they will usually have a test/dev/staging/uat/whatever environment, separate to production, and one of those environments can (usually) be leveraged to run load tests against.
      Or as you said, if the endpoint is running in infrastructure like serverless functions or container apps that could be scaled to 0, maybe you can have a pipeline that scales it up, potentially even pauses if the app needs a little bit of time to get “warm”, and then your load test could be invoked in that same pipeline.

  • @ruppicool1
    @ruppicool1 Рік тому

    amazing...

  • @AbbeyLingord
    @AbbeyLingord Рік тому

    Can I tests services running on azure Kubernetes without exposing them to the outside?

    • @MattAllford
      @MattAllford  Рік тому

      Yep, you should be able to do that by deploying Azure Load Testing in to your VNET - learn.microsoft.com/en-us/azure/load-testing/how-to-test-private-endpoint

  • @RobertWilson-jh4nj
    @RobertWilson-jh4nj Рік тому

    Hi. Apologies if this is a simple question, but I'm confused over the multiple Homepage lines on the graphs. There's a line for Homepage, a line for Homepage -0 and a line for Homepage -1. Can you explain what the difference is? I don't think you mentioned it in your video, but possibly I missed it

    • @MattAllford
      @MattAllford  Рік тому

      Hi there. From memory that might refer to the name of the client side metrics resource (the workers / engine), or maybe the name of the test that is being defined in the jmeter file.
      Edit: If you freeze the video @34:41, you'll see in the filters at the top that you can filter by "Requests" (currently set to "All"), and I believe "Homepage" is the name of the request being defined in the test, and is being incremented by the number of threads.
      Edit2: Ignore the above :D Did some digging and correct info is below in another comment.

    • @RobertWilson-jh4nj
      @RobertWilson-jh4nj Рік тому

      @@MattAllford Thanks for your reply!
      I can filter the request like you said, that’s not a problem. It just throws me slightly when I can run a simple test through jmeter alone to measure response time to a URL and create a listener for a Response time graph with only one line for speed over time, but then when I upload the exact same jmeter test in Azure Load Testing and end up with 3 different lines on the graph as stated…
      Filtering is fine, but without knowing which line to trust it’s hard to know what to filter.

    • @MattAllford
      @MattAllford  Рік тому

      Hey @user-ht4tq2hx2c!
      Totally get what you are saying.
      So I did some testing, and I think that you get a number of different requests to filter on, based on the endpoint you are testing. For example, in my scenario where I was testing my own blog, the JMETER configuration was actually just going to the root of the website, using http (not https). But my website has a 301 redirect from http to HTTPS, and the JMETER configuration was told to follow redirects, so this ended up in "multiple requests", even though I was only testing one endpoint in the configuration.
      I found that if I changed the "HTTPSampler.protocol" configuration and specified HTTPS, the metrics in Azure Load Testing changed from showing 3 requests, to 1. You will get some insight in to what is happening with your requests if you download the results in CSV format from a test, but I suspect something similar is happening for you?
      Hope that helps.

    • @RobertWilson-jh4nj
      @RobertWilson-jh4nj Рік тому

      @@MattAllford hi Matt, sorry for the late late reply
      I did what you said, specified https and it worked and gave one clear line instead of several. It makes a bit more sense now why there were multiple before. It’s still interesting to see the difference between Azure load testing and Jmeter alone when using the same plan. But I’m happy now anyways. So thanks for your help, your assistance was much appreciated 🙂

    • @MattAllford
      @MattAllford  Рік тому

      Thanks mate! I appreciate the comment and question, it made me go back and do a bit of digging! It’s now something I’ll make sure to point out in future presentations on Azure Load Testing as well

  • @ankitavaradkar6993
    @ankitavaradkar6993 3 місяці тому +1

    Whenever I am running the test in Azure Load test, getting error of Resource Not Found

    • @MattAllford
      @MattAllford  Місяць тому

      Hi there. Apologies, I missed this comment. I’m not sure what is going on, sorry. Are you able to engage Azure support to help troubleshoot?

  • @vikashplayer
    @vikashplayer Рік тому

    How to perform load testing of an azure web app with Azure AD authentication?

    • @MattAllford
      @MattAllford  Рік тому

      Hi @vikashplayer, looks like this might be what you're after? techcommunity.microsoft.com/t5/apps-on-azure-blog/authentication-with-azure-load-testing-series-azure-active/ba-p/3718002

  • @sharry87
    @sharry87 Місяць тому

    One of the best!!

  • @user-wo5vr6jj3m
    @user-wo5vr6jj3m Рік тому

    Hi Matt, Thanks for this video. But I'm facing several issues while uploading jmeter script and running scripts with CSV data config.
    Could you pls help? Below are the two issues i'm facing.
    Test run failed due to error in test run configuration:
    I have a JMeter script with csv data config and added necessary plugins , but still im getting the same Failure error. The test seems to be executing for long time and later it shows as failed. “Test run failed due to error in test run configuration. Please try again. If the issue persists, please raise a support ticket along with the test run id.”
    Whereas if i run a sample script without any CSV data files, it is running and the test is passed. Why these differences?
    do we have configure anything else while running with CSV data file? I’m trying to create a framework for my organization using Azure Load testing service, is it reliable to create one? Please help
    I have double checked by disabling csv data config and hardcoded the param values. still it says executing. The difference between the script that is working vs script that is not working is, one uploads the file and other one is basic login script.
    Where is the issue here?
    Let me add another issue in a separate comment. Please do help me to debug this issue.

    • @MattAllford
      @MattAllford  Рік тому

      Hi there, and thanks for watching!
      Unfortunately I don’t have the capacity to help with issues like this. If there are quick things I know the answer to, I’m usually ok to try and help, but this one seems rather specific and I just don’t have the bandwidth sorry.
      What I would suggest is:
      Checking the docs on reading CSV data, make sure to follow the note about CSV headers - learn.microsoft.com/en-us/azure/load-testing/how-to-read-csv-data?pivots=experience-azp
      Take a look at the troubleshooting docs to see if there are any other logs that can help you pin point the issue - learn.microsoft.com/en-us/azure/load-testing/how-to-troubleshoot-failing-test?tabs=portal
      Try logging your issue on the Azure load test GitHub page - github.com/microsoft/azure-load-testing/issues
      Hopefully that helps!

    • @user-wo5vr6jj3m
      @user-wo5vr6jj3m Рік тому

      @@MattAllford one kind request/help, do we need to add anything additionally in azure load testing service for JMeter script that uploads a document to website?

  • @luiswonder2101
    @luiswonder2101 3 місяці тому

    Azure downloads are very slow, i am trying to download a 5.5GB archive and i am getting 150 kbs download per second.... :/, I DONT RECOMMEND AZURE.

  • @rocketleague685
    @rocketleague685 10 місяців тому

    Great video, I wished you had shared the jmx files too which you used in demo to try out the operations easily :)
    @MattAllford

    • @MattAllford
      @MattAllford  10 місяців тому +1

      Hey there, thanks for watching!
      The jmx were shared, there is a link in the description :) Here it is again though - gist.github.com/mattallford/afd3da52a5adb2ad93c8462f477e39ca
      Hope that helps!

    • @rocketleague685
      @rocketleague685 10 місяців тому +1

      @@MattAllford oh thank you, i wasn't expecting a response, forget about such a fast response. I was struggling with key vault - get secret call. But I was trying that for a secret parameter unlike getting the header for function app. It does not recognise the key... However, if i use simple get environment call it does pull out the key vault secret and pass it as parameter to https request. Your http header with key vault call will be very helpful now with available jmx. Thanks 🙏

    • @MattAllford
      @MattAllford  10 місяців тому +1

      No worries at all! I'll always endeavor to reply to people where I can, that's what this is all about!
      Let me know how you get on - hopefully having access to the jmx files helps you figure out the key vault retrieval.