Performance testing

What is performance testing?

Performance testing is a testing measure that evaluates: speed, responsiveness (throughput), stability (reliability and consistent) of a website server, network, database or application under a workload.

  • To define how the components of a system are performing in a particular situation (resource usage, scalability, reliability)
  • Types: load testing, stress testing, scalability testing
  • For example, testing is used to determine if application satisfies performance requirements (for instance system should handle up to 1000 concurrent users). And to measure stability under peak traffic events.

Metrics

  1. Response time
  2. Throughput
  3. Resource utilization
  4. Maximum load that the system can bear

Load testing (to determine how many users the system can handle)

  • Check how app behaves during normal and high loads, and determine upper level.
  • Load limit is a threshold of a break.
  • Why load testing?
    • To determine the operating capacity of an application.
    • To check out that current infrastructure is sufficient to run the application or not.
    • Numbers of concurrent users which an application can support, and scalability to allow more users to access it.

Stress testing (before big events with super high load)

  • To check out how the system behaves under extreme loads and how it recovers from failure.
  • Load limit is above the threshold of a break.
  • Why Stress Testing?
    • To make sure that the system has saved the data before crashing or not.
    • To check whether any unexpected failures do not harm the system security.
  • Stress testing is done unexpected test traffic of your website.

How to proceed

  • Requirements
  • Testing
  • Analysis
  • Tuning
  • More:
    • APIs are a great place to start
    • Load, stress testing, speed (how fast response came back)
    • Capacity and scalability (ramp up testing), response times (fixed load test) and stability (longevity test)
    • Example: a github user has 3 repos, what if user has 100 repos, what will happen, will the pages loaded fast? So, use github API to create repos.
    • Example: Black Friday on online shop but website is not available
    • There is not passed and failed
    • Testing is more about analyzing (50%)

Detailed test cases

💥The MOST comprehensive testing checklist and practices

References

SuperMade with Super