96 lines
2.8 KiB
Python
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")
|