Initial commit - Selenium automation framework
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
import random
|
||||
import time
|
||||
|
||||
import pytest
|
||||
from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
|
||||
from .config_reader import load_config
|
||||
from .helpers import (
|
||||
clear_pending_console_input,
|
||||
click_page_body,
|
||||
enter_pressed,
|
||||
login,
|
||||
open_trading_maintenance_page,
|
||||
select_bootstrap_dropdown_by_id,
|
||||
select_ui_dropdown,
|
||||
toggle_bootstrap_dropdown_by_id,
|
||||
toggle_labeled_ui_dropdown,
|
||||
)
|
||||
from .locators import Locator
|
||||
from .step_actions import StepActions
|
||||
|
||||
|
||||
def _bounce_token_generation(driver, step, config):
|
||||
|
||||
token = config["trading_token_idas"]
|
||||
interactions = random.randint(2, 4)
|
||||
|
||||
open_trading_maintenance_page(driver, Locator.tokengeneration)
|
||||
step.capture("open_token_generation_fake")
|
||||
|
||||
for index in range(interactions):
|
||||
if random.choice([True, False]):
|
||||
toggle_bootstrap_dropdown_by_id(driver, Locator.tokenmarketcode)
|
||||
step.capture(f"toggle_market_dropdown_{index + 1}")
|
||||
click_page_body(driver)
|
||||
else:
|
||||
select_bootstrap_dropdown_by_id(driver, Locator.tokenmarketcode, token["market_code"])
|
||||
step.capture(f"select_market_code_{index + 1}")
|
||||
|
||||
toggle_labeled_ui_dropdown(driver, "PRODUCT CODE")
|
||||
step.capture(f"toggle_product_dropdown_{index + 1}")
|
||||
click_page_body(driver)
|
||||
|
||||
time.sleep(random.uniform(0.5, 1.5))
|
||||
|
||||
|
||||
def _bounce_trading_session(driver, step, config):
|
||||
|
||||
open_trading_maintenance_page(driver, Locator.tradingsession)
|
||||
step.capture("open_trading_session_fake")
|
||||
|
||||
step.click((By.XPATH, Locator.addsessionbtn), "open_add_session_fake")
|
||||
|
||||
interactions = random.randint(2, 4)
|
||||
for index in range(interactions):
|
||||
if random.choice([True, False]):
|
||||
select_ui_dropdown(driver, "meInstanceId", config["product"]["me_instance"])
|
||||
step.capture(f"select_me_instance_{index + 1}")
|
||||
else:
|
||||
click_page_body(driver)
|
||||
step.capture(f"idle_on_session_form_{index + 1}")
|
||||
|
||||
time.sleep(random.uniform(0.5, 1.5))
|
||||
|
||||
|
||||
@pytest.mark.fake_activity
|
||||
def test_random_fake_activity_no_save(driver, test_context):
|
||||
|
||||
config = load_config()
|
||||
wait = WebDriverWait(driver, 20)
|
||||
step = StepActions(driver, wait, test_context)
|
||||
|
||||
driver.get(config["url"])
|
||||
step.capture("open_application")
|
||||
|
||||
login(
|
||||
driver,
|
||||
config["login"]["username"],
|
||||
config["login"]["password"]
|
||||
)
|
||||
step.capture("login")
|
||||
|
||||
actions = [_bounce_token_generation, _bounce_trading_session]
|
||||
random.shuffle(actions)
|
||||
|
||||
clear_pending_console_input()
|
||||
print("Fake activity started. Press Enter in the terminal any time to stop.")
|
||||
|
||||
while True:
|
||||
random.choice(actions)(driver, step, config)
|
||||
if enter_pressed():
|
||||
break
|
||||
|
||||
step.capture("manual_stop_point")
|
||||
Reference in New Issue
Block a user