|
3 | 3 | import time |
4 | 4 |
|
5 | 5 | import requests |
6 | | -from loguru import logger |
| 6 | +from rich.console import Console |
7 | 7 |
|
8 | 8 | from python_response_time.core import app_settings, setup_logger |
9 | 9 |
|
10 | | -setup_logger(app_settings.LOG_LEVEL) |
| 10 | +console = Console() |
11 | 11 |
|
12 | 12 |
|
13 | 13 | def run_app(): |
14 | | - """Run a simple HTTP benchmark against the configured target URL.""" |
15 | | - logger.info(f"Target URL: {app_settings.TARGET_URL}") |
16 | | - logger.info(f"Number of Requests: {app_settings.NUM_REQUESTS}") |
17 | | - logger.info(f"Concurrency: {app_settings.CONCURRENCY}") |
18 | | - logger.info(f"Timeout: {app_settings.TIMEOUT} seconds") |
19 | | - logger.info(f"Request Delay: {app_settings.REQUEST_DELAY} seconds") |
20 | | - logger.info(f"SSL Verify: {app_settings.VERIFY_SSL}") |
| 14 | + """Run HTTP benchmark and display results via Rich.""" |
| 15 | + logger = setup_logger(app_settings.LOG_LEVEL) |
| 16 | + console.print("[bold cyan]HTTP Benchmark Starting...[/bold cyan]") |
| 17 | + console.print(f"Target: {app_settings.TARGET_URL}") |
| 18 | + console.print(f"Requests: {app_settings.NUM_REQUESTS}") |
| 19 | + console.print(f"Concurrency: {app_settings.CONCURRENCY}") |
| 20 | + console.print(f"Timeout: {app_settings.TIMEOUT}s") |
| 21 | + console.print(f"Delay: {app_settings.REQUEST_DELAY}s") |
| 22 | + console.print(f"SSL Verify: {app_settings.VERIFY_SSL}\n") |
21 | 23 |
|
22 | 24 | session = requests.Session() |
23 | 25 |
|
24 | | - logger.info("Starting HTTP benchmark...") |
| 26 | + console.print("[bold green]Running benchmark...[/bold green]\n") |
25 | 27 |
|
26 | 28 | for i in range(app_settings.NUM_REQUESTS): |
27 | | - start_time = time.time() |
28 | | - |
| 29 | + start_time = time.perf_counter() |
29 | 30 | try: |
30 | 31 | response = session.get( |
31 | 32 | str(app_settings.TARGET_URL), |
32 | 33 | timeout=app_settings.TIMEOUT, |
33 | 34 | verify=app_settings.VERIFY_SSL, |
34 | 35 | ) |
35 | | - response.raise_for_status() |
36 | | - |
37 | | - elapsed_time_ms = (time.time() - start_time) * 1000 |
| 36 | + elapsed_ms = (time.perf_counter() - start_time) * 1000 |
38 | 37 | logger.info( |
39 | | - f"Request {i + 1}: {response.status_code} - {elapsed_time_ms:.2f} ms" |
| 38 | + f"Request {i + 1}: {response.status_code} in {elapsed_ms:.2f} ms" |
40 | 39 | ) |
41 | 40 |
|
42 | 41 | except requests.exceptions.SSLError as e: |
43 | | - logger.error(f"Request {i + 1} SSL error: {e}") |
| 42 | + console.print(f"[red]Request {i + 1} SSL error: {e}[/red]") |
44 | 43 |
|
45 | 44 | except requests.RequestException as e: |
46 | | - logger.error(f"Request {i + 1} failed: {e}") |
| 45 | + console.print(f"[red]Request {i + 1} failed: {e}[/red]") |
47 | 46 |
|
48 | 47 | finally: |
49 | 48 | if app_settings.REQUEST_DELAY > 0: |
|
0 commit comments