[[oktatas:web:selenium|< Selenium]]
====== Selenium - Robot Framework ======
* **Szerző:** Sallai András
* Copyright (c) 2022, Sallai András
* Szerkesztve: 2022, 2023
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== A Robot Framework-ről =====
A Robot Framework egy általános nyílt forráskódú
automatizáló keretrendszer. Tesztek és robotikai
folyamatok automatizálására használható.
Itt most a Selenium böngészőautomatizáló eszközzel
fogjuk használni.
Webhely:
* https://robotframework.org/
A leírásban a Windows telepítések a choco paranccsal vannak leírva,
ami a [[oktatas:operacios_rendszerek:windows:csomagkezeles#chocolatey|Chocolatey]] csomagkezelő része.
===== A telepítés lépései =====
==== Lépések ====
* Python telepítése
* Robotframework telepítése
* Robotframework-Selenium telepítése
* VSCode telepítése
* Robotframework bővítmény telepítése
* Webdriver letöltése oda, ahol a robot van
* Webhely megnyitása
===== Python telepítése =====
Windowson:
choco install python
Debian GNU/Linuxon alapból rendelkezésre áll.
===== Robot framework telepítése =====
==== Windows ====
Ha Python most lett telepítve, akkor új parancsablakban kell kiadni:
pip install robotframework
Alapértelmezetten útvonalba kerül.
==== Linux ====
pip3 install robotframework
Kapunk egy figyelmeztetést, hogy nincs útvonalban a
/home/username/.local/bin könyv.
pip3 install robotframework
Collecting robotframework
Downloading robotframework-5.0.1-py3-none-any.whl (639 kB)
|████████████████████████████████| 639 kB 8.5 MB/s
Installing collected packages: robotframework
WARNING: The scripts libdoc, rebot and robot are installed in '/home/andras/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed robotframework-5.0.1
Útvonalba tesszük a ~/.local/bin könyvtárat:
zsh esetén:
nano ~/.zshrc
bash esetén:
nano ~/.bashrc
A fájl végére:
export PATH=$PATH:~/.local/bin
Új terminálba lépve kapunk három parancsot:
* libdoc
* rebot
* robot
===== Ellenőrzés =====
A robot parancs fontos, mert ezzel fogjuk futtatni a tesztet.
rebot --version
robot --version
===== Robotframework-Selenium telepítése =====
pip install robotframework-selenium2library
Ellenőrizzük:
pip list
===== Bővítmények =====
A Visual Studio Code telepítése Windows alatt:
choco install vscode
A Visual Studio Code bővítményei:
* Robot Framework Language Server
===== Driver letöltése =====
* Megnézzük mi a verziója a Google Chrome-nak.
* Megkeressük a verziónak megfelelő drivert:
* https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/
Linux esetén kapunk egy **chromedriver_linux64.zip**, Windows esetén **chromedriver_win32.zip** fájlt.
A tartalmát kicsomagoljuk, kapunk egy chromedriver nevű állományt.
Windows esetén chromedrive.exe
Tegyük útvonalba az állományt.
Linux alatt például másoljuk ide:
/usr/local/bin
Windows alatt például ide:
C:\Windows
===== Minimális teszt készítése =====
Készítsünk egy Hello.robot nevű fájlt, a következő tartalommal:
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
Teszteset1
Open Browser https://szit.hu Chrome
Sleep 3s
Page Should Contain Oktatás
A teszt megnyitja a szit.hu weblapot, megnézi, hogy
van-e a főoldalon "Oktatás" szó. Ha igen, a teszt teljesül.
A Sleep, vagyis a várakozás, akkor hasznos, ha lassú a hálózat, és várni
kell például a weboldal betöltésére.
===== Megjegyzés =====
# szöveg
===== Futtatás =====
A tesztet a robot paranccsal fogjuk futtatni.
Futtatás:
robot Hello.robot
A lehetséges kimenet:
robot Hello.robot
==============================================================================
Hello
==============================================================================
Teszteset1 Teszteset1 | PASS |
------------------------------------------------------------------------------
Hello | PASS |
1 test, 1 passed, 0 failed
==============================================================================
Output: /home/janos/dev/app01/output.xml
Log: /home/janos/dev/app01/log.html
Report: /home/janos/dev/app01/report.html
====== Input elem kitöltése ======
*** Setting ***
Library SeleniumLibrary
*** Test Cases ***
Recept keresése
Open Browser https://szit.hu Chrome
Input Text name:q recept
Press Keys name:q ENTER
Page Should Contain Gluténmentes
===== A szit.hu kereső tesztelése =====
*** Setting ***
Library SeleniumLibrary
*** Keywords ***
Input Search
[Arguments] ${word}
Input Text name=q ${word}
*** Test Cases ***
Recept keresése
Open Browser https://szit.hu Chrome
Sleep 3s
Input Search recept
Futtatás:
robot szithu.robot
===== Háromszög területszámítás =====
==== Kitöltés és kattintás ====
*** Setting ***
Library SeleniumLibrary
*** Test Cases ***
Input 30, 35-re 525 az elvárás
Open Browser http://localhost:3000 Chrome
Input Text id:base 30
Input Text id:height 35
Click Element id:calcButton
Sleep 3s
Close Browser
==== Eredmény ellenőrzése ====
*** Setting ***
Library SeleniumLibrary
*** Test Cases ***
Input 30, 35-re 525 az elvárás
Open Browser http://localhost:3000 Chrome
Input Text id:base 30
Input Text id:height 35
Click Element id:calcButton
${area} Get Element Attribute id:area value
Should Be Equal ${area} 525
Sleep 3s
Input 100, 130-ra 6500 az elvárt
Input Text id:base 100
Input Text id:height 130
Click Element id:calcButton
${area} Get Element Attribute id:area value
Should Be Equal ${area} 6500
Close Browser
* https://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Should%20Be%20Equal (2023)
===== Kulcsszavak használata =====
*** Setting ***
Library SeleniumLibrary
*** Keywords ***
Input Base
[Arguments] ${base}
Input Text id=base ${base}
Input Height
[Arguments] ${height}
Input Text id=height ${height}
Calc Button
Click Element id=calcButton
*** Test Cases ***
Input 30, 35-re 525 az elvárás
Open Browser http://localhost:3000 Chrome
Input Base 30
Input Height 35
Calc Button
Sleep 2s
===== Robocorp Code =====
A Visual Studio Code-ban tegyük fel a következő bővítményt:
* Robocorp Code
A teszt indítható a Robocorp Code segítségével is.
Baloldalon az akciósávon megjelenik egy kis majom fejecskéhez hasonló ikon.
Erre kattintva, megjelenik a Robocorp Code felülete.
Új taskot felül a + gombra kattintva lehet létrehozni.
A feladatok innen indíthatók "Run all tasks"-ra kattintva, de megkötés, hogy
a feladatoknak egy tasks.robot nevű fájlba kell legyenek.