diff --git a/.gitignore b/.gitignore index f5c049923c2b9521c35b264d194269f97eb38c93..78ec18e4c75c5224b86f458be59cf5081583bba8 100644 --- a/.gitignore +++ b/.gitignore @@ -226,4 +226,5 @@ chrome-mac-x64.zip chrome-win32.zip chrome-win64.zip -screenshots/ \ No newline at end of file +# Screenshots folder +Screenshots_* diff --git a/load_check.py b/load_check.py index ed7dc96089e73fb900e05cd37abc13faa31ce6d2..71388dd409218b9fa3d7699e2c1cb273dadc84df 100644 --- a/load_check.py +++ b/load_check.py @@ -6,6 +6,7 @@ import time import unittest import random import os +from datetime import datetime from selenium import webdriver from selenium.webdriver.common.by import By @@ -91,11 +92,11 @@ class MultipleTest(unittest.TestCase): self.max_connections = 50 self.ramp_up_time = 30 * 60 - # print("\n8. [선택] 스크린샷 저장 위치 (기본값: screenshots):") - # self.screenshot_base_dir = input().strip() or "screenshots" - self.screenshot_base_dir = "screenshots" - if not os.path.exists(self.screenshot_base_dir): - os.makedirs(self.screenshot_base_dir) + # Make Screenshots_YYMMDD_HHmmss folder + timestamp = datetime.now().strftime("%y%m%d_%H%M%S") + self.screenshots_folder = f"Screenshots_{timestamp}" + os.makedirs(self.screenshots_folder, exist_ok=True) + self.screenshot_base_dir = self.screenshots_folder def setUp(self): self._get_user_inputs() @@ -212,20 +213,35 @@ class MultipleTest(unittest.TestCase): def _dashboard_actions(self, driver): """Performs actions on the Dashboard.""" + wait = WebDriverWait(driver, 3) driver.find_element(By.XPATH, "//div[@id='wrapper']/nav/ul/li[1]/a/div").click() + # Default dashbaord self._take_screenshot(driver, "dashboard_menu_click") driver.find_element(By.XPATH, "//div[@id='wrapper']/div/div/aside/div/div/div/div/article/div/div/div/div/div/div/div/div[2]/div/div/span[2]/span/span").click() - self._take_screenshot(driver, "dashboard_first_element_click") + time.sleep(1.5) + self._take_screenshot(driver, "dashboard_default_first_module_click") driver.find_element(By.XPATH, "//div[@id='wrapper']/div/div/aside/div/div/div/div/article/div/div/div/div/div/div/div/div[2]/div[2]/div/span[2]/span/span").click() - self._take_screenshot(driver, "dashboard_second_element_click") - driver.find_element(By.XPATH, "//div[@id='wrapper']/div/div/aside/div/div/div/div/article/div/div/div/div/div/div/div/div[2]/div[3]/div/span[2]/span/span").click() - self._take_screenshot(driver, "dashboard_third_element_click") + time.sleep(1.5) + self._take_screenshot(driver, "dashboard_default_second_module_click") + try: + wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@id='wrapper']/div/div/aside/div/div/div/div/article/div/div/div/div/div/div/div/div[2]/div[3]/div/span[2]/span/span"))).click() + time.sleep(1.5) + self._take_screenshot(driver, "dashboard_default_third_module_click") + except (TimeoutException, NoSuchElementException): + print("There is no third modules") + + # Custom dashboard driver.find_element(By.XPATH, "//div[@id='wrapper']/div/div/aside/div/div/div/div/div[2]/label[2]/span/span").click() - self._take_screenshot(driver, "dashboard_fourth_element_click") + self._take_screenshot(driver, "dashboard_custom_dashbaord_menu_click") driver.find_element(By.XPATH, "//div[@id='wrapper']/div/div/aside/div/div/div/div/article/div/div[2]/div/div/div/div/div/div[2]/div/div/span[2]/span/span").click() - self._take_screenshot(driver, "dashboard_fifth_element_click") - driver.find_element(By.XPATH, "//div[@id='wrapper']/div/div/aside/div/div/div/div/article/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/span[2]/span/span").click() - self._take_screenshot(driver, "dashboard_sixth_element_click") + time.sleep(20) + self._take_screenshot(driver, "dashboard_custom_first_dashboard_click") + try: + wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@id='wrapper']/div/div/aside/div/div/div/div/article/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/span[2]/span/span"))).click() + time.sleep(20) + self._take_screenshot(driver, "dashboard_custom_second_dashboard_click") + except (TimeoutException, NoSuchElementException): + print("There is no second custom dashboard") def _topology_map_actions(self, driver): """Performs actions on the Topology Map."""