Test: Rapid sequential requests.
(config: StressTestConfig, results: StressTestResults)
| 184 | |
| 185 | |
| 186 | def stress_test_rapid(config: StressTestConfig, results: StressTestResults) -> None: |
| 187 | """Test: Rapid sequential requests.""" |
| 188 | console.print("\n[bold cyan]Test 2: Rapid Sequential Requests[/bold cyan]") |
| 189 | console.print(f"Making {config.num_requests} rapid sequential requests...") |
| 190 | |
| 191 | initial_count = results.total_requests |
| 192 | |
| 193 | with Progress( |
| 194 | SpinnerColumn(), |
| 195 | TextColumn("[progress.description]{task.description}"), |
| 196 | BarColumn(), |
| 197 | TaskProgressColumn(), |
| 198 | console=console, |
| 199 | ) as progress: |
| 200 | task = progress.add_task("Requesting...", total=config.num_requests) |
| 201 | |
| 202 | with httpx.Client() as client: |
| 203 | for _ in range(config.num_requests): |
| 204 | make_request(config, results, client) |
| 205 | progress.update(task, advance=1) |
| 206 | |
| 207 | test_requests = results.total_requests - initial_count |
| 208 | test_success = results.successful_requests - ( |
| 209 | initial_count - (initial_count - results.successful_requests) |
| 210 | ) |
| 211 | success_rate = (test_success / test_requests * 100) if test_requests > 0 else 0 |
| 212 | console.print( |
| 213 | f" Success rate: {success_rate:.1f}% ({test_success}/{test_requests})" |
| 214 | ) |
| 215 | |
| 216 | |
| 217 | def display_results(results: StressTestResults): |
no test coverage detected