SlideShare une entreprise Scribd logo
1  sur  27
Load Testing for Startups with
artillery.io
Hassy Veldstra <h@veldstra.org>
@hveldstra
Story
• Simulating a lot of users to see how your
application behaves
Load testing
• Simulating a lot of users to see how your
application behaves
• Examples:
• Blog: a story on the front page of Reddit
• Dice.fm: Beyoncé’s gig announced
• Deliveroo: 6-9pm every day
• ASOS: Black Friday
Load testing
Goals
• Analyze performance
• How fast is it / Is it fast enough?
• Soak testing – finding memory leaks and other resource leaks
Goals
• Analyze performance
• How fast is it / Is it fast enough?
• Soak testing – finding memory leaks and other resource leaks
• Analyze reliability
• Does it degrade gracefully under stress?
• Monitoring and alerting working as intended?
Goals
• Analyze performance
• How fast is it / Is it fast enough?
• Soak testing – finding memory leaks and other resource leaks
• Analyze reliability
• Does it degrade gracefully under stress?
• Monitoring and alerting working as intended?
• Capacity testing
• Can we handle the projected load with acceptable performance with the
architecture / hardware we have?
Goals
• Analyze performance
• How fast is it / Is it fast enough?
• Soak testing – finding memory leaks and other resource leaks
• Analyze reliability
• Does it degrade gracefully under stress?
• Monitoring and alerting working as intended?
• Capacity testing
• Can we handle the projected load with acceptable performance with the
architecture / hardware we have?
• Analyze scalability
• How does the system scale if we add more servers / upgrade the
hardware? Is it linear? Where are the bottlenecks?
1. Best case latency
2. 99th percentile latency under load
3. Throughput under load
Performance Metrics
Backend Performance
Backend Performance
1. Network performance
• How long it takes for HTML/CSS/JS to download
Backend Performance
1. Network performance
• How long it takes for HTML/CSS/JS to download
2. Front-end performance
• How long it takes for it to render and display
• How it’s rendered and displayed (UI)
Backend Performance
1. Network performance
• How long it takes for HTML/CSS/JS to download
2. Front-end performance
• How long it takes for it to render and display
• How it’s rendered and displayed (UI)
3. Backend performance
• How long it takes for the server to process a
request
• npm install –g artillery
• artilery run my_test_script.json
How Artillery Works
• npm install –g artillery
• artilery run my_test_script.json
• A test script is:
1. One or more scenarios
2. One or more load phases
How Artillery Works
• ASOS:
• Load the homepage
• Run a search with some keyword
• Repeat three times:
• Pick a result at random and load the details for that product
• Add the product to basket
• Go to checkout
Scenarios
1. Create 10 virtual users every second for 3 minutes
(warm up)
2. Ramp up to 50 virtual users a second over another 3
minutes
3. Run at 50 virtual users a second for 25 minutes
Load Phases
2 hour plan
2 hour plan
1. Get an APM tool (e.g. New Relic)
2 hour plan
1. Get an APM tool (e.g. New Relic)
2. Install an error/crash-reporting (e.g. GetSentry)
2 hour plan
1. Get an APM tool (e.g. New Relic)
2. Install an error/crash-reporting (e.g. GetSentry)
3. Write a simple Artillery script (just one happy-path
from the app)
2 hour plan
1. Get an APM tool (e.g. New Relic)
2. Install an error/crash-reporting (e.g. GetSentry)
3. Write a simple Artillery script (just one happy-path
from the app)
4. Run that against dev/testing environment at a low
load
2 hour plan
1. Get an APM tool (e.g. New Relic)
2. Install an error/crash-reporting (e.g. GetSentry)
3. Write a simple Artillery script (just one happy-path
from the app)
4. Run that against dev/testing environment at a low
load
5. Success!
2 hour plan
1. Get an APM tool (e.g. New Relic)
2. Install an error/crash-reporting (e.g. GetSentry)
3. Write a simple Artillery script (just one happy-path
from the app)
4. Run that against dev/testing environment at a low
load
5. Success!
6. Ramp up gradually until the traffic is at the level you
need it to be
2 hour plan
1. Any problems? Great. Now you know and can fix
them.
2. No problems? Great. Now you know.
2 hour plan
1. Bonus: add a job to your CI to run the test every day
Q&A

Contenu connexe

Tendances

Performance testing presentation
Performance testing presentationPerformance testing presentation
Performance testing presentationBelatrix Software
 
Autoscaling Best Practices
Autoscaling Best PracticesAutoscaling Best Practices
Autoscaling Best PracticesMarc Cluet
 
Load Testing Strategy 101
Load Testing Strategy 101Load Testing Strategy 101
Load Testing Strategy 101iradari
 
Performance Testing Using JMeter | Edureka
Performance Testing Using JMeter | EdurekaPerformance Testing Using JMeter | Edureka
Performance Testing Using JMeter | EdurekaEdureka!
 
Performance testing with Jmeter
Performance testing with JmeterPerformance testing with Jmeter
Performance testing with JmeterPrashanth Kumar
 
Introduction to EC2
Introduction to EC2Introduction to EC2
Introduction to EC2Mark Squires
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing Yogesh Deshmukh
 
Performance testing
Performance testingPerformance testing
Performance testingJyoti Babbar
 
Load Testing and JMeter Presentation
Load Testing and JMeter PresentationLoad Testing and JMeter Presentation
Load Testing and JMeter PresentationNeill Lima
 
Postman 101 for Students
Postman 101 for StudentsPostman 101 for Students
Postman 101 for StudentsPostman
 
QA. Load Testing
QA. Load TestingQA. Load Testing
QA. Load TestingAlex Galkin
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesAraf Karsh Hamid
 
Introduction to AWS IAM
Introduction to AWS IAMIntroduction to AWS IAM
Introduction to AWS IAMKnoldus Inc.
 
How to Make Test Automation for Cloud-based System
How to Make Test Automation for Cloud-based SystemHow to Make Test Automation for Cloud-based System
How to Make Test Automation for Cloud-based SystemNick Babich
 
Load Testing with k6 framework
Load Testing with k6 frameworkLoad Testing with k6 framework
Load Testing with k6 frameworkSvetlin Nakov
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introMykola Kovsh
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...Postman
 
Gatling overview
Gatling overviewGatling overview
Gatling overviewViral Jain
 
Accelerate Quality with Postman - Basics
Accelerate Quality with Postman - BasicsAccelerate Quality with Postman - Basics
Accelerate Quality with Postman - BasicsKnoldus Inc.
 

Tendances (20)

Performance testing presentation
Performance testing presentationPerformance testing presentation
Performance testing presentation
 
Autoscaling Best Practices
Autoscaling Best PracticesAutoscaling Best Practices
Autoscaling Best Practices
 
Load Testing Strategy 101
Load Testing Strategy 101Load Testing Strategy 101
Load Testing Strategy 101
 
Performance Testing Using JMeter | Edureka
Performance Testing Using JMeter | EdurekaPerformance Testing Using JMeter | Edureka
Performance Testing Using JMeter | Edureka
 
Performance testing with Jmeter
Performance testing with JmeterPerformance testing with Jmeter
Performance testing with Jmeter
 
Fundamentals Performance Testing
Fundamentals Performance TestingFundamentals Performance Testing
Fundamentals Performance Testing
 
Introduction to EC2
Introduction to EC2Introduction to EC2
Introduction to EC2
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Load Testing and JMeter Presentation
Load Testing and JMeter PresentationLoad Testing and JMeter Presentation
Load Testing and JMeter Presentation
 
Postman 101 for Students
Postman 101 for StudentsPostman 101 for Students
Postman 101 for Students
 
QA. Load Testing
QA. Load TestingQA. Load Testing
QA. Load Testing
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
Introduction to AWS IAM
Introduction to AWS IAMIntroduction to AWS IAM
Introduction to AWS IAM
 
How to Make Test Automation for Cloud-based System
How to Make Test Automation for Cloud-based SystemHow to Make Test Automation for Cloud-based System
How to Make Test Automation for Cloud-based System
 
Load Testing with k6 framework
Load Testing with k6 frameworkLoad Testing with k6 framework
Load Testing with k6 framework
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
 
Gatling overview
Gatling overviewGatling overview
Gatling overview
 
Accelerate Quality with Postman - Basics
Accelerate Quality with Postman - BasicsAccelerate Quality with Postman - Basics
Accelerate Quality with Postman - Basics
 

Similaire à Load-testing 101 for Startups with Artillery.io

Testing - How Vital and How Easy to use
Testing - How Vital and How Easy to useTesting - How Vital and How Easy to use
Testing - How Vital and How Easy to useUma Ghotikar
 
Concourse Workshop
Concourse WorkshopConcourse Workshop
Concourse WorkshopVMware Tanzu
 
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan Roman
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan RomanDevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan Roman
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan RomanDevSecCon
 
Load Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWSLoad Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWSVladimir Ilic
 
PAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERPAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERNeotys
 
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...Andreas Grabner
 
Build Quality In: Stop the Line - Peter Antman
Build Quality In: Stop the Line - Peter AntmanBuild Quality In: Stop the Line - Peter Antman
Build Quality In: Stop the Line - Peter AntmanSmartBear
 
Heavenly hell – automated tests at scale wojciech seliga
Heavenly hell – automated tests at scale   wojciech seligaHeavenly hell – automated tests at scale   wojciech seliga
Heavenly hell – automated tests at scale wojciech seligaAtlassian
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
 
Testing sync engine
Testing sync engineTesting sync engine
Testing sync engineIlya Puchka
 
Creating Havoc using Human Interface Device
Creating Havoc using Human Interface DeviceCreating Havoc using Human Interface Device
Creating Havoc using Human Interface DevicePositive Hack Days
 
Intro To Puppet.Key
Intro To Puppet.KeyIntro To Puppet.Key
Intro To Puppet.KeyWork
 
Matt Eakin - The New Tester Skillset
Matt Eakin - The New Tester SkillsetMatt Eakin - The New Tester Skillset
Matt Eakin - The New Tester SkillsetQA or the Highway
 
Основы нагрузочного тестирования с инструментом Jmeter
Основы нагрузочного тестирования с инструментом JmeterОсновы нагрузочного тестирования с инструментом Jmeter
Основы нагрузочного тестирования с инструментом JmeterКомпьютерная школа Hillel
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014Amazon Web Services
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
Running & Monitoring Docker at Scale
Running & Monitoring Docker at ScaleRunning & Monitoring Docker at Scale
Running & Monitoring Docker at ScaleDatadog
 
Eric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler
 

Similaire à Load-testing 101 for Startups with Artillery.io (20)

Testing - How Vital and How Easy to use
Testing - How Vital and How Easy to useTesting - How Vital and How Easy to use
Testing - How Vital and How Easy to use
 
Concourse Workshop
Concourse WorkshopConcourse Workshop
Concourse Workshop
 
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan Roman
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan RomanDevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan Roman
DevSecCon Tel Aviv 2018 - Integrated Security Testing by Morgan Roman
 
Load Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWSLoad Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWS
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
Performance testing material
Performance testing materialPerformance testing material
Performance testing material
 
PAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERPAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLER
 
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
 
Build Quality In: Stop the Line - Peter Antman
Build Quality In: Stop the Line - Peter AntmanBuild Quality In: Stop the Line - Peter Antman
Build Quality In: Stop the Line - Peter Antman
 
Heavenly hell – automated tests at scale wojciech seliga
Heavenly hell – automated tests at scale   wojciech seligaHeavenly hell – automated tests at scale   wojciech seliga
Heavenly hell – automated tests at scale wojciech seliga
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...
 
Testing sync engine
Testing sync engineTesting sync engine
Testing sync engine
 
Creating Havoc using Human Interface Device
Creating Havoc using Human Interface DeviceCreating Havoc using Human Interface Device
Creating Havoc using Human Interface Device
 
Intro To Puppet.Key
Intro To Puppet.KeyIntro To Puppet.Key
Intro To Puppet.Key
 
Matt Eakin - The New Tester Skillset
Matt Eakin - The New Tester SkillsetMatt Eakin - The New Tester Skillset
Matt Eakin - The New Tester Skillset
 
Основы нагрузочного тестирования с инструментом Jmeter
Основы нагрузочного тестирования с инструментом JmeterОсновы нагрузочного тестирования с инструментом Jmeter
Основы нагрузочного тестирования с инструментом Jmeter
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
Running & Monitoring Docker at Scale
Running & Monitoring Docker at ScaleRunning & Monitoring Docker at Scale
Running & Monitoring Docker at Scale
 
Eric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New Contexts
 

Dernier

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 

Dernier (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 

Load-testing 101 for Startups with Artillery.io

  • 1. Load Testing for Startups with artillery.io Hassy Veldstra <h@veldstra.org> @hveldstra
  • 3. • Simulating a lot of users to see how your application behaves Load testing
  • 4. • Simulating a lot of users to see how your application behaves • Examples: • Blog: a story on the front page of Reddit • Dice.fm: Beyoncé’s gig announced • Deliveroo: 6-9pm every day • ASOS: Black Friday Load testing
  • 5. Goals • Analyze performance • How fast is it / Is it fast enough? • Soak testing – finding memory leaks and other resource leaks
  • 6. Goals • Analyze performance • How fast is it / Is it fast enough? • Soak testing – finding memory leaks and other resource leaks • Analyze reliability • Does it degrade gracefully under stress? • Monitoring and alerting working as intended?
  • 7. Goals • Analyze performance • How fast is it / Is it fast enough? • Soak testing – finding memory leaks and other resource leaks • Analyze reliability • Does it degrade gracefully under stress? • Monitoring and alerting working as intended? • Capacity testing • Can we handle the projected load with acceptable performance with the architecture / hardware we have?
  • 8. Goals • Analyze performance • How fast is it / Is it fast enough? • Soak testing – finding memory leaks and other resource leaks • Analyze reliability • Does it degrade gracefully under stress? • Monitoring and alerting working as intended? • Capacity testing • Can we handle the projected load with acceptable performance with the architecture / hardware we have? • Analyze scalability • How does the system scale if we add more servers / upgrade the hardware? Is it linear? Where are the bottlenecks?
  • 9. 1. Best case latency 2. 99th percentile latency under load 3. Throughput under load Performance Metrics
  • 11. Backend Performance 1. Network performance • How long it takes for HTML/CSS/JS to download
  • 12. Backend Performance 1. Network performance • How long it takes for HTML/CSS/JS to download 2. Front-end performance • How long it takes for it to render and display • How it’s rendered and displayed (UI)
  • 13. Backend Performance 1. Network performance • How long it takes for HTML/CSS/JS to download 2. Front-end performance • How long it takes for it to render and display • How it’s rendered and displayed (UI) 3. Backend performance • How long it takes for the server to process a request
  • 14. • npm install –g artillery • artilery run my_test_script.json How Artillery Works
  • 15. • npm install –g artillery • artilery run my_test_script.json • A test script is: 1. One or more scenarios 2. One or more load phases How Artillery Works
  • 16. • ASOS: • Load the homepage • Run a search with some keyword • Repeat three times: • Pick a result at random and load the details for that product • Add the product to basket • Go to checkout Scenarios
  • 17. 1. Create 10 virtual users every second for 3 minutes (warm up) 2. Ramp up to 50 virtual users a second over another 3 minutes 3. Run at 50 virtual users a second for 25 minutes Load Phases
  • 19. 2 hour plan 1. Get an APM tool (e.g. New Relic)
  • 20. 2 hour plan 1. Get an APM tool (e.g. New Relic) 2. Install an error/crash-reporting (e.g. GetSentry)
  • 21. 2 hour plan 1. Get an APM tool (e.g. New Relic) 2. Install an error/crash-reporting (e.g. GetSentry) 3. Write a simple Artillery script (just one happy-path from the app)
  • 22. 2 hour plan 1. Get an APM tool (e.g. New Relic) 2. Install an error/crash-reporting (e.g. GetSentry) 3. Write a simple Artillery script (just one happy-path from the app) 4. Run that against dev/testing environment at a low load
  • 23. 2 hour plan 1. Get an APM tool (e.g. New Relic) 2. Install an error/crash-reporting (e.g. GetSentry) 3. Write a simple Artillery script (just one happy-path from the app) 4. Run that against dev/testing environment at a low load 5. Success!
  • 24. 2 hour plan 1. Get an APM tool (e.g. New Relic) 2. Install an error/crash-reporting (e.g. GetSentry) 3. Write a simple Artillery script (just one happy-path from the app) 4. Run that against dev/testing environment at a low load 5. Success! 6. Ramp up gradually until the traffic is at the level you need it to be
  • 25. 2 hour plan 1. Any problems? Great. Now you know and can fix them. 2. No problems? Great. Now you know.
  • 26. 2 hour plan 1. Bonus: add a job to your CI to run the test every day
  • 27. Q&A