Що таке тестування навантаження? (Приклади)
⚡ Розумний підсумок
Тестування навантаження вимірює, як поводиться програмний застосунок, коли багато користувачів одночасно звертаються до нього, аж до очікуваного піку. Воно визначає максимальну операційну потужність, вузькі місця, що її обмежують, та чи є поточна інфраструктура достатньою.

Що таке тестування навантаження?
Тестування навантаження це нефункціональний процес тестування програмного забезпечення, під час якого продуктивність програмного додатку перевіряється під певним очікуваним навантаженням. Він визначає, як програмне забезпечення поводиться під час одночасного доступу кількох користувачів. Метою навантажувального тестування є покращення вузьких місць продуктивності та забезпечення стабільності та безперебійної роботи програмного додатку перед розгортанням.
Це тестування зазвичай визначає –
- Максимальна продуктивність програми
- Визначте, чи достатньо поточної інфраструктури для запуску програми
- Стійкість програми щодо пікового навантаження користувача
- Кількість одночасних користувачів, яких може підтримувати програма, і масштабованість, щоб надати до неї доступ більшій кількості користувачів.
Це різновид нефункціонального тестування. У розробці програмного забезпечення тестування навантаження зазвичай використовується для клієнт/серверних веб-додатків – як інтранету, так і Інтернету.
Навіщо потрібне тестування навантаження?
Деякі надзвичайно популярні сайти зазнали серйозних збоїв, коли вони отримали величезний обсяг трафіку. Веб-сайти електронної комерції інвестують значні кошти в рекламні кампанії, але не в тестування навантаження, щоб забезпечити оптимальну продуктивність системи, коли цей маркетинг приносить трафік.
Приклади навантажувального тестування
- Toysrus.com не зміг впоратися з трафіком, який генерувала власна рекламна кампанія, втративши як маркетингові витрати, так і продажі, які мав генерувати.
- Веб-сайт авіакомпанії не міг обслуговувати понад 10000 XNUMX користувачів під час фестивальної пропозиції.
- Encyclopedia Britannica оголосила безкоштовний доступ до своєї онлайн-бази даних як акційну пропозицію. Вони тижнями не встигали за натиском трафіку.
Багато сайтів страждають від затримки завантаження, коли вони стикаються з великим трафіком. Кілька фактів –
- Кількість відмов різко зростає після завантаження сторінки приблизно через 3 секунди, і цей вплив посилюється на мобільні з’єднання.
- Повільні сторінки коштують сайтам електронної комерції вимірного доходу за кожне відвідування, тому продуктивність розглядається як бізнес-метрика, а не технічна.
Навіщо тестувати навантаження?
- Тестування навантаження дає впевненість у системі та її надійності та продуктивності.
- Тестування навантаження допомагає виявити вузькі місця в системі в сценаріях інтенсивного стресу користувача ще до того, як вони виникнуть у робочому середовищі.
- Навантажувальне тестування дає чудовий захист від низької продуктивності та включає додаткові стратегії керування продуктивністю та моніторингу виробничого середовища.
Цілі навантажувального тестування
Завантажувальне тестування визначає такі проблеми перед переміщенням програми на ринок або виробництво:
- Час відповіді для кожної транзакції
- Працездатність компонентів системи при різних навантаженнях
- Продуктивність компонентів БД при різних навантаженнях
- Затримка мережі між клієнтом і сервером
- Проблеми розробки програмного забезпечення
- Проблеми з конфігурацією сервера, наприклад веб-сервера, сервера додатків, сервера бази даних тощо.
- Проблеми з апаратними обмеженнями, як-от максимізація ЦП, обмеження пам’яті, вузьке місце в мережі тощо.
Навантажувальне тестування визначить, чи потрібно тонко налаштувати систему чи модифікувати апаратне та програмне забезпечення для підвищення продуктивності. Для ефективного проведення навантажувального тестування можна використовувати різні засоби тестування продуктивності які доступні, щоб допомогти вам визначити сфери, які потрібно покращити.
Передумови навантажувального тестування
Основним показником для тестування навантаження є час відгуку. Перш ніж почати тестування навантаження, ви повинні визначити –
- Чи час відповіді вже виміряно та порівняно – кількісно
- Чи застосовний час відповіді до бізнес-процесу – Релевантно
- Чи є час відповіді виправданим – реалістичним
- Чи досяжний час відповіді – досяжний
- Незалежно від того, чи можна виміряти час відповіді за допомогою інструменту чи секундоміра – можна вимірювати
Налаштування середовища перед навантажувальним тестуванням
| апаратна платформа | Конфігурація програмного забезпечення |
|---|---|
|
|
Стратегії навантажувального тестування
Існує багато способів виконання навантажувального тестування. Нижче наведено кілька стратегій навантажувального тестування.
- Ручне тестування навантаження: Це одна зі стратегій виконання навантажувального тестування, але вона не дає повторюваних результатів, не може забезпечити вимірні рівні навантаження на програму, і цей процес неможливо координувати.
- Власно розроблені засоби тестування навантаження: організація, яка усвідомлює важливість навантажувального тестування, може створювати власні інструменти для виконання навантажувальних тестів.
- Інструменти навантажувального тестування з відкритим кодом: Є кілька безкоштовних інструментів тестування навантаження, доступних у відкритому коді. Вони можуть бути не такими складними, як їхні платні аналоги, але якщо у вас обмежений бюджет, вони є найкращим вибором.
- Інструменти навантажувального тестування корпоративного класу: вони зазвичай мають функцію захоплення/відтворення. Вони підтримують велику кількість протоколів. Вони можуть імітувати надзвичайно велику кількість користувачів.
Як виконати тестування навантаження
Процес навантажувального тестування можна коротко описати так:
- Створіть виділений Тестове середовище для тестування навантаження
- Визначення сценаріїв навантажувальних тестів
- Визначення транзакцій тестування навантаження для програми
- Підготуйте дані для кожної транзакції
- Необхідно передбачити кількість користувачів, які мають доступ до системи
- Визначте швидкість підключення. Деякі користувачі можуть бути підключені через виділені лінії, тоді як інші можуть використовувати віддалений доступ
- Визначте різні браузери та операційні системи, якими користуються користувачі
- Конфігурація всіх серверів, таких як веб-сервери, сервери додатків і бази даних
- Виконання тестового сценарію та моніторинг. Збір різноманітних показників
- Проаналізуйте результати. Дайте рекомендації
- Налаштуйте систему
- Повторний тест
Керівні принципи щодо навантажувального тестування
- Навантажувальне тестування слід планувати, коли програма стане функціонально стабільною.
- У пулі даних має бути готова велика кількість унікальних даних
- Для кожного сценарію або скриптів слід визначити кількість користувачів
- Уникайте створення детальних журналів, щоб зберегти дисковий простір вводу-виводу
- Намагайтеся уникати завантаження зображень на сайті
- У процесі виконання тестових випадків навантажувального тестування слід реєструвати постійність часу відповіді протягом періоду, що минув, і порівнювати його з різними тестовими прогонами.
Різниця між навантаженням і стрес-тестуванням
| Тестування навантаження | Стрес-тестування |
|---|---|
| Навантажувальне тестування визначає вузькі місця в системі під різними навантаженнями та перевіряє, як система реагує на поступове збільшення навантаження | Стрес-тестування визначає точку руйнування системи, щоб виявити максимальну точку, після якої вона ламається. |
| Щоб розпізнати верхню межу системи, установіть програму SLA та перевірте, як система справляється з великим навантаженням. | Щоб перевірити, як система поводиться під екстремальним навантаженням і як вона відновлюється після збою. |
| Головною метою навантажувального тестування є збільшення навантаження на веб-додаток. | Стрес-тестування спрямоване на те, щоб за умови раптового високого навантаження протягом значного часу сервери не виходили з ладу. |
| Атрибути, які перевіряються під час навантажувального тесту, це максимальна продуктивність, кількість серверів і час відгуку. | Цей вид тестування перевіряє час відгуку стабільності тощо. |
| У тестуванні навантаження обмеження навантаження є порогом розриву. | У стрес-тестуванні межа навантаження вище порогу розриву. |
Різниця між функціональним і навантажувальним тестуванням
| Функціональне тестування | Тестування навантаження |
|---|---|
| Результати функціональних тестів легко передбачити, оскільки у нас є відповідні кроки та визначені попередні умови | Результати навантажувальних тестів непередбачувані |
| Результати функціональних проб відрізняються незначно | Результати навантажувальних тестів сильно відрізняються |
| Періодичність виконання Функціональне тестування буде високим | Частота виконання навантажувального тестування буде низькою |
| Результати функціональних випробувань залежать від даних випробувань | Тестування навантаження залежить від кількості користувачів. |
Інструменти тестування навантаження
LoadRunner
LoadRunner, спочатку від HP, а тепер частина OpenText Після придбання Micro Focus тестує програми за нормального та пікового навантаження. Він генерує навантаження через віртуальних користувачів, які емулюють реальний мережевий трафік, та повідомляє про результати у графічному вигляді.
Читайте більше в Підручник з LoadRunner.
Apache JMeter
З відкритим вихідним кодом Java інструмент і найпоширеніший безкоштовний варіант. Він підтримує HTTP, JDBC, JMS, FTP та інші, зберігає плани тестування у форматі XML та інтегрується в конвеєри неперервної інтеграції. Див. JMeter підручник для ознайомлення.
Гетлінг
Інструмент з відкритим кодом, тести якого написані як код на Scala або JavaВін забезпечує високий рівень паралельності на скромному обладнанні та створює детальні HTML-звіти, що підходить командам, які віддають перевагу тестовим сценаріям з контролем версій.
k6
Інструмент з відкритим кодом та тестами, написаними мовою JavaСкрипт, розроблений для тестування продуктивності, яке власне розробнику, всередині конвеєра неперервної інтеграції, а не як окрема діяльність з контролю якості.
Вибір інструменту
Pick JMeter для найширшого охоплення протоколів безкоштовно, Gatling або k6, коли команда хоче, щоб тести зберігалися в системі контролю версій разом із застосунком, та комерційний інструмент, такий як LoadRunner, коли підтримка корпоративних протоколів та допомога постачальників виправдовують ліцензію.
Переваги та недоліки навантажувального тестування
Переваги навантажувального тестування:
- Виявлення вузьких місць продуктивності перед виробництвом
- Покращує масштабованість системи
- Зведіть до мінімуму ризики, пов'язані з простоєм системи
- Зниження витрат на невдачу
- Підвищити задоволеність клієнтів
Недоліки навантажувального тестування:
- Більшість інструментів вимагають знань програмування для написання реалістичних сценаріїв.
- Інструменти можуть бути дорогими, оскільки ціна залежить від кількості підтримуваних віртуальних користувачів.
Ключові показники для відстеження під час навантажувального тесту
У розділі «Передумови» час відгуку встановлюється як головний показник. На практиці звіт про тестування навантаження потребує шестизначного числа, оскільки сам лише час відгуку не може сказати, чому система сповільнилася.
| Metric | Що це вам говорить | Попереджувальний знак |
|---|---|---|
| Середній час відгуку | Типовий користувацький досвід | Підвищення зі збільшенням навантаження |
| Час відповіді 95-го процентиля | Досвід найповільніших користувачів | Набагато вище середнього |
| Пропускна здатність | Запитів, успішно оброблених за секунду | Сплющення або падіння під час підйому вантажу |
| Частота помилок | Частка невдалих або запитів, що минули за часом | Будь-яке підвищення вище узгодженого порогу |
| Одночасні користувачі | Фактично досягнуто одночасних сесій | Нижче, ніж передбачалося за сценарієм |
| Використання ресурсів сервера | Запас потужності процесора, пам'яті, дискового простору та мережі | Будь-який ресурс вище приблизно 80 відсотків |
Пропускна здатність читання разом із часом відгуку. Збільшення часу відгуку зі зростанням пропускної здатності просто означає, що система більш завантажена. Збільшення часу відгуку з падіння пропускна здатність означає, що він перевищив свою ємність і тепер втрачає роботу, і саме для цього існує тест.
Ніколи не повідомляйте лише середнє значення. Середнє значення 900 мс з 95-м процентилем 1.1 секунди описує стабільну систему. Таке ж середнє значення з 95-м процентилем 11 секунд означає, що один користувач з двадцяти має неприйнятний досвід, який приховує середній показник.
Як цей тест порівнюється з іншими тестами продуктивності
Тестування продуктивності – це сімейство тестів, які відрізняються формою прикладеного навантаження, тому їх так легко сплутати.
| Тип тесту | Що збільшено | Питання, на яке воно відповідає |
|---|---|---|
| Тестування навантаженням | Одночасні користувачі, до очікуваного піку | Чи досягає він цільових показників за нормальних пікових умов? |
| Об'ємне тестування | Дані, що зберігаються в базі даних | Чи справляється воно зі зростанням набору даних? |
| Стресові випробування | Навантаження понад допустиму вантажопідйомність, до відмови | Де воно ламається і як? |
| Спайкове тестування | Завантаження, миттєво та надзвичайно | Чи виживає воно та оговтується від шоку? |
| Випробування на витривалість | Тривалість, при нормальному навантаженні | Чи знижується продуктивність з часом? |
| Випробування замочуванням | Тривалість, ресурси для перегляду | Чи є витоки пам'яті або дескрипторів? |
| Тестування стабільності | Різні умови | Чи залишається він надійним, коли умови змінюються? |
Найважливіша тут відмінність: Об'ємне тестування масштабує дані, навантажувальне тестування масштабує користувачів. Звіт, який виконується за дві секунди для десяти тисяч рядків і за дві хвилини для десяти мільйонів рядків, має проблему з обсягом, а не з навантаженням, і жодна додаткова потужність сервера її не вирішить.



