volt-test / laravel-performance-testing
A Laravel package for performance testing with VoltTest
Package info
github.com/volt-test/laravel-performance-testing
pkg:composer/volt-test/laravel-performance-testing
Requires
- php: ^8.2
- ext-pcntl: *
- illuminate/support: ^11.0|^12.0|^13.0
- volt-test/php-sdk: ^1.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.14
- orchestra/testbench: ^9.0|^10.0|^11.0
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpunit/phpunit: ^11.5.3
Suggests
- phpunit/phpunit: Required for PHPUnit integration features.
This package is auto-updated.
Last update: 2026-06-16 06:38:16 UTC
README
A Laravel package for performance testing with the VoltTest PHP SDK. Easily create and run load tests for your Laravel applications with built-in route discovery, CSRF handling, and comprehensive reporting.
Features
- Artisan Commands — Create and run tests from the CLI
- Route Discovery — Auto-generate test scaffolds from your Laravel routes
- Target Configuration — Set the target URL explicitly or auto-detect from config
- Stages — Define ramped load profiles (ramp-up, hold, spike, ramp-down)
- Cloud Execution — Run tests on VoltTest Cloud with multi-region support
- CSV Data Sources — Drive tests with dynamic data from CSV files
- PHPUnit Integration — Run performance tests in your test suite with assertions
- CSRF & Cookie Handling — Automatic Laravel session and CSRF token management
Requirements
- PHP 8.2+
- Laravel 11, 12, or 13
- VoltTest PHP SDK ^1.2
Installation
composer require volt-test/laravel-performance-testing --dev
Publish the configuration file:
php artisan vendor:publish --tag=volttest-config
Quick Start
1. Create a test
php artisan volttest:make LoginTest
2. Define your scenario
class LoginTest implements VoltTestCase { public function define(VoltTestManager $manager): void { $manager->target('http://localhost:8000'); $scenario = $manager->scenario('Login Flow'); $scenario->step('Get Login Page') ->get('/login') ->expectStatus(200) ->extractCsrfToken(); $scenario->step('Submit Login') ->post('/login', [ '_token' => '${csrf_token}', 'email' => 'user@example.com', 'password' => 'password', ]) ->expectStatus(302); } }
3. Run the test
php artisan volttest:run LoginTest --users=10 --duration=30s
4. Direct URL testing
php artisan volttest:run https://api.example.com/health --url --users=50 --duration=1m
Documentation
For full documentation, visit docs.volt-test.com:
| Topic | Description |
|---|---|
| Installation | Setup and configuration |
| Quick Start | Get running in 5 minutes |
| Artisan Commands | volttest:make and volttest:run options |
| Creating Tests | Test structure, scenarios, steps, and route discovery |
| API Testing | Authentication flows, CRUD, and data extraction |
| Web Testing | HTML forms, CSRF tokens, and multi-step flows |
| Data-Driven Testing | CSV data sources and distribution modes |
| PHPUnit Integration | Performance assertions and server management |
| Assertions | Available performance assertions |
| Cloud Execution | Run on VoltTest Cloud with multi-region support |
| Configuration | Full config reference |
For core VoltTest PHP SDK documentation, visit docs.volt-test.com.
License
This package is open-sourced software licensed under the MIT license.
Changelog
Please see CHANGELOG for more information on what has changed recently.