Skip to content
Snippets Groups Projects
Commit c8c43478 authored by L4168's avatar L4168
Browse files

added rf-tests

parent 6f4eedda
No related branches found
No related tags found
No related merge requests found
Pipeline #64089 passed
stages:
- push-image
- rf-test
- push-results
docker-push:
image: docker
......@@ -21,3 +23,27 @@ docker-push:
- docker run --name front -p 80:80 -d overflow2019/frontend:test
after_script:
- docker logout
rf-test:
image: gitlab.labranet.jamk.fi:4567/wimma-lab-2019/mysticons/devsecops/robot
stage: rf-test
tags: ['docker']
only:
- testing
script:
- export ROBOT_TESTS=./tests
- export OUTPUT_DIR=./results
- run.sh
artifacts:
when: always
untracked: true
expire_in: 24h
push-results:
stage: push-results
tags: ['shell']
only:
- testing
when: always
script:
- docker cp ./results front:/usr/share/nginx/html
run.sh 0 → 100644
#!/bin/bash
# Entry script to start Xvfb and set display
set -e
# Set the defaults
DEFAULT_LOG_LEVEL="INFO" # Available levels: TRACE, DEBUG, INFO (default), WARN, NONE (no logging)
DEFAULT_RES="1280x1024x24"
DEFAULT_DISPLAY=":99"
# Use default if none specified as env var
LOG_LEVEL=${LOG_LEVEL:-$DEFAULT_LOG_LEVEL}
RES=${RES:-$DEFAULT_RES}
DISPLAY=${DISPLAY:-$DEFAULT_DISPLAY}
if [[ -z ${ROBOT_TESTS} ]];
then
echo "Error: Please specify the robot test or directory as env var ROBOT_TESTS"
exit 1
fi
if [[ -z ${OUTPUT_DIR} ]];
then
echo "Error: Please specify the output directory as env var OUTPUT_DIR"
exit 1
fi
# Start Xvfb
echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}"
Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR &
export DISPLAY=${DISPLAY}
# Execute tests
echo -e "Executing robot tests at log level ${LOG_LEVEL}"
robot --loglevel ${LOG_LEVEL} --outputdir ${OUTPUT_DIR} ${ROBOT_TESTS}
# Stop Xvfb
kill -9 $(pgrep Xvfb)
*** Settings ***
Documentation A test suite for valid registration.
Resource resource.robot
Suite Setup Open Browser To Login Page
Suite Teardown Close Browser
*** Test Cases ***
Registration Process
Open Registration
Generate Valid Username
Input Valid Username
Input Valid Password
Submit Credentials Registration
Log Out
*** Settings ***
Documentation A test suite for valid login.
... Keywords imported from a resource file.
Resource resource.robot
*** Test Cases ***
Valid Login
Open Browser To Login Page
Open Login
Input Username ${VALID USER}
Input Password ${VALID PASSWORD}
Submit Credentials Login
Wait For Log Out Button To Appear
Log Out
[Teardown] Close Browser
\ No newline at end of file
*** Settings ***
Documentation A test suite for invalid registration.
Resource resource.robot
Suite Setup Open Browser To Login Page
Suite Teardown Close Browser
Test Template Registration With Invalid Options Should Fail
*** Variables ***
${ge_u} = Generate Username
${ge_p} = Generate Password
${ge_vp} = Generate Differing Password
*** Test Cases ***
Short Username ${ge_u} 2 ${ge_p} 32 ${SHORT_U}
Long Username ${ge_u} 32 ${ge_p} 32 ${LONG_U}
Short Password ${ge_u} 31 ${ge_p} 2 ${SHORT_P}
Long Password ${ge_u} 31 ${ge_p} 256 ${LONG_P}
Short Username/Password ${ge_u} 2 ${ge_p} 2 ${SHORT_UP}
Long Username/Password ${ge_u} 32 ${ge_p} 256 ${LONG_UP}
Short Username And Long Password ${ge_u} 2 ${ge_p} 256 ${SU_LP}
Long Username And Short Password ${ge_u} 32 ${ge_p} 2 ${LU_SP}
#Differing Password
#Existing Account Correct Password
#Existing Account New Password
Empty Username And Password ${ge_u} 0 ${ge_p} 0 ${SHORT_UP}
*** Keywords ***
Registration With Invalid Options Should Fail
[Arguments] ${gene_usern} ${GNUM_U} ${gene_passwords} ${GNUM_P} ${error_text}
Open Registration
Run Keyword ${gene_usern} ${GNUM_U}
Run Keyword ${gene_passwords} ${GNUM_P}
Submit Credentials Registration
Registration Should Have Failed ${error_text}
Close Registration Screen
Registration Should Have Failed #Checks the error message.
[Arguments] ${error_text}
Element Text Should Be css=h2 ${error_text}
#Title Should Be Error Page #If there's going to be an error page.
Differing Password
Open Registration
Generate Username 31
Generate Differing Password 8
Submit Credentials Registration
#Registration Should Have Failed
Close Registration Screen
\ No newline at end of file
Message List
Veera Laurikainen
This is the very beginning of your direct message history with @Veera Laurikainen
Ronnie Friman [9:30 AM]
//a[@class="leaflet-control-zoom-in"]
Ronnie Friman [10:35 AM]
http://172.20.2.143:8080/
Ronnie Friman [2:16 PM]
http://tacs-testing.cf/
TEORIASSA aina ku tulee uutta testing branchii nii päivittyy tonne
Veera Laurikainen [4:47 PM]
4 files
resource.robot
5 kB Plain Text Click to open
invalid_login.robot
1 kB Plain Text Click to open
valid_login.robot
Plain TextClick to open
valid_registration.robot
Plain TextClick to open
Ronnie Friman [8:17 AM]
tacs-testing.cf/results/report.html
Veera Laurikainen [8:40 AM]
2 files
valid_registration.robot
Plain TextClick to open
resource.robot
5 kB Plain Text Click to open
Veera Laurikainen [1:00 PM]
4 files
00_valid_registration.robot
Plain TextClick to open
01_valid_login.robot
Plain TextClick to open
02_invalid_registration.robot
2 kB Plain Text Click to open
03_invalid_login.robot
1 kB Plain Text Click to open
4 files
00_valid_registration.robot
Plain TextClick to open
01_valid_login.robot
Plain TextClick to open
02_invalid_registration.robot
2 kB Plain Text Click to open
03_invalid_login.robot
1 kB Plain Text Click to open
Veera Laurikainen [1:28 PM]
resource.robot
*** Settings ***
Documentation A resource file with reusable keywords and variables.
Library SeleniumLibrary run_on_failure=nothing
Library String
*** Variables ***
${SERVER} %{SITE_URL}
${BROWSER} ff
${DELAY} 0.5
#${VALID USER} = ville
${VALID PASSWORD} = koira
${LOGIN URL} http://${SERVER}/
${WELCOME URL} #You can use this if there's a different page after login page.
${LOC_USER} id=registerUsernameInput #Generated username.
${LOC_PASSWORD} id=registerPasswordInput #Generated password first time.
${LOC_PASSWORD2} id=registerPasswordVerifyInput #Generated password verify.
${ZOOMIN} //*[@id="root"]/div/div[1]/div[2]/div[2]/div[1]/a[1] #Zoom in button location
${ZOOMOUT} //*[@id="root"]/div/div[1]/div[2]/div[2]/div[1]/a[2] #Zoom out button location
${INVALID_U} User does not exist
${INVALID_P} Invalid password
${SHORT_P} Validation failed: password must be longer than or equal to 3 characters
${SHORT_U} Validation failed: name must be longer than or equal to 3 characters
${SHORT_UP} Validation failed: name must be longer than or equal to 3 characters, password must be longer than or equal to 3 characters
${LONG_U} Validation failed: name must be shorter than or equal to 31 characters
${LONG_P} Validation failed: password must be shorter than or equal to 255 characters
${LONG_UP} Validation failed: name must be shorter than or equal to 31 characters, password must be shorter than or equal to 255 characters
${SU_LP} Validation failed: name must be longer than or equal to 3 characters, password must be shorter than or equal to 255 characters
${LU_SP} Validation failed: name must be shorter than or equal to 31 characters, password must be longer than or equal to 3 characters
*** Keywords ***
#Valid Login
Open Browser To Login Page
Open Browser ${LOGIN URL} ${BROWSER}
Maximize Browser Window
Set Selenium Speed ${DELAY}
Login Page Should be Open
Login Page Should be Open
Title Should Be React App
Go To Login Page
Go To ${LOGIN URL}
Login Page Should be Open
Open Login
Click Button id=loginButton
Input Username
[Arguments] ${username}
Input Text id=loginUsernameInput ${username}
Input Password
[Arguments] ${password}
Input Text id=loginPasswordInput ${password}
Submit Credentials Login
Click Button id=submitLoginButton
Welcome Page Should Be Open #You can use this if there's a different page after login page.
Location Should Be ${WELCOME URL}
Log Out
Click Button id=logoutButton
Close Login Screen
Click Element id=closeLoginFormX
Wait For Log Out Button To Appear
Wait Until Page Contains Element id=logoutButton 1
#Registration
Open Registration
Click Button id=registerButton
Generate Valid Username
${GENE_username} = Generate Random String 12 [LETTERS][NUMBERS]
Set Global Variable ${VALID USER} ${GENE_username}
Input Valid Username
Input Text ${LOC_USER} ${VALID USER}
Input Valid Password
Input Text ${LOC_PASSWORD} ${VALID PASSWORD}
Input Text ${LOC_PASSWORD2} ${VALID PASSWORD}
Generate Username #Generates a random username lenght=8 chars=[LETTERS][NUMBERS]
[Arguments] ${GNUM_U}
${GENE_username} = Generate Random String ${GNUM_U} [LETTERS][NUMBERS]
Input Text ${LOC_USER} ${GENE_username}
Generate Password #Generates a random password lenght=8 chars=[LETTERS][NUMBERS]
[Arguments] ${GNUM_P}
${GENE_password} = Generate Random String ${GNUM_P} [LETTERS][NUMBERS]
Input Text ${LOC_PASSWORD} ${GENE_password}
Input Text ${LOC_PASSWORD2} ${GENE_password}
Generate Differing Password
[Arguments] ${GNUM_VP}
${GENE_dpassword} = Generate Random String ${GNUM_VP} [LETTERS][NUMBERS]
${GENE_dpassword2} = Generate Random String ${GNUM_VP} [LETTERS][NUMBERS]
Input Text ${LOC_PASSWORD} ${GENE_dpassword}
Input Text ${LOC_PASSWORD2} ${GENE_dpassword2}
Submit Credentials Registration
Click Button id=submitRegisterButton
Close Registration Screen
Click Element id=closeRegisterFormX
#Zoom frontpage
Wait For Zoom Button To Appear
Wait Until Page Contains Element //*[@id="root"]/div/div[1]/div[2]/div[2]/div[1]/a[1] 1
Zoom In On Frontpage
Repeat Keyword 3 times Click Element ${ZOOMIN}
Zoom Out On Frontpage
Repeat Keyword 3 times Click Element ${ZOOMOUT}
Move Around On The Map Frontpage #en saanut toimimaan
#Press Key //*[@id="root"]/div/div[1]/div[1] ARROW_LEFT
Press Combination Key.
Collapse
Message Input
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment