SlideShare ist ein Scribd-Unternehmen logo
1 von 97
Performance testing with
Visual Studio & Azure
How to test your application using the tools
you already know!
Andrew Siemer | Clear Measure
andrew@clear-measure.com
@asiemer
Andrew Siemer
http://about.me/andrewsiemer
ASP Insider
MS v-TSP (Azure)
Azure Advisor Program
Father of 6. Jack of all trades, master of some.
 We are hiring!!!
Introduction
Agenda
• What is performance testing?
• How can Visual Studio help?
• How can Azure make load testing easy?
What is
performance
testing?
What is it?
• A type of testing intended to determine
• Responsiveness
• Throughput
• Reliability
• Scalability
…under a given workload
Why would I care?
• Are you ready to go to production?
• Can you handle the expected load?
• Do you have edge case bugs?
• How much traffic causes your app to tip over?
• Do you need to optimize something?
• Have new features caused the app to support less traffic?
• Do you have enough hardware to support known load?
• What causes your application to fail spectacularly?
Three types of performance tests
• Performance testing
• Load testing
• Stress testing
Performance testing
• Speed
• Scalability
• Stability
• Achieves expected performance in general use case
• Can be run often
• Cheap to run with low volume
Load testing
• Expected performance remains steady under production load
• Assumes everything is normal
• Does the network handle this load
• Can the database handle it
• Is the application still meeting SLA and usable
Stress testing
• Pushing the application beyond expected limits
• Identifies ceilings in capacity
• Tests low memory, disk space limitations, or dead server
• Helps see how and when an application will fail
• What happens when the network gets clogged
Many other types of tests
• Capacity (system capacity meets business volume)
• Component (component meeting expectations)
• Endurance (is performance consistent over time)
• Investigation (performance trending over time)
• Smoke (build ready for perf testing)
• Spike (temporarily exceeds expected load)
• Unit (segment of code reasonably efficient)
• Validation (faster or slower)
Baselines
• A baseline tells you where the app is now
• Allows you to see change over time
• Target to demonstrates improvements
• Baselines can be created for
• System
• Component
• Application
Benchmarking
• The comparison of a current test with a baseline
• Looking for changes in the results
• Or a comparison against industry standards
• Are my commerce pages as fast as the industry expects
When to shift from testing to tuning?
• Once testing has found unacceptable results
• When results are acceptable, but servers are running extra hot
• When an SLA is breached that we know we need to fix
• Especially when it impacts a large test surface
Test planning
Before we test
• Define acceptance criteria
• Write down key scenarios
• Create workload model
• Target load levels
• Determine metrics to capture
• Design tests
Acceptance criteria
• Write down your objectives
• Response time – page load speed
• Throughput - number of concurrent users
• Resource utilization – processor, memory, disk I/O, network I/O
• Maximum user load
• Business metrics – number of orders to handle
User scenarios
• “Happy paths” through your application
• Touches many components in your system
• Commonly used paths through the application
• Highest business value paths through the application
User scenarios - examples
• Log in
• Browse catalog
• Add to cart
• Check out
• Register
• Search
• Faceted navigation
User scenarios – specific example
• For a given scenario – determine activities in the test
• The scenario “add to cart” may include these activities
• View home page
• View dirt bike category page
• Choose grips
• Add a grip to the cart
• Go to the cart
• Validate that the item is in the cart
User scenarios – most common/intensive
• Be sure to include highest use scenarios
• And include most resource intensive scenarios
• Look at your existing applications log files for top use case
Define the workload
• Know and attempt to simulate existing traffic patterns
• Understand user delay, or “think” time
• A load test should not be a denial of service attack!
• Plan scenarios around average session times
• Not too short or too long
• Not every scenario can be a new user, returning user, or either
• Plan around the reality of your application
Target load levels
• Load levels are applied to “workload”
• Understand business volume as it relates to your objectives
• Common load, vs. a big marketing push, or black Friday
• Key scenarios
• Distribution of work
• Average session times
Define what metrics to capture - business
• Too many metrics can make the results hard to read
• Ask questions related to performance that have specific answers
• How many orders are place per minute
• What is the response time of the cart page
• Identify what metrics to capture based on your questions
• Looks for lower level metrics that help answer your questions
• Reevaluate this often – applications change – so should the metrics
Define what metrics to capture - application
• Network – hardware, switches, routers, gateways, load balancers
• System – disk, processor, memory, network
• Platform – the host of your app: IIS, worker role, web role, VM
• Application – perf counters, instrumentation, file locks, db locks,
queue
Design tests
• Using your thought so far design specific tests to meet your needs
• Don’t change the tests because it is hard to write it as designed
• Test expected data as well as unexpected data (form validation, bad
credit card, etc.)
• Be sure to include think time
• Best tests data is collected from production data (where applicable)
• Think about spiders, batch processes, while real users are browsing
• Don’t over simplify your tests!
How can Visual
Studio help?
Visual Studio 2013 Ultimate
• VS feature matrix: http://goo.gl/3VtY01
• Ultimate gets you web load and performance testing
• Test Pro doesn’t get you this functionality!
Web performance
tests
The beginnings of our load testing!
The test project
Recording a test
Recording a test – uh oh!
• The first time you try to record,
IE likely won’t work
• Basically, you need to
• Disable Enhanced Protection Mode
• Enable Web Test Recorder
• Go here for full steps to fix this:
http://goo.gl/LcFNSJ
Recording a test – uh oh!
Recording a test
Recording a test
Recording a test
Verbose recording…likely too much!
Let’s clean up the recording
Pruned tests
Recorded tests cleaned up
Run the tests locally
Run the tests locally
Modifying test run settings
Making dynamic
tests
Way more useful!
Once you start seeing repetition
Consider investigating patterns in the tests
• Look for patterns in the requests
• Create a data source with variable data
• Sku’s
• Makes
• Models
• Year
• Dynamically create a wide set of tests
Adding a data source
• Once tests need to cover more…
• Or you need to create representative load…
• Types of data source
• Database – “select * from tablename”
• CSV
• XML
Create a shippable datasource
Add the data source to your project
Point at the file then magic
Choose the table to include
And then we have a data source
Update recording to use data source
Update recording to use data source
If the test only runs once…
View the dynamic results
Conditional & loop steps
• Context parameter exists (test
context)
• Cookie exists
• Cookie value comparisons
• Last request outcome
• Pass or fail
• Last response code
• http response codes
• Number comparison
• String comparison
• Probability rules
• Return true some times
• Loops
Plug ins
• Web test plug ins
• Web test request plugins
• Should be in a separate assembly
• Allows you to run code pre or post a test/request execution
• Microsoft.VisualStudio.TestTools.WebTesting
• WebTestPlugin
• WebTestRequestPlugin
Load tests
Web tests to the max!!!
• Use the web test scenarios you create
• But put the workload, load, metrics, browser mix, and other points
around them
Load test wizard
• Running the load test wizard makes life easy!
When matching transaction percentages
When matching percentage of users per test
When matching pace of user per test
When matching pace of user per test
Choose to tests to include
Set distribution for each test
Define network mix
Define browser mix
Capture computer metrics
Configure the run frequency
Ready to run!
Errors?
But wait
there’s more!
How can Azure
let you go big?
Your laptop can’t tip over production!
• Local tests are great to capture big pain points
• Or to capture simple content missing errors
• Or to run as a smoke test
Test farm in Azure is magic!
• With Visual Studio Online
• And Azure
• We can go big!
Open local test settings
Choose to run in VSO
Connect to your VSO account
Choose your team project
And run the test!
Ok, that rocks, HOW MUCH?
• Based on “Virtual Users Minutes” – VUM
• Azure calculator for load testing:
• http://goo.gl/XBrkY1
• $.0004/VUM for 20,001-2M VUM
• $.0002/VUM for 2,000,001-10M VUM
• $.0001/VUM for usage
above 10M VUM/MO
Questions?
Andrew Siemer - Clear Measure
andrew@clear-measure.com
(512) 387-1976
@asiemer

Weitere ähnliche Inhalte

Was ist angesagt? (20)

QSpiders - Introduction to JMeter
QSpiders - Introduction to JMeterQSpiders - Introduction to JMeter
QSpiders - Introduction to JMeter
 
Performance Testing Overview
Performance Testing OverviewPerformance Testing Overview
Performance Testing Overview
 
STLC
STLCSTLC
STLC
 
Apache jMeter
Apache jMeterApache jMeter
Apache jMeter
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
Api testing
Api testingApi testing
Api testing
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Performance testing presentation
Performance testing presentationPerformance testing presentation
Performance testing presentation
 
Infographic: Importance of Performance Testing
Infographic: Importance of Performance TestingInfographic: Importance of Performance Testing
Infographic: Importance of Performance Testing
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing Microservices
 
Automation testing
Automation testingAutomation testing
Automation testing
 
App Dynamics
App DynamicsApp Dynamics
App Dynamics
 
10 Benefits of Automated Testing
10 Benefits of Automated Testing10 Benefits of Automated Testing
10 Benefits of Automated Testing
 
LoadRunner Performance Testing
LoadRunner Performance TestingLoadRunner Performance Testing
LoadRunner Performance Testing
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Test automation process
Test automation processTest automation process
Test automation process
 
Serenity-BDD training
Serenity-BDD trainingSerenity-BDD training
Serenity-BDD training
 
Test your microservices with REST-Assured
Test your microservices with REST-AssuredTest your microservices with REST-Assured
Test your microservices with REST-Assured
 

Andere mochten auch

Leveraging Azure for Performance Testing
Leveraging Azure for Performance TestingLeveraging Azure for Performance Testing
Leveraging Azure for Performance TestingTarun Arora
 
Application Insights - Real time telemetry for your cross platform applications
Application Insights - Real time telemetry for your cross platform applicationsApplication Insights - Real time telemetry for your cross platform applications
Application Insights - Real time telemetry for your cross platform applicationsAbhijit Jana
 
Application Insights - Campinas .NET - Março/2017
Application Insights - Campinas .NET - Março/2017Application Insights - Campinas .NET - Março/2017
Application Insights - Campinas .NET - Março/2017Renato Groff
 
Web and load testing with Visual Studio 2010 Ultimate
Web and load testing with Visual Studio 2010 UltimateWeb and load testing with Visual Studio 2010 Ultimate
Web and load testing with Visual Studio 2010 UltimateAbhimanyu Singhal
 
Performance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWSPerformance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWSMatthias Matook
 
DevOps@Work 2017 - Application insights more control, more power
DevOps@Work 2017 - Application insights more control, more powerDevOps@Work 2017 - Application insights more control, more power
DevOps@Work 2017 - Application insights more control, more powerRoberto Albano
 
Deep-Dive to Application Insights
Deep-Dive to Application Insights Deep-Dive to Application Insights
Deep-Dive to Application Insights Gunnar Peipman
 
Introduction to Performance testing
Introduction to Performance testingIntroduction to Performance testing
Introduction to Performance testingsilviasiqueirahp
 
Performance Testing
Performance TestingPerformance Testing
Performance TestingSelin Gungor
 
Cracking the Product Manager Interview
Cracking the Product Manager InterviewCracking the Product Manager Interview
Cracking the Product Manager InterviewGayle McDowell
 

Andere mochten auch (11)

Leveraging Azure for Performance Testing
Leveraging Azure for Performance TestingLeveraging Azure for Performance Testing
Leveraging Azure for Performance Testing
 
Application Insights - Real time telemetry for your cross platform applications
Application Insights - Real time telemetry for your cross platform applicationsApplication Insights - Real time telemetry for your cross platform applications
Application Insights - Real time telemetry for your cross platform applications
 
Cloud security
Cloud securityCloud security
Cloud security
 
Application Insights - Campinas .NET - Março/2017
Application Insights - Campinas .NET - Março/2017Application Insights - Campinas .NET - Março/2017
Application Insights - Campinas .NET - Março/2017
 
Web and load testing with Visual Studio 2010 Ultimate
Web and load testing with Visual Studio 2010 UltimateWeb and load testing with Visual Studio 2010 Ultimate
Web and load testing with Visual Studio 2010 Ultimate
 
Performance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWSPerformance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWS
 
DevOps@Work 2017 - Application insights more control, more power
DevOps@Work 2017 - Application insights more control, more powerDevOps@Work 2017 - Application insights more control, more power
DevOps@Work 2017 - Application insights more control, more power
 
Deep-Dive to Application Insights
Deep-Dive to Application Insights Deep-Dive to Application Insights
Deep-Dive to Application Insights
 
Introduction to Performance testing
Introduction to Performance testingIntroduction to Performance testing
Introduction to Performance testing
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Cracking the Product Manager Interview
Cracking the Product Manager InterviewCracking the Product Manager Interview
Cracking the Product Manager Interview
 

Ähnlich wie Load testing with Visual Studio and Azure - Andrew Siemer

July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...Apica
 
Holiday Readiness: Best Practices for Successful Holiday Readiness Testing
Holiday Readiness: Best Practices for Successful Holiday Readiness TestingHoliday Readiness: Best Practices for Successful Holiday Readiness Testing
Holiday Readiness: Best Practices for Successful Holiday Readiness TestingApica
 
Bugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfBugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfNitisak Mooltreesri
 
Small is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case DesignSmall is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case DesignGeorgina Tilby
 
Performance Testing
Performance TestingPerformance Testing
Performance TestingAnu Shaji
 
Alexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingAlexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingNeotys_Partner
 
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!Richard Robinson
 
Performance tuning Grails applications
 Performance tuning Grails applications Performance tuning Grails applications
Performance tuning Grails applicationsGR8Conf
 
Loadtesting wuc2009v2
Loadtesting wuc2009v2Loadtesting wuc2009v2
Loadtesting wuc2009v2ravneetraman
 
Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Shelley Lambert
 
Performance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsPerformance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsAlexander Podelko
 
Testing in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf SoftwareTesting in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf SoftwareJosiah Renaudin
 
Integration strategies best practices- Mulesoft meetup April 2018
Integration strategies   best practices- Mulesoft meetup April 2018Integration strategies   best practices- Mulesoft meetup April 2018
Integration strategies best practices- Mulesoft meetup April 2018Rohan Rasane
 
SauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App AutomatableSauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App AutomatableSauce Labs
 
Performance tuning Grails applications
Performance tuning Grails applicationsPerformance tuning Grails applications
Performance tuning Grails applicationsLari Hotari
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comAviran Mordo
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeterBhojan Rajan
 
Laravel Load Testing: Strategies and Tools
Laravel Load Testing: Strategies and ToolsLaravel Load Testing: Strategies and Tools
Laravel Load Testing: Strategies and ToolsMuhammad Shehata
 

Ähnlich wie Load testing with Visual Studio and Azure - Andrew Siemer (20)

July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
 
JMeter
JMeterJMeter
JMeter
 
Holiday Readiness: Best Practices for Successful Holiday Readiness Testing
Holiday Readiness: Best Practices for Successful Holiday Readiness TestingHoliday Readiness: Best Practices for Successful Holiday Readiness Testing
Holiday Readiness: Best Practices for Successful Holiday Readiness Testing
 
Bugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfBugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perf
 
Small is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case DesignSmall is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case Design
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Alexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingAlexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance Testing
 
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
 
Performance tuning Grails applications
 Performance tuning Grails applications Performance tuning Grails applications
Performance tuning Grails applications
 
Loadtesting wuc2009v2
Loadtesting wuc2009v2Loadtesting wuc2009v2
Loadtesting wuc2009v2
 
Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014
 
Performance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsPerformance Assurance for Packaged Applications
Performance Assurance for Packaged Applications
 
Testing in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf SoftwareTesting in the New World of Off-the-Shelf Software
Testing in the New World of Off-the-Shelf Software
 
Integration strategies best practices- Mulesoft meetup April 2018
Integration strategies   best practices- Mulesoft meetup April 2018Integration strategies   best practices- Mulesoft meetup April 2018
Integration strategies best practices- Mulesoft meetup April 2018
 
SauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App AutomatableSauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App Automatable
 
Performance tuning Grails applications
Performance tuning Grails applicationsPerformance tuning Grails applications
Performance tuning Grails applications
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
Extreme Makeover OnBase Edition
Extreme Makeover OnBase EditionExtreme Makeover OnBase Edition
Extreme Makeover OnBase Edition
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 
Laravel Load Testing: Strategies and Tools
Laravel Load Testing: Strategies and ToolsLaravel Load Testing: Strategies and Tools
Laravel Load Testing: Strategies and Tools
 

Mehr von Andrew Siemer

20 tips for website performance
20 tips for website performance20 tips for website performance
20 tips for website performanceAndrew Siemer
 
Microservices pros and cons - houston tech fest
Microservices pros and cons - houston tech festMicroservices pros and cons - houston tech fest
Microservices pros and cons - houston tech festAndrew Siemer
 
Microservices pros and cons dark
Microservices pros and cons darkMicroservices pros and cons dark
Microservices pros and cons darkAndrew Siemer
 
Microservices pros and cons
Microservices pros and consMicroservices pros and cons
Microservices pros and consAndrew Siemer
 
Reigniting the Volusion platform
Reigniting the Volusion platformReigniting the Volusion platform
Reigniting the Volusion platformAndrew Siemer
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutesAndrew Siemer
 
Making your API behave like a big boy
Making your API behave like a big boyMaking your API behave like a big boy
Making your API behave like a big boyAndrew Siemer
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBAndrew Siemer
 
A tale of two clouds
A tale of two cloudsA tale of two clouds
A tale of two cloudsAndrew Siemer
 
Introduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationIntroduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationAndrew Siemer
 

Mehr von Andrew Siemer (10)

20 tips for website performance
20 tips for website performance20 tips for website performance
20 tips for website performance
 
Microservices pros and cons - houston tech fest
Microservices pros and cons - houston tech festMicroservices pros and cons - houston tech fest
Microservices pros and cons - houston tech fest
 
Microservices pros and cons dark
Microservices pros and cons darkMicroservices pros and cons dark
Microservices pros and cons dark
 
Microservices pros and cons
Microservices pros and consMicroservices pros and cons
Microservices pros and cons
 
Reigniting the Volusion platform
Reigniting the Volusion platformReigniting the Volusion platform
Reigniting the Volusion platform
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
 
Making your API behave like a big boy
Making your API behave like a big boyMaking your API behave like a big boy
Making your API behave like a big boy
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDB
 
A tale of two clouds
A tale of two cloudsA tale of two clouds
A tale of two clouds
 
Introduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationIntroduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregation
 

Kürzlich hochgeladen

SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 

Kürzlich hochgeladen (20)

SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 

Load testing with Visual Studio and Azure - Andrew Siemer

  • 1. Performance testing with Visual Studio & Azure How to test your application using the tools you already know! Andrew Siemer | Clear Measure andrew@clear-measure.com @asiemer
  • 2. Andrew Siemer http://about.me/andrewsiemer ASP Insider MS v-TSP (Azure) Azure Advisor Program Father of 6. Jack of all trades, master of some.
  • 3.
  • 4.  We are hiring!!!
  • 6. Agenda • What is performance testing? • How can Visual Studio help? • How can Azure make load testing easy?
  • 8. What is it? • A type of testing intended to determine • Responsiveness • Throughput • Reliability • Scalability …under a given workload
  • 9. Why would I care? • Are you ready to go to production? • Can you handle the expected load? • Do you have edge case bugs? • How much traffic causes your app to tip over? • Do you need to optimize something? • Have new features caused the app to support less traffic? • Do you have enough hardware to support known load? • What causes your application to fail spectacularly?
  • 10. Three types of performance tests • Performance testing • Load testing • Stress testing
  • 11. Performance testing • Speed • Scalability • Stability • Achieves expected performance in general use case • Can be run often • Cheap to run with low volume
  • 12. Load testing • Expected performance remains steady under production load • Assumes everything is normal • Does the network handle this load • Can the database handle it • Is the application still meeting SLA and usable
  • 13. Stress testing • Pushing the application beyond expected limits • Identifies ceilings in capacity • Tests low memory, disk space limitations, or dead server • Helps see how and when an application will fail • What happens when the network gets clogged
  • 14. Many other types of tests • Capacity (system capacity meets business volume) • Component (component meeting expectations) • Endurance (is performance consistent over time) • Investigation (performance trending over time) • Smoke (build ready for perf testing) • Spike (temporarily exceeds expected load) • Unit (segment of code reasonably efficient) • Validation (faster or slower)
  • 15. Baselines • A baseline tells you where the app is now • Allows you to see change over time • Target to demonstrates improvements • Baselines can be created for • System • Component • Application
  • 16. Benchmarking • The comparison of a current test with a baseline • Looking for changes in the results • Or a comparison against industry standards • Are my commerce pages as fast as the industry expects
  • 17. When to shift from testing to tuning? • Once testing has found unacceptable results • When results are acceptable, but servers are running extra hot • When an SLA is breached that we know we need to fix • Especially when it impacts a large test surface
  • 19. Before we test • Define acceptance criteria • Write down key scenarios • Create workload model • Target load levels • Determine metrics to capture • Design tests
  • 20. Acceptance criteria • Write down your objectives • Response time – page load speed • Throughput - number of concurrent users • Resource utilization – processor, memory, disk I/O, network I/O • Maximum user load • Business metrics – number of orders to handle
  • 21. User scenarios • “Happy paths” through your application • Touches many components in your system • Commonly used paths through the application • Highest business value paths through the application
  • 22. User scenarios - examples • Log in • Browse catalog • Add to cart • Check out • Register • Search • Faceted navigation
  • 23. User scenarios – specific example • For a given scenario – determine activities in the test • The scenario “add to cart” may include these activities • View home page • View dirt bike category page • Choose grips • Add a grip to the cart • Go to the cart • Validate that the item is in the cart
  • 24. User scenarios – most common/intensive • Be sure to include highest use scenarios • And include most resource intensive scenarios • Look at your existing applications log files for top use case
  • 25. Define the workload • Know and attempt to simulate existing traffic patterns • Understand user delay, or “think” time • A load test should not be a denial of service attack! • Plan scenarios around average session times • Not too short or too long • Not every scenario can be a new user, returning user, or either • Plan around the reality of your application
  • 26. Target load levels • Load levels are applied to “workload” • Understand business volume as it relates to your objectives • Common load, vs. a big marketing push, or black Friday • Key scenarios • Distribution of work • Average session times
  • 27. Define what metrics to capture - business • Too many metrics can make the results hard to read • Ask questions related to performance that have specific answers • How many orders are place per minute • What is the response time of the cart page • Identify what metrics to capture based on your questions • Looks for lower level metrics that help answer your questions • Reevaluate this often – applications change – so should the metrics
  • 28. Define what metrics to capture - application • Network – hardware, switches, routers, gateways, load balancers • System – disk, processor, memory, network • Platform – the host of your app: IIS, worker role, web role, VM • Application – perf counters, instrumentation, file locks, db locks, queue
  • 29. Design tests • Using your thought so far design specific tests to meet your needs • Don’t change the tests because it is hard to write it as designed • Test expected data as well as unexpected data (form validation, bad credit card, etc.) • Be sure to include think time • Best tests data is collected from production data (where applicable) • Think about spiders, batch processes, while real users are browsing • Don’t over simplify your tests!
  • 31. Visual Studio 2013 Ultimate • VS feature matrix: http://goo.gl/3VtY01 • Ultimate gets you web load and performance testing • Test Pro doesn’t get you this functionality!
  • 32.
  • 33. Web performance tests The beginnings of our load testing!
  • 36. Recording a test – uh oh! • The first time you try to record, IE likely won’t work • Basically, you need to • Disable Enhanced Protection Mode • Enable Web Test Recorder • Go here for full steps to fix this: http://goo.gl/LcFNSJ
  • 37. Recording a test – uh oh!
  • 42. Let’s clean up the recording
  • 45. Run the tests locally
  • 46. Run the tests locally
  • 47. Modifying test run settings
  • 49. Once you start seeing repetition
  • 50. Consider investigating patterns in the tests • Look for patterns in the requests • Create a data source with variable data • Sku’s • Makes • Models • Year • Dynamically create a wide set of tests
  • 51. Adding a data source • Once tests need to cover more… • Or you need to create representative load… • Types of data source • Database – “select * from tablename” • CSV • XML
  • 52. Create a shippable datasource
  • 53. Add the data source to your project
  • 54. Point at the file then magic
  • 55. Choose the table to include
  • 56. And then we have a data source
  • 57. Update recording to use data source
  • 58. Update recording to use data source
  • 59. If the test only runs once…
  • 60. View the dynamic results
  • 61. Conditional & loop steps • Context parameter exists (test context) • Cookie exists • Cookie value comparisons • Last request outcome • Pass or fail • Last response code • http response codes • Number comparison • String comparison • Probability rules • Return true some times • Loops
  • 62. Plug ins • Web test plug ins • Web test request plugins • Should be in a separate assembly • Allows you to run code pre or post a test/request execution • Microsoft.VisualStudio.TestTools.WebTesting • WebTestPlugin • WebTestRequestPlugin
  • 64. Web tests to the max!!! • Use the web test scenarios you create • But put the workload, load, metrics, browser mix, and other points around them
  • 65. Load test wizard • Running the load test wizard makes life easy!
  • 66.
  • 67.
  • 69. When matching percentage of users per test
  • 70. When matching pace of user per test
  • 71. When matching pace of user per test
  • 72. Choose to tests to include
  • 73. Set distribution for each test
  • 77. Configure the run frequency
  • 79.
  • 80.
  • 81.
  • 84. How can Azure let you go big?
  • 85. Your laptop can’t tip over production! • Local tests are great to capture big pain points • Or to capture simple content missing errors • Or to run as a smoke test
  • 86. Test farm in Azure is magic! • With Visual Studio Online • And Azure • We can go big!
  • 87. Open local test settings
  • 88. Choose to run in VSO
  • 89. Connect to your VSO account
  • 90. Choose your team project
  • 91. And run the test!
  • 92.
  • 93.
  • 94.
  • 95.
  • 96. Ok, that rocks, HOW MUCH? • Based on “Virtual Users Minutes” – VUM • Azure calculator for load testing: • http://goo.gl/XBrkY1 • $.0004/VUM for 20,001-2M VUM • $.0002/VUM for 2,000,001-10M VUM • $.0001/VUM for usage above 10M VUM/MO
  • 97. Questions? Andrew Siemer - Clear Measure andrew@clear-measure.com (512) 387-1976 @asiemer

Hinweis der Redaktion

  1. Andrew Siemer, I am an ASP Insider, part of the Microsoft virtual technology specialist program, father of 6, and general jack of all trades – master of some! I enjoy all things texas, obstacle racing, cowboying, and playing with my six kids
  2. I have written several books on the topic of programming in ASP.NET, and one more farming oriented
  3. I currently work for Clear Measure in Austin Texas. We are hiring! I have also worked for companys such as Dell, Callaway golf, and lamps plus.