пʼятниця, 21 жовтня 2022 р.

Types of performance testing

 Load testing is testing the behavior of the application under different load conditions where multiple users access it simultaneously.

When you want to understand if your system is meeting the performance goals, this is the type of test you'll run.

Run a load test to:

  • Asses the current performance of your system under typical and peak load.
  • Can be used to simulate a normal day in your system

Stress testing is a type of performance testing used to determine the limits of the system.
The purpose of this testing is to verify the stability and reliability of the system under extreme conditions.

Run a stress test to:

  • Determine how your system will behave under extreme conditions.
  • Determine what is the maximum capacity of your system in terms of users or throughput.
  • Determine the breaking point of your system and its failure mode.

Spike testing is a variation of stress test, but it does not gradually increase the load, instead it spikes to extreme load over a very short window of time.

Run a spike test to:

  • Determine how your system will perform under a sudden surge of traffic.
  • Determine if your system will recover without manual intervention after the traffic has subsided.

Success is based on expectations. System will generally react in 1 of 4 ways:

  1. Excellent: system performance is not degrated during the surge of traffic. Response time is similar during low traffic and high traffic
  2. Good: response time is slower, but the system does not produce any errors. All requests are handled
  3. Poor: system produces errors during the surge of traffic, but recovers to normal after the traffic subside
  4. Bad: system crashes, and does not recover after the traffic has subside

Soak testing is used to validate reliability of the system over a long time. A soak test is a long-running test that is used to determine application performance and/or stability over time. An application may work well for an hour or two, and then start to experience issues. These tests are especially useful when trying to track down memory leaks or corruption.

Run a soak test to:

  • Verify that your system does not suffer from bugs or memory leaks

Capacity testing is a test to determine how many users your application can handle before either performance or stability becomes unacceptable. As usual we start performance testing from capacity testing. We find max users and throughput which server can process

Quality characteristics:

  • Response time
  • Throughput (number of requests in second) - represents the ability of the server to handle heavy load. The higher the throughput is, the better is the server performance.
  • Concurrency

Types of metrics:

  • application-side metrics (response time (average, median, min, max), throughput, error, users)
  • server-side metrics (CPU and Memory usage)

Reports:

  • jmeter generate html report
  • blazemeter
  • Taurus
  • Grafana

How to start performance testing:

  1. capacity testing (take 1000 users and big rump-up time)

зображення.png

понеділок, 2 квітня 2018 р.

Day 1: five ideas


  1. Make a list of ideas that you can add to the application
  2. Determine which new modern technologies can be used
  3. Count ROI automation
  4. Determine the testing strategy
  5. Determine the testing risks

понеділок, 20 березня 2017 р.

Checklist: Is Your Automation Future Proof?

1. Is your framework modular?
2. Are objects identified uniquily?
3. Can your framework adapt to changes?
4. Object syncronization is implemented
5. Tests have been provided with with unique test data
6. Scripts are running in a controlled state
7. Have you implemented fail-over scenarios?
8. Test scripts are independent
9. Global configuration has been implemeted
10. The tear-dow and set-up approaches are implemented in scripts
11. A separate environment is used for automation
12. The core framework and business logic are separate 
13. Does the test data reside in separate files
14. Naming and coding convention are followed
15. Re-execution logic is implemented for failed test cases
16. The execution report is informative
17. The commenting guidelines are followed in your framework
18. Logging is implemented
19. Video recording is available for re-execution of failed tests
20. CI is implemented
21. You have implemented parallel execution
22. Implement test iteration

If you answered "No" to more to mare than 4 of these questions, then your automation is not yet future-proof

From www.qasource.com

How test report should looks like


Was taken from saucelabs.com

четвер, 17 листопада 2016 р.

Static

If you make the member Static, it will be shared by all the objects which you will create. There will always be only 1 copy of the Static member in the memory, no matter how many objects you will create.

середа, 16 листопада 2016 р.

ARP

ARP (англ. Address Resolution Protocol — протокол определения адреса) — протокол в компьютерных сетях, предназначенный для определения MAC-адреса по известному IP-адресу.
Рассмотрим суть функционирования ARP на простом примере. Компьютер А (IP-адрес 10.0.0.1) и компьютер Б (IP-адрес 10.22.22.2) соединены сетью Ethernet. Компьютер А желает переслать пакет данных на компьютер Б, IP-адрес компьютера Б ему известен. Однако сеть Ethernet, которой они соединены, не работает с IP-адресами. Поэтому компьютеру А для осуществления передачи через Ethernet требуется узнать адрес компьютера Б в сети Ethernet (MAC-адрес в терминах Ethernet). Для этой задачи и используется протокол ARP. По этому протоколу компьютер А отправляет широковещательный запрос, адресованный всем компьютерам в одном с ним широковещательном домене. Суть запроса: «компьютер с IP-адресом 10.22.22.2, сообщите свой MAC-адрес компьютеру с МАС-адресом (напр. a0:ea:d1:11:f1:01)». Сеть Ethernet доставляет этот запрос всем устройствам в том же сегменте Ethernet, в том числе и компьютеру Б. Компьютер Б отвечает компьютеру А на запрос и сообщает свой MAC-адрес (напр. 00:ea:d1:11:f1:11) Теперь, получив MAC-адрес компьютера Б, компьютер А может передавать ему любые данные через сеть Ethernet.