[[oktatas:web:selenium|< Selenium]] ====== Selenium - Robot Framework ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 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.