До певного періоду часу performanсe-тестування в FAVBET Tech не вважали найпріоритетнішим завданням. Іноді це призводило до того, що коли до команди QA потрапляли запити на проблеми через навантаження, їх обробляли фахівці, які лише частково орієнтувалися в напрямі.
Зараз під performance-тестування в компанії виділили окрему команду, а визначення, чи буде новий сервіс частиною highload-інфраструктури, є обов’язковим завданням кожного девменеджера.
Як будувалися ці процеси і як вони працюють зараз, у партнерському інтерв’ю про highload-системи розповідає QA Manager з FAVBET Tech Ігор Гунько.
Performance-тестування, або тестування навантаження, потрібно не всім. Коли на платформі максимум тисяча користувачів на місяць, про highload річ і близько не йде. Але якщо у вас комплексна платформа, де під капотом багато бекенд-сервісів та інтеграцій, а в пікові години ви обробляєте десятки чи сотні тисяч запитів на хвилину, варто задуматись про тестування навантаження.
Це можна робити й на початкових етапах – коли величезної кількості запитів ще немає, але вони вірогідно будуть. Варто розуміти, що фахівці цього напряму вузькопрофільні і їх важко знайти на ринку. Але вони – мастхев для комплексних продуктів, що мають витримувати highload.
Performance-тестування критично важливе, щоб забезпечувати стабільну роботу високонавантажених систем. Воно допомагає прогнозувати потенційні ризики й розраховувати конкретні показники, під якими система може працювати.
Ігор Гунько, QA Manager FAVBET Tech
Найпопулярнішими є такі види цього напряму:
Компанія FAVBET Tech дуже виросла, і з цим пов’язано багато внутрішньої перебудови: структурної й технічної. Це вплинуло і на підходи до performance-тестування.
На початку 2022-го воно було не першочерговим завданням. Іноді до нас приходили запити, але в команді не було відповідних людей зі специфічними знаннями. Тож ми підключали тих автоматизаторів, які мали хоч якийсь досвід і розуміння в інструментах, що використовують для performance-тестування.
Тепер у FAVBET Tech розуміють, що перформанс – це важливо, не тільки на рівні топменеджменту (бо якщо платформа ляже, це будуть фінансові та репутаційні втрати), але й менеджерів девкоманд. До кожного сервісу є вимога не тільки доставити його вчасно, але й оцінити, чи буде він частиною highload-інфраструктури та чи потрібне йому навантажувальне тестування до виходу у продакшн.
Інколи performance-тестувальники доєднуються до роботи паралельно з розробкою, щоб встигнути зібрати дані та підготуватися до тестування. Тобто раніше performance-тестувальники йшли до розробників, а зараз – навпаки.
Тестуванням навантаження займається команда із цього напряму. Вона невелика, складається із двох інженерів, але повноцінна та самодостатня для наших поточних потреб. Наша команда QA Performance є частиною QA-відділу, але вони вузькопрофільні фахівці. Це щось середнє між DevOps, розробником та іноді QA Automation. Це люди, які вміють програмувати, знають інструменти для проведення навантажувального тестування і розуміють специфіку того, як працюють highload-системи.
Правильно побудовані процеси дозволяють їм паралельно виконувати завдання для двох-трьох різних команд. Зазвичай це від чотирьох до шести запитів на місяць від різних сервісів платформи.
У середньому на проведення нескладного performance-тестування треба не менше ніж п’ять робочих днів, що містить повний цикл від збору вимог до фінального аналізу результатів. На складні кейси можна витратити близько місяця, але вони містять більше ніж один сценарій. Наприклад, нещодавно працювали над кейсом, що містив вісім різних перформанс-сценаріїв, які ми активно тестували майже кожен день протягом двох тижнів у різних середовищах, при цьому загальний час, за який задача дійшла до фінальних етапів тестування, тривав близько місяця.
Основний інструмент, який ми використовуємо для performance-тестування – це JMeter, оскільки він має широку підтримку протоколів і готових плагінів. Його ми використовуємо давно, тому встигли мінімізувати його недоліки.
Наприклад, він потребує багато ресурсів: чим більший сценарій, тим складніше ним управляти так, щоб він працював коректно. Але ми розвернули на AWS інструмент Rancher, за допомогою якого клонуємо необхідну кількість віртуальних серверів і на кожному виділяємо певну кількість ресурсів. Тому на кожний віртуальний сервер рівними частинами розподіляється загальне навантаження від нашого сценарію.
Якщо якийсь сценарій не вдається покрити JMeter (що буває доволі рідко), тоді використовуємо Grafana k6 – він більш гнучкий і легковісний, оскільки допомагає писати сценарії вручну на JavaScript. Колись була ідея використовувати Locust – там теж можна писати код
Отже, performanсe-тестування є життєво необхідним для таких highload-платформ, як наша. Професійні фахівці + правильно побудовані процеси + розумно налаштована інфраструктура і програмні інструменти для тестування – усе це на 100% дасть лише позитивні результати. А ще вкаже, як можна поліпшити ваші програмні продукти, які неможливо виявити звичайним ручним і автоматизованим тестуванням.
Резиденти Дія.City сплатили до бюджету понад 8 млрд грн податків в І кварталі 2025 року.…
У Китаї закликають офісних працівників не працювати надто багато — держава сподівається, що вільний час…
Експерти звертають увагу на тривожну тенденцію: люди все частіше використовують ChatGPT, щоб визначити місцезнаходження, зображене…
Компанія JetBrains випустила нову версію мультимовного середовища розробки IntelliJ IDEA 2025.1. Оновлена IDE отримала численні…
Платформа обміну миттєвими повідомленнями Discord впроваджує функцію перевірки віку за допомогою сканування обличчя. Зараз вона…
Wikipedia намагається захистити себе від тисяч різноманітних ботів-скрейперів, які сканують дані цієї платформи для навчання…