volt-test/laravel-performance-testing
Laravel Performance Testing
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, per-virtual-user session handling, one-call CSRF token extraction, 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
- Sessions & CSRF — Cookies and sessions handled automatically per virtual user; CSRF is one call,
extractCsrfToken()
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.
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v1.3.3 | ^8.2 | ^11.0| | MIT | |
| v1.3.2 | ^8.2 | ^11.0| | MIT | |
| v1.3.1 | ^8.2 | ^11.0| | MIT | |
| v1.3.0 | ^8.2 | ^11.0| | MIT | |
| v1.2.0 | ^8.2 | ^10.0| | MIT | |
| v1.1.0 | ^8.2 | ^10.0| | MIT | |
| v1.0.0 | ^8.2 | ^10.0| | MIT |
Pre-releases (6)
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 0.0.6-beta | ^8.2 | ^10.0| | MIT | |
| 0.0.5-beta | ^8.2 | ^10.0| | MIT | |
| 0.0.4-beta | ^8.2 | ^12.0 | MIT | |
| 0.0.3-beta | ^8.2 | ^12.0 | MIT | |
| 0.0.2-beta | ^8.2 | ^12.0 | MIT | |
| 0.0.1-beta | ^8.0 | ^8.0| | MIT |