-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Rajendra Prasad Reddy Penumalli edited this page Oct 4, 2020
·
35 revisions
Performance Engineering=Performance Testing (We need to Monitor Server Performance) + Performance Analysis+Performance Tuning
* Performance Tester
* Performance Engineer
* Performance Architect
- In Performance testing, testing cycle includes:
- Requirement gathering
- Scripting
- Execution
- Result sharing
- Report generation
- Performance Engineering is a post Performance testing activity; that includes:
- Results analysis with the aim to find the performance bottlenecks
- Solution is provided to resolve the identified issues.
* Traditional Application with 3 tier architecture
* Single monolithic architecture
* Completely Micro-services architecture
* Hybrid(Monolithic architecture+ Micro-services)
* Waterfall
* Agile (Quite Challenging due to Rapid Application and Dev-ops Adaptation)
Performance testing measures the quality attributes of the system, such as salability, reliability and resource usage.
* Procedure
* UI Later
* Application Layer
* DB Layer
* Tools
* Real Use Cases
* Common Issues and Causes
* Capacity Test
* Load Test
* Stress Test
* Fail-Over Test
* Endurance Test
- monitoring requirements?
- Analysis Requirements?
- Reporting Requirements?
- Platform Requirements?
- Team Skills?
* JMeter : Java Based
* locust.io : Python Based
* k6.io : Java Script Based
- Targets and Requirements:
- Talk to stake holders (Product owners)
- Read non functional requirements SLA's
- Decide/Set SLA'S
- Test Environment
- Separate Test Execution environment which is free from noise
- Must be an exact replica of Production
- Test Strategy
- Analyze typical application usage patterns (logs will help in this)
- Plan Test for each usage pattern with identical work loads
- Brainstorm,discuss finalize load model for each type of test
- Plan to perform different geographic regions if possible and required (based on client base)
- Scripting
- Record and Create scripts
- Must add think times
- Add Assertions
- Add Co-relation for dynamic data
- Test Data
- Use production or alike data
- Use appropriate date and time functions
- Work Flow Modelling
- Design workflow for each scenario
- Environment Check
- First Manually Check and verify Application
- Execution and Monitoring and Collecting metrics
- Execute the load test
- Monitor db and web servers for CPU,RAM and Bandwidth
- Check results against Key performance indicators
- Results Analysis
- Log if any other information need
- Reporting Results
* Procedure
* UI later
* Application layer
* DB Layer
* Tools
* Profilers
* Analyzers
* Real Use Cases
* Common Issues and Causes
* Code Tuning/Refactoring
* Memory Tuning
* CPU Tuning
* IO Tuning
* Procedure
* UI later
* Application layer
* DB Layer
* Tools
* Real Use Cases
* Common Issues and Causes
* Java heap dump
* Java thread dump
* Java Memory Efficient Coding Practices
* Coding Practices to avoid
* Dead lock
* Memory Leak
* Connection Leak
* GC algorithms
* Hardware
Defining thresholds or Baselines:
- CPU percentage should never go over 60%.
- GC pause never higher than 0.7 sec,
- Memory usage is always under 70%
- Avg. Response time is always under 2 sec
- Active connections less than 300
- App-dynamics
- New relic
- https://github.com/apoorva-joshi/EmployeeManagement
- https://github.com/bezkoder/spring-boot-data-jpa-mysql
- Java-Performance-Problems-Causes: https://github.com/rajendrapenumalli/PerformanceTesting_Engineering_Notes/wiki/Java-Performance-Problems-Causes
- https://dzone.com/articles/gc-explained-parallel-collector?fromrel=true
- https://dzone.com/articles/17-essential-skills-for-growing-performance-engine
- https://dzone.com/articles/performance-engineering-2?fromrel=true
- https://dzone.com/articles/eclipse-mat-shallow-heap-retained-heap
- https://dzone.com/articles/java-heap-dump-analyzer-1
- https://dzone.com/articles/performance-engineering-the-what-why-and-hows-expl?fromrel=true
- https://dzone.com/articles/making-your-performance-engineering-more-efficient
- https://dzone.com/articles/how-to-make-your-performance-engineering-more-effi
- https://dzone.com/articles/making-your-performance-engineering-more-efficient-1
- https://www.linkedin.com/pulse/performance-roles-client-facing-projects-samson-jaykumar