Що таке тестування навантаження? (Приклади)

Тестування навантаження

Що таке тестування навантаження?

Тестування навантаження це нефункціональний процес тестування програмного забезпечення, під час якого продуктивність програмного додатку перевіряється під певним очікуваним навантаженням. Він визначає, як програмне забезпечення поводиться під час одночасного доступу кількох користувачів. Метою навантажувального тестування є покращення вузьких місць продуктивності та забезпечення стабільності та безперебійної роботи програмного додатку перед розгортанням.

Це тестування зазвичай визначає –

  • Максимальна продуктивність програми
  • Визначте, чи достатньо поточної інфраструктури для запуску програми
  • Стійкість програми щодо пікового навантаження користувача
  • Кількість одночасних користувачів, яких може підтримувати програма, і масштабованість, щоб надати до неї доступ більшій кількості користувачів.

Це різновид нефункціонального тестування. У розробці програмного забезпечення тестування навантаження зазвичай використовується для клієнт/серверних веб-додатків – як інтранету, так і Інтернету.

Необхідність тестування навантаження

Деякі надзвичайно популярні сайти зазнали серйозних збоїв, коли вони отримали величезний обсяг трафіку. Веб-сайти електронної комерції інвестують значні кошти в рекламні кампанії, але не в тестування навантаження, щоб забезпечити оптимальну продуктивність системи, коли цей маркетинг приносить трафік.

Розглянемо наступні приклади тестування навантаження

  • Популярний магазин іграшок Toysrus.com не зміг впоратися зі збільшеним трафіком, створеним їх рекламною кампанією, що призвело до втрати як маркетингових доларів, так і потенційних продажів іграшок.
  • Веб-сайт авіакомпанії не міг обслуговувати понад 10000 XNUMX користувачів під час фестивальної пропозиції.
  • Encyclopedia Britannica оголосила безкоштовний доступ до своєї онлайн-бази даних як акційну пропозицію. Вони тижнями не встигали за натиском трафіку.

Багато сайтів страждають від затримки завантаження, коли вони стикаються з великим трафіком. Кілька фактів –

  • Більшість користувачів клацають після 8-секундної затримки завантаження сторінки
  • 4.4 XNUMX$ Billion Щороку втрачається через низьку продуктивність

Навіщо тестувати навантаження?

  • Тестування навантаження дає впевненість у системі та її надійності та продуктивності.
  • Тестування навантаження допомагає виявити вузькі місця в системі в сценаріях інтенсивного стресу користувача ще до того, як вони виникнуть у робочому середовищі.
  • Навантажувальне тестування дає чудовий захист від низької продуктивності та включає додаткові стратегії керування продуктивністю та моніторингу виробничого середовища.

Цілі навантажувального тестування

Завантажувальне тестування визначає такі проблеми перед переміщенням програми на ринок або виробництво:

  • Час відповіді для кожної транзакції
  • Працездатність компонентів системи при різних навантаженнях
  • Продуктивність компонентів БД при різних навантаженнях
  • Затримка мережі між клієнтом і сервером
  • Проблеми розробки програмного забезпечення
  • Проблеми з конфігурацією сервера, наприклад веб-сервера, сервера додатків, сервера бази даних тощо.
  • Проблеми з апаратними обмеженнями, як-от максимізація ЦП, обмеження пам’яті, вузьке місце в мережі тощо.

Навантажувальне тестування визначить, чи потрібно тонко налаштувати систему чи модифікувати апаратне та програмне забезпечення для підвищення продуктивності. Для ефективного проведення навантажувального тестування можна використовувати різні засоби тестування продуктивності які доступні, щоб допомогти вам визначити сфери, які потрібно покращити.

Передумови навантажувального тестування

Основним показником для тестування навантаження є час відгуку. Перш ніж почати тестування навантаження, ви повинні визначити –

  • Чи час відповіді вже виміряно та порівняно – кількісно
  • Чи застосовний час відповіді до бізнес-процесу – Релевантно
  • Чи є час відповіді виправданим – реалістичним
  • Чи досяжний час відповіді – досяжний
  • Незалежно від того, чи можна виміряти час відповіді за допомогою інструменту чи секундоміра – можна вимірювати

Перед початком навантажувального тестування необхідно налаштувати середовище:

апаратна платформа Конфігурація програмного забезпечення
  • Серверні машини
  • Процесори
  • пам'ять
  • Зберігання дисків
  • Завантажте конфігурацію машин
  • Конфігурація мережі
  • Operating System
  • Серверне програмне забезпечення

Стратегії навантажувального тестування

Існує багато способів виконання навантажувального тестування. Нижче наведено кілька стратегій навантажувального тестування.

Стратегії навантажувального тестування

  • Ручне тестування навантаження: Це одна зі стратегій виконання навантажувального тестування, але вона не дає повторюваних результатів, не може забезпечити вимірні рівні навантаження на програму, і цей процес неможливо координувати.
  • Власно розроблені засоби тестування навантаження: організація, яка усвідомлює важливість навантажувального тестування, може створювати власні інструменти для виконання навантажувальних тестів.
  • Інструменти навантажувального тестування з відкритим кодом: Є кілька безкоштовних інструментів тестування навантаження, доступних у відкритому коді. Вони можуть бути не такими складними, як їхні платні аналоги, але якщо у вас обмежений бюджет, вони є найкращим вибором.
  • Інструменти навантажувального тестування корпоративного класу: вони зазвичай мають функцію захоплення/відтворення. Вони підтримують велику кількість протоколів. Вони можуть імітувати надзвичайно велику кількість користувачів.

Як виконати тестування навантаження

Процес навантажувального тестування можна коротко описати так:

  1. Створіть виділений Тестове середовище для тестування навантаження
  2. Визначте наступне
  3. Сценарії тестування навантаження
  4. Визначення транзакцій тестування навантаження для програми
    • Підготуйте дані для кожної транзакції
    • Необхідно передбачити кількість користувачів, які мають доступ до системи
    • Визначте швидкість підключення. Деякі користувачі можуть бути підключені через виділені лінії, тоді як інші можуть використовувати віддалений доступ
    • Визначте різні браузери та операційні системи, якими користуються користувачі 
    • Конфігурація всіх серверів, таких як веб-сервери, сервери додатків і бази даних
  5. Виконання тестового сценарію та моніторинг. Збір різноманітних показників
  6. Проаналізуйте результати. Дайте рекомендації
  7. Налаштуйте систему
  8. Повторний тест

Інструкції з навантажувального тестування

Інструкції з навантажувального тестування

  1. Навантажувальне тестування слід планувати, коли програма стане функціонально стабільною.
  2. У пулі даних має бути готова велика кількість унікальних даних
  3. Для кожного сценарію або скриптів слід визначити кількість користувачів
  4. Уникайте створення детальних журналів, щоб зберегти дисковий простір вводу-виводу
  5. Намагайтеся уникати завантаження зображень на сайті
  6. У процесі виконання тестових випадків навантажувального тестування слід реєструвати постійність часу відповіді протягом періоду, що минув, і порівнювати його з різними тестовими прогонами.

Різниця між навантаженням і стрес-тестуванням

Тестування навантаження Стрес-тестування
Навантажувальне тестування визначає вузькі місця в системі під різними навантаженнями та перевіряє, як система реагує на поступове збільшення навантаження Стрес-тестування визначає точку руйнування системи, щоб виявити максимальну точку, після якої вона ламається.
Щоб розпізнати верхню межу системи, установіть програму SLA та перевірте, як система справляється з великим навантаженням. Щоб перевірити, як система поводиться під екстремальним навантаженням і як вона відновлюється після збою.
Головною метою навантажувального тестування є збільшення навантаження на веб-додаток. Стрес-тестування спрямоване на те, щоб за умови раптового високого навантаження протягом значного часу сервери не виходили з ладу.
Атрибути, які перевіряються під час навантажувального тесту, це максимальна продуктивність, кількість серверів і час відгуку. Цей вид тестування перевіряє час відгуку стабільності тощо.
У тестуванні навантаження обмеження навантаження є порогом розриву. У стрес-тестуванні межа навантаження вище порогу розриву.

Різниця між функціональним і навантажувальним тестуванням

Функціональне тестування Тестування навантаження
Результати функціональних тестів легко передбачити, оскільки у нас є відповідні кроки та визначені попередні умови Результати навантажувальних тестів непередбачувані
Результати функціональних проб відрізняються незначно Результати навантажувальних тестів сильно відрізняються
Періодичність виконання Функціональне тестування буде високим Частота виконання навантажувального тестування буде низькою
Результати функціональних випробувань залежать від даних випробувань Тестування навантаження залежить від кількості користувачів.

Інструменти тестування навантаження

Load Runner:

Load runner — це інструмент HP, який використовується для тестування програм за умов нормального та максимального навантаження. Завантажувач генерує завантаження, створюючи віртуальних користувачів, які емулюють мережевий трафік. Він імітує використання в реальному часі, як у виробничому середовищі, і дає графічні результати.

Докладніше про Loadrunner тут.

Переваги та недоліки навантажувального тестування

Переваги навантажувального тестування:

  • Виявлення вузьких місць продуктивності перед виробництвом
  • Покращує масштабованість системи
  • Зведіть до мінімуму ризики, пов'язані з простоєм системи
  • Зниження витрат на невдачу
  • Підвищити задоволеність клієнтів

Недоліки навантажувального тестування:

  • Для використання інструментів для проведення навантажувального тесту в контексті тестування програмного забезпечення потрібні знання програмування.
  • Інструменти можуть бути дорогими, оскільки ціна залежить від кількості підтримуваних віртуальних користувачів.

Підсумки

  • Навантажувальне тестування визначається як тип тестування програмного забезпечення, який визначає продуктивність системи в умовах реального навантаження.
  • Навантажувальне тестування зазвичай покращує продуктивність вузьких місць, масштабованість і стабільність програми, перш ніж вона стане доступною для виробництва.
  • Це тестування допомагає визначити максимальну продуктивність програм, а також вузькі місця системи.
  • Тестування навантаження в тестування програмного забезпечення це важливо, тому що якщо його ігнорувати, це може спричинити фінансові втрати для організації.