VoltTest PHP SDK: об’єднання PHP та Go для потужного тестування продуктивності

Тестування продуктивності є критично важливим для сучасної розробки веб-додатків, але знайти інструменти, які поєднують простоту використання та потужні можливості, може бути складно. Знайомтесь, VoltTest PHP SDK — інноваційне рішення, яке об’єднує зручний інтерфейс PHP із високопродуктивними можливостями Go.

pic

Краще з обох світів

VoltTest пропонує унікальний підхід до тестування продуктивності, використовуючи переваги двох мов програмування. Розробники пишуть сценарії тестування на PHP за допомогою інтуїтивно зрозумілого Fluent API (зручного API), тоді як фактичне навантажувальне тестування виконується високопродуктивним двигуном Go у фоновому режимі. Така архітектура забезпечує ідеальний баланс: знайомство та простота PHP для створення тестів у поєднанні з чудовими характеристиками продуктивності Go для їх виконання.

Основні функції

1. Інтуїтивно зрозумілий дизайн API

SDK надає зручний Fluent API, що робить створення тестів інтуїтивно зрозумілим і читабельним. Ось простий приклад:

$test = new VoltTest('User Login Flow', 'Tests user authentication process');  

$test->setVirtualUsers(10)  
 ->setDuration('1m');  

$loginScenario = $test->scenario('User Login')  
 ->autoHandleCookies();  

$loginScenario->step('Login Page')  
 ->get('http://example.com/login')  
 ->extractFromRegex('csrf_token', 'name="_token" value="(.+?)"')  
 ->validateStatus('success', 200);

2. Всеосяжні можливості тестування

  • Підтримка постачальників даних (Data Provider Support): Надання тестових даних віртуальним користувачам із зовнішніх джерел.
  • Підтримка декількох сценаріїв (Multiple Scenario Support): Створення складних тестових випадків із ваговими сценаріями.
  • Налаштування запитів (Request Customization): Повний контроль над HTTP-методами, заголовками та вмістом тіла.
  • Валідація відповідей (Response Validation): Перевірка відповідей за кодами статусу, а у наступних версіях — за JSON-шляхами або регулярними виразами.
  • Симуляція часу очікування (Think Time Simulation): Моделювання реалістичної поведінки користувачів.
  • Детальна аналітика (Detailed Metrics): Комплексна статистика продуктивності, включаючи час відповіді, рівень успішності та пропускну здатність.

3. Розширені функції

Екстрактори (Extractors)

VoltTest забезпечує кілька способів вилучення даних із відповідей:

  • JSON Path екстрактори для структурованих даних.
  • Регулярні вирази (Regex) для пошуку за шаблоном.
  • Екстрактори заголовків для HTTP-заголовків.
  • Екстрактори cookie для управління сесіями.

Валідатори (Validators)

Перевіряйте відповіді за допомогою:

  • Валідаторів статус-кодів.

Управління куками (Cookie Management)

Автоматичне управління куками робить тестування, засноване на сесіях, простим:

$scenario = $test->autoHandleCookies();  
$scenario->step('Login')  
 ->post('http://localhost:8000/login', $credentials);  
$scenario->step('Dashboard')  
 ->get('http://localhost:8000/dashboard');

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

Двигун виконання на Go пропонує кілька переваг:

  • Справжній паралелізм (True Parallelism): Goroutines у Go дозволяють ефективно обробляти одночасних віртуальних користувачів.
  • Низьке споживання ресурсів (Low Resource Usage): Мінімальні накладні витрати порівняно з чистими PHP-реалізаціями.
  • Точний час (Accurate Timing): Точний збір метрик без обмежень PHP.

1.
Масштабованість: Легко обробляйте тисячі віртуальних користувачів.

Початок роботи

Встановлення здійснюється просто за допомогою Composer:

composer require volt-test/php-sdk

SDK автоматично обробляє встановлення Go-бінарника, роблячи налаштування максимально простим.

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

Ось повний приклад тестування процесу входу з використанням тестування, заснованого на даних:

$test = new VoltTest('Login Performance Test');  

$test->setVirtualUsers(100)  
 ->setDuration('5m');  

$loginScenario = $test->scenario('User Login Flow')  
 ->autoHandleCookies();  

// Отримання сторінки входу та вилучення CSRF-токена  
$loginScenario->step('Visit Login Page')  
 ->get('https://example.com/login')  
 ->extractFromRegex('csrf_token', 'name="_token" value="(.+?)"')  
 ->validateStatus('page_load', 200);  

// Відправка форми входу  
$loginScenario->step('Submit Login')  
 ->post('https://example.com/login', [  
 '_token' => '${csrf_token}',  
 'email' => '${email}',  
 'password' => '${password}'  
 ])  
 ->validateStatus('login_success', 302);  

// Запуск тесту з відстеженням прогресу  
$result = $test->run(true);  

// Виведення результатів  
echo "Success Rate: " . $result->getSuccessRate() .n";  
echo "Average Response Time: " . $result->getAvgResponseTime() . "\n";

Більше прикладів можна знайти в документації.

Висновок

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

Буду вдячний за ваші відгуки та підтримку! Спробуйте, коли зможете: Почати роботу

Перекладено з: VoltTest PHP SDK: Bridging PHP and Go for Powerful Performance Testing

Leave a Reply

Your email address will not be published. Required fields are marked *