Skip to content

Commit dbb5532

Browse files
committed
Updated file
1 parent 5fd20cd commit dbb5532

File tree

4 files changed

+64
-64
lines changed

4 files changed

+64
-64
lines changed

pages/api_endpoints.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# page/api_endpoints.py
2+
3+
import requests
4+
import logging
5+
import os
6+
7+
# Configuration
8+
BASE_URL = 'https://automationexercise.com/api'
9+
LOG_FOLDER = 'logs' # Log folder path
10+
LOG_FILE = os.path.join(LOG_FOLDER, 'load_test.log') # Full path to log file
11+
12+
# Ensure log folder exists
13+
os.makedirs(LOG_FOLDER, exist_ok=True)
14+
15+
# Set up logging
16+
logger = logging.getLogger()
17+
logger.setLevel(logging.INFO)
18+
19+
# Create file handler for logging
20+
file_handler = logging.FileHandler(LOG_FILE)
21+
file_handler.setLevel(logging.INFO)
22+
23+
# Create console handler for logging
24+
console_handler = logging.StreamHandler()
25+
console_handler.setLevel(logging.INFO)
26+
27+
# Create a formatter and set it for the handlers
28+
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
29+
file_handler.setFormatter(formatter)
30+
console_handler.setFormatter(formatter)
31+
32+
# Add handlers to the logger
33+
logger.addHandler(file_handler)
34+
logger.addHandler(console_handler)
35+
36+
class ApiPage:
37+
def __init__(self, base_url):
38+
self.base_url = base_url
39+
40+
def get(self, endpoint, params=None):
41+
return requests.get(f"{self.base_url}/{endpoint}", params=params)
42+
43+
def post(self, endpoint, json=None):
44+
return requests.post(f"{self.base_url}/{endpoint}", json=json)
45+
46+
def put(self, endpoint, json=None):
47+
return requests.put(f"{self.base_url}/{endpoint}", json=json)
48+
49+
def delete(self, endpoint, params=None):
50+
return requests.delete(f"{self.base_url}/{endpoint}", params=params)
51+
52+
def log_info(test_name, response):
53+
"""Log informational details."""
54+
logger.info(f"Test '{test_name}' passed with status code: {response.status_code}")
55+
logger.info(f"Response body: {response.text}")
56+
57+
def log_error(test_name, response, exception=None):
58+
"""Log error details."""
59+
logger.error(f"Error in {test_name}: {exception}")
60+
logger.error(f"Response status code: {response.status_code}")
61+
logger.error(f"Response body: {response.text}")
Lines changed: 3 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,13 @@
1+
# tests/test_endpoints.py
2+
13
import pytest
2-
import requests
3-
import logging
4-
import os
5-
6-
# Configuration
7-
BASE_URL = 'https://automationexercise.com/api'
8-
LOG_FOLDER = 'logs' # Log folder path
9-
LOG_FILE = os.path.join(LOG_FOLDER, 'load_test.log') # Full path to log file
10-
11-
# Ensure log folder exists
12-
os.makedirs(LOG_FOLDER, exist_ok=True)
13-
14-
# Set up logging
15-
logger = logging.getLogger()
16-
logger.setLevel(logging.INFO)
17-
18-
# Create file handler for logging
19-
file_handler = logging.FileHandler(LOG_FILE)
20-
file_handler.setLevel(logging.INFO)
21-
22-
# Create console handler for logging
23-
console_handler = logging.StreamHandler()
24-
console_handler.setLevel(logging.INFO)
25-
26-
# Create a formatter and set it for the handlers
27-
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
28-
file_handler.setFormatter(formatter)
29-
console_handler.setFormatter(formatter)
30-
31-
# Add handlers to the logger
32-
logger.addHandler(file_handler)
33-
logger.addHandler(console_handler)
34-
35-
class ApiPage:
36-
def __init__(self, base_url):
37-
self.base_url = base_url
38-
39-
def get(self, endpoint, params=None):
40-
return requests.get(f"{self.base_url}/{endpoint}", params=params)
41-
42-
def post(self, endpoint, json=None):
43-
return requests.post(f"{self.base_url}/{endpoint}", json=json)
44-
45-
def put(self, endpoint, json=None):
46-
return requests.put(f"{self.base_url}/{endpoint}", json=json)
47-
48-
def delete(self, endpoint, params=None):
49-
return requests.delete(f"{self.base_url}/{endpoint}", params=params)
4+
from pages.api_endpoints import ApiPage, log_info, log_error, BASE_URL
505

516
@pytest.fixture
527
def api_page():
538
"""Fixture for ApiPage instance."""
549
return ApiPage(BASE_URL)
5510

56-
def log_info(test_name, response):
57-
"""Log informational details."""
58-
logger.info(f"Test '{test_name}' passed with status code: {response.status_code}")
59-
logger.info(f"Response body: {response.text}")
60-
61-
def log_error(test_name, response, exception=None):
62-
"""Log error details."""
63-
logger.error(f"Error in {test_name}: {exception}")
64-
logger.error(f"Response status code: {response.status_code}")
65-
logger.error(f"Response body: {response.text}")
66-
67-
68-
69-
70-
71-
7211
def test_get_all_products(api_page):
7312
"""Test GET request to retrieve all products."""
7413
try:

0 commit comments

Comments
 (0)