Upload
codecampiasi
View
102
Download
2
Embed Size (px)
DESCRIPTION
CodeCampIasi25Oct2014
Citation preview
Scaling up using Automation and Performance testingBogdan MoloceaNess
[25th of October 2014]
What Scaling is?
The inner cube represents resource consumption that is required at any point in time
The outer cube represents potential resource deployment
Scaling is the ability of a system to handle elastic demand.
What Scaling is?
The X axis is scaling by capability or depth and the Y and Z axes are horizontal and vertical scaling
We can apply this model to hardware, software, slushware and services scaling
The “perfect” product myth
Performance
Scalability
Minimal costs
Quality
Our Journey
“Problems”• Poor user experience
• Poor performance
• Unpredictable delays
• Process crashes
• Poor Automation Framework
• Badly designed SOAP API
• High maintenance costs
• Angry end users
Solutions
AngularJS
Scala
New Automation Framework
Apache JMeter
Challenges
Skilled Scala developers
Learn the rules of the system
Build test environments
Documentation
Availability
Automation testing
Automation testing
Page Object and BDD
Performance testing
Performance testing tools
Performance testing tools
Performance testing tools
Performance testing tools
Performance testing tools
Performance Evolution
Three times slower thanthe Baseline results
Iteration 1:
We discovered and fixed a few slow DB queries.
Performance Evolution
Twice slowerIteration 2:
We introduced parallel processing logic and switched to bulk inserts into DB.
Performance Evolution
Same performance as Baseline
Iteration 3:
A major refactoring was done.
Performance Evolution
Twice slowerIteration 4:
The newly introduced defects were fixed.
Performance Evolution
Twice faster
Iteration 5:
The number of actors was increased.
Performance Evolution
Seven times faster
Iteration 6:
How we did it?• Right tools
• Reliable Automation tests
• Performance improvements
• Different settings for DB interactions
• Different settings for concurrent processing
What to remember?• Make use of automation to identify performance and scalability issues
• Involve Performance Testing early if possible
• Developers should write code having performance in mind
• Make use of any tool that can help you to deliver a performant and scalable product
Q&A
Scaling up using Automation and Performance testing
Bogdan MoloceaNess
[25th of October 2014]
Please fill the online evaluation form after event