Files
pxil-selenium-automation/tests/test_fake_activity.py
T

96 lines
2.8 KiB
Python

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")