MCPcopy Create free account
hub / github.com/FastLED/FastLED / stress_test_concurrent

Function stress_test_concurrent

examples/Asio/Server/test_stress.py:147–183  ·  view source on GitHub ↗

Test: Multiple concurrent connections.

(
    config: StressTestConfig, results: StressTestResults
)

Source from the content-addressed store, hash-verified

145
146
147def stress_test_concurrent(
148 config: StressTestConfig, results: StressTestResults
149) -> None:
150 """Test: Multiple concurrent connections."""
151 console.print("\n[bold cyan]Test 1: Concurrent Connections[/bold cyan]")
152 console.print(f"Making {config.num_connections} concurrent requests...")
153
154 with Progress(
155 SpinnerColumn(),
156 TextColumn("[progress.description]{task.description}"),
157 BarColumn(),
158 TaskProgressColumn(),
159 console=console,
160 ) as progress:
161 task = progress.add_task("Requesting...", total=config.num_connections)
162
163 threads: list[threading.Thread] = []
164 with httpx.Client() as client:
165 for _ in range(config.num_connections):
166 thread: threading.Thread = threading.Thread(
167 target=make_request, args=(config, results, client)
168 )
169 thread.start()
170 threads.append(thread)
171
172 for thread in threads:
173 thread.join()
174 progress.update(task, advance=1)
175
176 success_rate = (
177 (results.successful_requests / results.total_requests * 100)
178 if results.total_requests > 0
179 else 0
180 )
181 console.print(
182 f" Success rate: {success_rate:.1f}% ({results.successful_requests}/{results.total_requests})"
183 )
184
185
186def stress_test_rapid(config: StressTestConfig, results: StressTestResults) -> None:

Callers 1

mainFunction · 0.85

Calls 5

add_taskMethod · 0.80
printMethod · 0.45
startMethod · 0.45
appendMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected