Skip to content

v1.3.0

Choose a tag to compare

@elwafa elwafa released this 05 Jun 18:54
· 4 commits to main since this release
df2ba99

v1.3.0 — Cloud Execution, Stages, Target & Region Support

What's New in v1.3.0

Features

Cloud Execution

Run load tests on VoltTest Cloud directly from Laravel:

// Via Facade
VoltTest::target('https://api.example.com');
VoltTest::cloud();
$result = VoltTest::run();
# Via Artisan
php artisan volttest:run LoginTest --cloud
  • API key generated from volt-test.com (starts with vt_), configured via VOLTTEST_API_KEY in .env
  • Enable via CLI flag (--cloud), config (VOLTTEST_CLOUD_ENABLED=true), or programmatically
  • Interactive conflict handling when a test name already exists
  • Custom conflict resolution via setOnConflictPrompt()

Stages Support

Define ramped load profiles with multiple stages:

VoltTest::stage('1m', 50)    // Ramp to 50 VUs
    ->stage('5m', 100)       // Ramp to 100 VUs
    ->stage('1m', 0);        // Ramp down
php artisan volttest:run LoginTest --stage=1m:50 --stage=5m:100 --stage=1m:0
  • Stages are mutually exclusive with virtual_users/duration/ramp_up
  • Configurable via config file, Artisan command, or programmatically

Target URL Configuration

Set the target URL explicitly with the new target() method:

$manager->target('https://api.example.com');           // Default 30s idle timeout
$manager->target('https://api.example.com', '10s');    // Custom idle timeout
php artisan volttest:run LoginTest --target=https://api.example.com
  • Available via Facade: VoltTest::target('https://api.example.com')
  • Auto-falls back to base_url config if target() is not called
  • Generated test stubs (volttest:make) now include target() with the configured base_url

Region Distribution

Distribute load across multiple geographic regions in cloud mode:

VoltTest::regions([
    'us-east-1' => 60,
    'eu-west-1' => 40,
]);
php artisan volttest:run LoginTest --cloud --region=us-east-1:60 --region=eu-west-1:40
  • Weights must sum to 100
  • Configurable via config file, CLI, or programmatically

Name & Description Setters

Update test name and description programmatically:

VoltTest::name('My Custom Test')
    ->description('Testing the checkout flow');

Enhancements

  • Default load profile — when no --users or --stage is provided, defaults to 10 virtual users
  • resetLoadProfile() — reset load settings when switching to stages in test classes
  • Improved type safety in RunVoltTestCommand with nullable return types

Dependencies

  • Requires VoltTest PHP SDK ^1.2

Full Changelog: v1.2.0...v1.3.0