change Dockerfile to use requirements.txt, add Robot Framework files and change command to run test suites in specified dir as well as output in a seperate dir.
This commit is contained in:
parent
6799730a99
commit
401ee636f5
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1,3 @@
|
||||
.vscode/
|
||||
output/
|
||||
__pycache__/
|
@ -1,5 +1,6 @@
|
||||
FROM python:alpine
|
||||
|
||||
USER root
|
||||
RUN python3 -m pip install selenium
|
||||
COPY ./requirements.txt /requirements.txt
|
||||
RUN python3 -m pip install -r /requirements.txt
|
||||
WORKDIR /
|
||||
|
@ -23,8 +23,10 @@ services:
|
||||
depends_on:
|
||||
selenium-hub:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- PYTHONPYCACHEPREFIX:"${HOME}/"
|
||||
volumes:
|
||||
- ./test_suite:/tests:ro
|
||||
- ./output:/output:rw
|
||||
user: "1000:1000"
|
||||
command: 'python3 /tests/root_domain_test.py'
|
||||
command: 'python3 -m robot -d /output /tests'
|
||||
|
@ -1 +1,2 @@
|
||||
selenium>=4.7.2
|
||||
robotframework>=6.0.0
|
@ -5,6 +5,8 @@ from selenium import webdriver
|
||||
from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
from selenium.webdriver.support import expected_conditions
|
||||
from robot.api.logger import info, debug, trace, console, error
|
||||
|
||||
|
||||
def check_subdomains(driver):
|
||||
# setup wait and grab original tab/window
|
||||
@ -13,9 +15,10 @@ def check_subdomains(driver):
|
||||
|
||||
# Try to grab button elements of maintained subdomains
|
||||
try:
|
||||
sites = driver.find_element(By.TAG_NAME, "nav").find_elements(By.XPATH, "./div/div")
|
||||
sites = driver.find_element(
|
||||
By.TAG_NAME, "nav").find_elements(By.XPATH, "./div/div")
|
||||
except:
|
||||
print("Couldn't find the element.")
|
||||
error("Couldn't find the element.")
|
||||
driver.close()
|
||||
driver.quit()
|
||||
return False
|
||||
@ -32,34 +35,43 @@ def check_subdomains(driver):
|
||||
driver.close()
|
||||
driver.switch_to.window(main_tab)
|
||||
except:
|
||||
print("Couldn't find the element somewhere...")
|
||||
error("Couldn't find the element somewhere...")
|
||||
driver.close()
|
||||
driver.quit()
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def execute_tests():
|
||||
|
||||
def setup_webdriver(remote_url):
|
||||
# Set up webdriver and necessary variables for later
|
||||
chrome_options = webdriver.ChromeOptions()
|
||||
print('Attempting to establish connection to remote webdriver...')
|
||||
driver = webdriver.Remote(command_executor='http://192.168.0.202:4444', options=chrome_options)
|
||||
print('Connection established.')
|
||||
info('Attempting to establish connection to remote webdriver...')
|
||||
driver = webdriver.Remote(
|
||||
command_executor=remote_url, options=chrome_options)
|
||||
info('Connection established.')
|
||||
return driver
|
||||
|
||||
# Load requested site
|
||||
print('Attempting to get page...')
|
||||
driver.get("https://werefox.cafe")
|
||||
print('Page loaded.')
|
||||
|
||||
# Check all the subdomain buttons work
|
||||
print('Attempting to click through subdomain buttons...')
|
||||
if(check_subdomains(driver)):
|
||||
print('Test succeeded.')
|
||||
else:
|
||||
print('Test failed.')
|
||||
|
||||
def teardown_webdriver(driver):
|
||||
# Close browser and lean up
|
||||
driver.close()
|
||||
driver.quit()
|
||||
|
||||
execute_tests()
|
||||
|
||||
def execute_tests(driver, site_url):
|
||||
# Load requested site
|
||||
info('Attempting to get page...')
|
||||
driver.get(site_url)
|
||||
info('Page loaded.')
|
||||
|
||||
# Check all the subdomain buttons work
|
||||
info('Attempting to click through subdomain buttons...')
|
||||
if (check_subdomains(driver)):
|
||||
info('Test succeeded.')
|
||||
return True
|
||||
else:
|
||||
info('Test failed.')
|
||||
return False
|
||||
|
||||
# execute_tests()
|
||||
|
19
tests/test_suite/werefox_cafe.resource
Executable file
19
tests/test_suite/werefox_cafe.resource
Executable file
@ -0,0 +1,19 @@
|
||||
*** Settings ***
|
||||
Documentation Import Python functions
|
||||
|
||||
Library ./root_domain_test.py
|
||||
|
||||
|
||||
*** Keywords ***
|
||||
# My Keyword [Arguments] ${path}
|
||||
# Directory Should Exist ${path}
|
||||
Werefox Cafe Test Cases
|
||||
[Arguments] ${remote_url} ${site_url}
|
||||
|
||||
${driver}= Setup Webdriver ${remote_url}
|
||||
|
||||
${result}= Execute Tests ${driver} ${site_url}
|
||||
|
||||
Should Be True ${result}
|
||||
|
||||
[Teardown] Teardown Webdriver ${driver}
|
16
tests/test_suite/werefox_cafe.robot
Executable file
16
tests/test_suite/werefox_cafe.robot
Executable file
@ -0,0 +1,16 @@
|
||||
*** Settings ***
|
||||
Documentation Validate functionality of root domain site.
|
||||
|
||||
Resource werefox_cafe.resource
|
||||
|
||||
Default Tags positive
|
||||
|
||||
|
||||
*** Variables ***
|
||||
${remote_url} http://192.168.0.202:4444
|
||||
${site_url} https://werefox.cafe
|
||||
|
||||
|
||||
*** Test Cases ***
|
||||
Test Werefox Cafe [Documentation] Run Werefox Cafe Test Cases.
|
||||
Werefox Cafe Test Cases ${remote_url} ${site_url}
|
Loading…
Reference in New Issue
Block a user