From ae0c78a4053b86be218b6a806429c4ced3af4439 Mon Sep 17 00:00:00 2001 From: Miles Kane Date: Thu, 26 Mar 2026 22:49:16 -0500 Subject: [PATCH] feat: add SSL verification setting and logging in main.py --- src/python_response_time/core/config.py | 3 +++ src/python_response_time/main.py | 20 +++++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/python_response_time/core/config.py b/src/python_response_time/core/config.py index 29513f3..5cda777 100644 --- a/src/python_response_time/core/config.py +++ b/src/python_response_time/core/config.py @@ -27,6 +27,9 @@ class Settings(BaseSettings): LOG_LEVEL: Annotated[ str, Field(pattern="^(DEBUG|INFO|WARNING|ERROR|CRITICAL)$") ] = "INFO" + VERIFY_SSL: Annotated[ + bool, Field(description="Whether to verify SSL certificates") + ] = True model_config = SettingsConfigDict( env_file=".env", diff --git a/src/python_response_time/main.py b/src/python_response_time/main.py index 848a918..30e247a 100644 --- a/src/python_response_time/main.py +++ b/src/python_response_time/main.py @@ -17,23 +17,37 @@ def run_app(): logger.info(f"Concurrency: {app_settings.CONCURRENCY}") logger.info(f"Timeout: {app_settings.TIMEOUT} seconds") logger.info(f"Request Delay: {app_settings.REQUEST_DELAY} seconds") + logger.info(f"SSL Verify: {app_settings.VERIFY_SSL}") + + session = requests.Session() + logger.info("Starting HTTP benchmark...") for i in range(app_settings.NUM_REQUESTS): start_time = time.time() + try: - response = requests.get( - str(app_settings.TARGET_URL), timeout=app_settings.TIMEOUT + response = session.get( + str(app_settings.TARGET_URL), + timeout=app_settings.TIMEOUT, + verify=app_settings.VERIFY_SSL, ) response.raise_for_status() + elapsed_time_ms = (time.time() - start_time) * 1000 logger.info( f"Request {i + 1}: {response.status_code} - {elapsed_time_ms:.2f} ms" ) + + except requests.exceptions.SSLError as e: + logger.error(f"Request {i + 1} SSL error: {e}") + except requests.RequestException as e: logger.error(f"Request {i + 1} failed: {e}") + finally: - time.sleep(app_settings.REQUEST_DELAY) + if app_settings.REQUEST_DELAY > 0: + time.sleep(app_settings.REQUEST_DELAY) if __name__ == "__main__":