Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
cf6ac88
adding CHANGELOG.md
elwafa Oct 24, 2025
62bbd69
Version 1.2.0
elwafa Oct 24, 2025
5a16437
remove feature from main release branch
elwafa Oct 24, 2025
6cd5c72
Merge branch 'v1.2.0' of github.com:volt-test/laravel-performance-tes…
elwafa Oct 24, 2025
4095bdd
adding suggest for phpunit
elwafa Oct 24, 2025
a9021e8
Updated wit phpunit 11
elwafa Oct 24, 2025
ec51abe
CI
elwafa Oct 25, 2025
17d7a36
WIP
elwafa Oct 25, 2025
cf9453c
Update CHANGLOG.md
elwafa Oct 28, 2025
03447d2
Add performance test assertions to VoltTestAssertions trait
elwafa Nov 8, 2025
b2a451e
Add ext-pcntl requirement to composer.json
elwafa Nov 8, 2025
35673aa
Update phpunit.xml for PHPUnit 11.0 compatibility and improve configu…
elwafa Nov 8, 2025
f9a363d
Add ServerRegistry and ServerRegistryTest for managing server instanc…
elwafa Nov 8, 2025
0e3613b
Refactor phpunit.xml to enhance test reporting and deprecation handling
elwafa Nov 8, 2025
3aa80f7
Add ServerManager and ServerManagerTest for managing PHP development …
elwafa Nov 8, 2025
0785c73
Add strict types declaration to ServerManagerTest for improved type s…
elwafa Nov 8, 2025
bd3b356
Add IntegrationVoltTestCase and its test for managing server lifecycl…
elwafa Nov 15, 2025
27fd753
CI
elwafa Nov 15, 2025
1dfbfaf
Update CI and tests configuration to trigger on all branches
elwafa Nov 15, 2025
b80d8b3
Update CHANGELOG.md to reflect recent additions and changes in testin…
elwafa Nov 15, 2025
0744db1
Add tests for parseTimeToMs and improve time format parsing in VoltTe…
elwafa Nov 15, 2025
2090325
Fix assertion to check that min response time is less than or equal t…
elwafa Nov 15, 2025
cdf7e96
Remove debug dump statement from assertVTMaxResponseTime in VoltTestA…
elwafa Nov 15, 2025
81ccff9
Enhance PHPUnit integration with comprehensive performance testing fe…
elwafa Nov 15, 2025
ac260dc
Refactor test method names in LaravelScenarioCsvTest for consistency …
elwafa Nov 15, 2025
93001ca
Rename IntegrationVoltTestCase to PerformanceTestCase and update rela…
elwafa Nov 15, 2025
475238e
Add PHPUnit integration section to README for performance testing fea…
elwafa Nov 15, 2025
f119f67
Update README to enhance features section and improve formatting
elwafa Nov 15, 2025
9e7c84e
Remove reference to QueryPerformanceTest.php from PHPUnit integration…
elwafa Nov 15, 2025
799cc3b
Update VoltTest PHP SDK documentation link in PHPUnit integration guide
elwafa Nov 15, 2025
cdc000e
Add changelog section to README for tracking changes
elwafa Nov 15, 2025
bac9967
Add LICENSE file and correct changelog link in README
elwafa Nov 15, 2025
cd6be3f
Add blank line before changelog section in README for improved readab…
elwafa Nov 15, 2025
579c6c8
Update documentation links in README for accuracy and clarity
elwafa Nov 15, 2025
35b449f
Enhance PHPUnit integration guide with before/after comparisons and k…
elwafa Nov 15, 2025
e22fa12
feat: Add PHPUnit extension and listener to enable console reporting …
elwafa Nov 22, 2025
73a4989
Merge pull request #13 from volt-test/feature/phpunit-integration
elwafa Nov 22, 2025
5692c48
fix: Quote wildcard branch patterns in tests workflow
elwafa Nov 22, 2025
6a793bc
ci: Quote wildcard branch patterns in workflow triggers
elwafa Nov 22, 2025
f70f057
refactor: Type hint test execution methods to return `TestResult` obj…
elwafa Nov 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CI

on:
push:
branches: [ main, develop ]
branches: [ "*" ]
pull_request:
branches: [ main, develop ]
branches: [ "*" ]

permissions:
contents: read
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Tests

on:
push:
branches: [ main, develop ]
branches: [ "*" ]
pull_request:
branches: [ main, develop ]
branches: [ "*" ]

permissions:
contents: read
Expand Down
120 changes: 120 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added

#### PHPUnit Integration
- **PHPUnit Integration Support** - Run VoltTest performance tests within PHPUnit test suites
- **PerformanceTestCase Base Class** - Abstract base class for creating PHPUnit performance tests with built-in server management and VoltTest integration (formerly `IntegrationVoltTestCase`)
- **Reusable VoltTest Classes** - Run existing `VoltTestCase` classes (from `app/VoltTests/`) in PHPUnit tests, enabling code reuse between Artisan commands and PHPUnit test suites
- **VoltTestAssertions Trait** - Comprehensive assertion methods for validating performance test results including:
- Success rate assertions (`assertVTSuccessful`, `assertVTErrorRate`)
- Response time assertions (min, max, average, median, P95, P99)
- Throughput assertions (minimum requests, RPS limits)
- **Quick Load Testing Helpers** - Convenience methods `loadTestUrl()` and `loadTestApi()` for simple performance testing scenarios

#### Server Management
- **ServerManager Class** - Manages PHP development server lifecycle with automatic port selection and health checks
- **ServerRegistry Class** - Global registry for managing multiple server instances across test suites with automatic cleanup
- **Automatic Server Lifecycle** - Start and stop development servers automatically before and after test classes
- **Port Conflict Resolution** - Automatic detection and handling of port conflicts with fallback port selection

#### Testing Infrastructure
- **ServerManagerTest** - Comprehensive test coverage for server management functionality
- **ServerRegistryTest** - Test coverage for server registry and multi-server scenarios
- **Performance Test Examples** - Added example tests demonstrating PHPUnit integration patterns

#### Documentation
- **PHPUnit Integration Guide** - Comprehensive documentation at `docs/PHPUNIT_INTEGRATION.md` covering:
- Complete setup instructions and requirements
- All available assertions with examples
- Server management configuration
- Best practices and troubleshooting
- Real-world usage examples
- **CHANGELOG.md** - Added this changelog file to track version history and changes

#### Dependencies
- **ext-pcntl requirement** - Added to composer.json for process control functionality needed by server management

### Changed
- **Class Rename** - Renamed `IntegrationVoltTestCase` to `PerformanceTestCase` for clearer, more concise naming that better describes its purpose
- **CI Configuration** - Updated GitHub Actions workflow to trigger on all branches for comprehensive testing
- **PHPUnit Configuration** - Refactored phpunit.xml to:
- Support PHPUnit 11.0 compatibility
- Enhance test reporting with display settings
- Improve deprecation and error handling
- Add performance test suite configuration
- **Type Safety** - Added strict types declaration to ServerManagerTest for improved type safety and error detection
- **Test Annotations** - Removed deprecated `@test` annotations in favor of method name convention (`test_*`)

### Fixed
- **Test Annotations** - Remove deprecated `@test` annotation from RunVoltTestCommandTest and TestConfigurationValidatorTest to comply with PHPUnit 11 best practices
- **Assertion Logic** - Fixed `assertVTMinResponseTime` to correctly validate minimum response time thresholds
- **Time Parsing** - Improved time format parsing in `parseTimeToMs` to handle various time units (hours, minutes, seconds, milliseconds, microseconds, nanoseconds)

## [1.1.0] - 2024-07-11

### Changed
- Release/add content type by @elwafa in #9
- Release(v1.1.0) by @elwafa in #10
- Docs: Update Headers usage by @elwafa in #12

### Full Changelog
[v1.0.0...v1.1.0](https://github.com/volt-test/laravel-performance-testing/compare/v1.0.0...v1.1.0)

## [1.0.0] - 2024-06-26

### Added
- Initial stable release
- Core VoltTest functionality
- Artisan commands: `volttest:make` and `volttest:run`
- Route discovery features
- Service provider integration

## [0.0.6-beta] - 2024-06-26

### Added
- Merge pull request #8 from volt-test/laravel-versions-with-stability

## [0.0.5-beta] - 2024-06-26

### Fixed
- Slimmer versions with stability

## [0.0.4-beta] - 2024-06-26

### Fixed
- Updated: No base No beta

## [0.0.3-beta] - 2024-06-24

### Added
- New beta release

## [0.0.2-beta] - 2024-06-23

### Added
- Second beta

## [0.0.1-beta] - 2024-06-23

### Added
- First beta release

## Links

- [Unreleased]: https://github.com/volt-test/laravel-performance-testing/compare/v1.1.0...HEAD
- [1.1.0]: https://github.com/volt-test/laravel-performance-testing/compare/v1.0.0...v1.1.0
- [1.0.0]: https://github.com/volt-test/laravel-performance-testing/compare/0.0.6-beta...v1.0.0
- [0.0.6-beta]: https://github.com/volt-test/laravel-performance-testing/compare/0.0.5-beta...0.0.6-beta
- [0.0.5-beta]: https://github.com/volt-test/laravel-performance-testing/compare/0.0.4-beta...0.0.5-beta
- [0.0.4-beta]: https://github.com/volt-test/laravel-performance-testing/compare/0.0.3-beta...0.0.4-beta
- [0.0.3-beta]: https://github.com/volt-test/laravel-performance-testing/compare/0.0.2-beta...0.0.3-beta
- [0.0.2-beta]: https://github.com/volt-test/laravel-performance-testing/compare/0.0.1-beta...0.0.2-beta
- [0.0.1-beta]: https://github.com/volt-test/laravel-performance-testing/releases/tag/0.0.1-beta
21 changes: 21 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 Islam ElWafa

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading
Loading