logo

Тестування продуктивності

У цьому розділі ми дізнаємося про тестування продуктивності, навіщо воно потрібне, типи тестування продуктивності та процес тестування продуктивності.

Нижче наведено теми, які ми розберемо в цьому розділі:

Що таке тестування продуктивності?

Це найважливіша частина нефункціонального тестування.

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

Як правило, це тестування визначає, наскільки швидко сервер відповідає на запит користувача.

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

Час реакції: Час відповіді — це час, необхідний серверу для відповіді на запит клієнта.

навантаження: Тут Load означає, що коли N-число користувачів, які одночасно використовують програму або надсилають запит на сервер за один раз.

Стабільність: Для коефіцієнта стабільності ми можемо сказати, що коли N-кількість користувачів використовують програму одночасно протягом певного часу.

Коли ми використовуємо тестування продуктивності?

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

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

Примітка. Тестування продуктивності неможливо виконати вручну, оскільки його дорогий і точний результат неможливо зберегти.

Типи тестування продуктивності

Нижче наведено типи тестування продуктивності:

powershell більше або дорівнює
    Тестування навантаження Стрес-тестування Тестування масштабованості Тестування стабільності
Тестування продуктивності

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

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

Тестування навантаження використовується для перевірки продуктивності програми шляхом застосування деякого навантаження, яке є меншим або дорівнює бажаному навантаженню, відоме як тестування навантаження.

Наприклад: На зображенні нижче 1000 користувачів є бажане навантаження , яка надається замовником, а 3/секунду є мета якого ми хочемо досягти під час виконання навантажувального тестування.

Тестування продуктивності

Стрес-тестування

Стрес-тестування — це тестування, яке перевіряє поведінку програми шляхом застосування навантаження, яке перевищує бажане.

Наприклад: Якби ми взяли наведений вище приклад і збільшили бажане навантаження з 1000 до 1100 користувачів, а ціль – 4/с. Під час виконання стрес-тестування в цьому сценарії воно пройде, оскільки навантаження більше (на 100), ніж фактичне бажане навантаження.

Тестування продуктивності

Тестування масштабованості

Перевірка продуктивності програми шляхом збільшення або зменшення навантаження в окремих масштабах (без користувача) відома як тестування масштабованості . Тестування масштабованості вгору та вниз називається тестуванням масштабованості.

Перевірка масштабованості складається з двох частин:

    Тестування масштабованості вгору Тестування масштабованості вниз

Тестування масштабованості вгору

Це тестування там, де ми збільшити кількість користувачів у певному масштабі до моменту збою. Ми будемо використовувати тестування масштабованості вгору, щоб визначити максимальну ємність програми.

Тестування масштабованості вниз

Тестування масштабованості вниз використовується, коли тестування навантаження не пройдено, тоді починається зменшення ні. користувачів у певному інтервалі поки мета не буде досягнута. Щоб було легко визначити вузьке місце (баг).

Тестування стабільності

Перевірка продуктивності програми за допомогою застосування навантаження протягом певного часу відомий як Тестування стабільності .

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

Давайте візьмемо один приклад перевірити поведінку програми, де бажане навантаження менше 1000 або дорівнює 1000 користувачів .

дискета

На зображенні нижче ми бачимо, що 100 вгору користувачів постійно збільшується, щоб перевірити максимальне навантаження , який ще називають тестування масштабованості вгору .

    Сценарій 1:Коли у нас є 1000 користувачів як бажане навантаження, а 2,7/с є цільовим часом, ці сценарії пройдуть під час виконання навантажувального тесту, оскільки під час навантажувального тестування ми зосереджуватимемося на ні. користувачів, а відповідно до вимог дорівнює 1000 користувачів.Сценарій 2:У наступному сценарії ми збільшимо бажане навантаження на 100 користувачів, а цільовий час збільшиться до 3,5сек. Цей сценарій пройде, якщо ми виконаємо стрес-тестування, оскільки тут фактичне навантаження перевищує (1100) бажане навантаження (1000).Сценарій 3:У цьому, якщо ми збільшимо бажане навантаження в три рази
    1200 → 3,5сек: [це не менше або дорівнює бажаному навантаженню, тому воно буде Невдача ]
    1300 → 4сек: [не менше або дорівнює бажаному навантаженню. тобто, Невдача ]
    1400 → Розбився
Тестування продуктивності

Примітка 1. Тестування об’єму та замочування – це тип тестування, але не тестування продуктивності.

Об'ємне тестування

Об’ємне тестування – це тестування, яке допомагає нам перевірити поведінку програми, вставляючи величезний об’єм навантаження з точки зору даних, відоме як об’ємне тестування, і тут ми зосередимося на кількості швидкостей передачі даних, ніж на кількості користувачів. .

Примітка 2:
Об’єм – це ємність, а навантаження – це кількість, тобто тестування навантаження означає ні. користувачів, а об’ємне тестування означає кількість даних.

Тестування на замочування

У цьому типі тестування ми перевірятимемо поведінку програми в середовищі, яке не підтримується протягом тривалого періоду часу, відоме як тестування затримки.

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

Процес тестування продуктивності

Тестування продуктивності неможливо виконати вручну, оскільки:

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

Процес тестування продуктивності буде завершено в такі кроки:

  • Визначте сценарії продуктивності
  • Сценарій перевірки ефективності планування та проектування
  • Налаштуйте тестове середовище та розподіліть навантаження
  • Виконайте тестові сценарії
  • Результат
  • Результат аналізу
  • Визначте вузьке місце
  • Повторний тест
Тестування продуктивності

Якщо ми виконуємо a позитивний потік процесу тестування продуктивності, він може виконувати наступний процес:

Визначте сценарії продуктивності

По-перше, ми визначимо сценарії продуктивності на основі наведених нижче факторів.

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

рядок у методах java

Найбільш критичні сценарії: Критичні сценарії означають регулярно використовувані та важливі для бізнесу програми Gmail увійти, написати, вхідні та вийти .

Величезна транзакція даних: Якщо ми маємо величезні дані, це означає, що n користувачів використовують програму одночасно.

Коли ми визначимо сценарії продуктивності, ми переходимо до наступного кроку.

Сценарій перевірки ефективності планування та проектування

На цьому кроці ми встановимо інструменти в Test Engineer Machine і отримаємо доступ до тестового сервера, а потім напишемо сценарій відповідно до тестових сценаріїв і запустимо інструмент.

Коли ми закінчимо написання сценарію, ми переходимо до наступного кроку.

Налаштуйте тестове середовище та розподіліть навантаження

Після написання тестових сценаріїв ми організуємо тестове середовище перед виконанням. А також керуйте інструментами, іншими ресурсами та розподіляйте навантаження відповідно до «шаблону використання» або зазначте тривалість і стабільність.

Виконайте тестові сценарії

Коли ми закінчимо з розподілом навантаження, ми виконаємо, перевіримо та відстежуватимемо тестові сценарії.

Результат

Після виконання тестових скриптів ми отримаємо результат тесту. І перевірте, чи відповідає результат меті за заданий час відповіді чи ні, і час відповіді може бути максимальним, середнім і мінімальним.

Якщо відповідь не відповідає необхідному часу відповіді, тоді ми підемо на негативний потік де виконає наступні дії:

Результат аналізу

Спочатку ми проаналізуємо результат тесту, чи відповідає він часу відповіді чи ні.

Визначте вузьке місце

Після цього ми визначимо вузьке місце (помилка або проблема продуктивності ). І вузьке місце може виникнути через такі аспекти, як проблема в коді, проблема з апаратним забезпеченням (жорсткий диск, RAM процесор), проблеми з мережею, і проблема з програмним забезпеченням (операційна система) . А знайшовши вузьке місце, будемо виконувати налаштування (виправлення або регулювання) щоб вирішити це вузьке місце.

Повторний тест

Коли ми виправимо вузькі місця, повторно запустіть тестові сценарії та перевірте результат, чи відповідає він необхідній меті чи ні.

Проблема виникає під час тестування продуктивності

Під час виконання тестування продуктивності програми можуть виникнути деякі проблеми, які також називаються проблема продуктивності .

Проблеми продуктивності такі:

    Проблема з часом відповіді Проблема масштабованості Вузьке місце Проблема зі швидкістю

Проблема з часом відповіді

Час відповіді означає, наскільки швидко сервер відповідає на запит клієнта. Якщо запит користувача не буде виконано протягом заданого часу відповіді, можливо, користувач втратить інтерес до конкретного програмного забезпечення чи програми. Ось чому програма або програмне забезпечення повинні мати ідеальний час відгуку для швидкої відповіді на запит користувача.

Проблема масштабованості

Проблеми з масштабованістю виникають, коли програма не може приймати n-кількість користувачів і очікувані запити користувачів одночасно. Тому будемо робити тестування масштабованості вгору (перевірте максимальну місткість програми) і тестування масштабованості вниз (коли очікуваний час не збігається з фактичним).

Вузьке місце

Вузьке місце — це неформальна назва помилки, яка виникає, коли програма обмежена одним компонентом і погано впливає на продуктивність системи.

Основними причинами вузьких місць є проблеми з програмним забезпеченням (проблеми, пов’язані з операційною системою), проблеми з апаратним забезпеченням (проблеми, пов’язані з жорстким диском, оперативною пам’яттю та процесором), і проблема кодування, тощо

Нижче наведено найпоширеніші вузькі місця продуктивності:

  • Використання пам'яті
  • Використання диска
  • Завантаження ЦП
  • Обмеження операційної системи
  • Використання мережі

Проблеми зі швидкістю

Коли ми проводимо тестування продуктивності програми, програма має бути швидшою, щоб зацікавити та привернути увагу користувача, оскільки якщо швидкість роботи програми низька, вона може втратити інтерес користувачів до програми.

Інструменти перевірки продуктивності

У нас є різні типи інструментів тестування продуктивності, доступних на ринку, де деякі є комерційними інструментами та інструментами з відкритим кодом.

Комерційні інструменти: LoadRunner[HP], WebLOAD, NeoLoad

java розділити рядок роздільником

Інструмент з відкритим кодом: JMeter

LoadRunner

Це один із найпотужніших інструментів тестування продуктивності, який використовується для підтримки тестування продуктивності для широкого діапазону протоколів, ряду технологій і прикладних середовищ.

Він швидко визначає найпоширеніші причини проблем із продуктивністю. А також точно прогнозувати масштабованість і потужність програми.

JMeter

Програмне забезпечення Apache JMeter — це інструмент із відкритим вихідним кодом, який є повністю програмою Java, розробленою для завантаження поведінки функціонального тесту та вимірювання продуктивності.

Загалом, він був розроблений для тестування веб-програм, але тепер розширений для інших тестових функцій.

Apache JMeter використовується для тестування продуктивності як для статичних, так і для динамічних ресурсів і динамічних веб-додатків.
Його можна використовувати для відтворення великого навантаження на сервер, мережу чи об’єкт, групу серверів, щоб перевірити їх міцність або проаналізувати загальну продуктивність за різних типів навантажень.

WebLOAD

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

Інструмент WebLOAD поєднує в собі продуктивність, масштабованість і цілісність як єдиний процес перевірки веб- і мобільних додатків.

NeoLoad

Neotys розробляє інструмент тестування під назвою NeoLoad. NeoLoad використовується для тестування сценаріїв тестування продуктивності. За допомогою NeoLoad ми можемо знайти вузькі місця в Інтернеті та процесі розробки мобільних додатків.

Інструмент тестування NeoLoad працює швидше, ніж традиційні інструменти.

Крім них є ще деякі інструменти Електричне навантаження, веб-інструмент стресу, LoadUI Pro, StresStimulus, LoadView, LoadNinja та RedLine13, який допомагає перевірити продуктивність програмного забезпечення або програми.