1. Conditionele Statements (If-Else)
Conditionele statements worden gebruikt om te bepalen of een bepaalde set acties moet worden uitgevoerd op basis van een voorwaarde. In Robot Framework wordt dit vaak gedaan met Run Keyword If.
Run Keyword If Dit een keyword is dat een andere keyword uitvoert als een bepaalde conditie waar is. Als de conditie niet waar is, kan een optionele ELSE-clausule worden uitgevoerd.
Voorbeeld:
Stel je wilt een testcase schrijven die controleert of een login succesvol is. Je kunt gebruikmaken van een conditioneel statement om te controleren of de tekst “Welkom”
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
Login Succes Controle
Open Browser https://www.examplelogin.com Chrome
Input Text id:username gebruikersnaam
Input Text id:password wachtwoord
Click Button id:login
${isLoginSucces}= Page Should Contain Welkom
Run Keyword If '${isLoginSucces}' == 'PASS' Log Login succesvol
... ELSE Log Login mislukt
Close Browser
- Loops
Loops worden gebruikt om een set instructies meerdere keren uit te voeren. Robot Framework ondersteunt loops via de FOR loop.
Uitleg:
Beschrijf dat de FOR loop wordt gebruikt om door een lijst van items te itereren, waarbij voor elk item in de lijst een of meer acties worden uitgevoerd. Dit is handig voor taken die herhaald moeten worden, zoals het uitvoeren van dezelfde actie op meerdere webpagina’s.
Voorbeeld:
Stel, je wilt de titel van meerdere webpagina’s controleren. Je kunt een FOR loop gebruiken om door een lijst van URL’s te itereren en de titel van elke pagina te loggen.
*** Settings ***
Library SeleniumLibrary
*** Variables ***
@{PAGINAS} https://www.example1.com https://www.example2.com
*** Test Cases ***
Titels Van Meerdere Paginas Controleren
FOR ${pagina} IN @{PAGINAS}
Open Browser ${pagina} Chrome
${pageTitle}= Get Title
Log Paginatitel van ${pagina} is '${pageTitle}'
Close Browser
END
Keywords in Loops
Uitleg:
Leg uit dat je binnen een FOR loop elk Robot Framework keyword of custom keyword kunt aanroepen. Dit stelt je in staat om dynamisch meerdere acties uit te voeren binnen elke iteratie van de loop. Dit is bijzonder nuttig voor het uitvoeren van gegevensgestuurde tests waarbij acties afhankelijk zijn van de data die wordt doorlopen.
Voorbeeld:
Stel dat je een lijst met gebruikersnamen en wachtwoorden hebt en je wilt inloggen met elk paar om te verifiëren of de inlogpoging succesvol is.
robotframework
Settings ***
Library SeleniumLibrary
*** Variables ***
@{CREDENTIALS} gebruiker1 wachtwoord1 gebruiker2 wachtwoord2
*** Test Cases ***
Inloggen Met Meerdere Gebruikers
FOR ${username} ${password} IN ZIP @{CREDENTIALS}
Open Browser https://www.examplelogin.com Chrome
Input Text id:username ${username}
Input Text id:password ${password}
Click Button id:login
${loginSuccess}= Run Keyword And Return Status Page Should Contain Welkom
Run Keyword If ${loginSuccess} Log Succesvol ingelogd met ${username}
... ELSE Log Inloggen mislukt met ${username}
Close Browser
END
Gebruik van Keywords in Conditionals
Uitleg:
Bespreek hoe het gebruik van keywords in conditional statements (zoals Run Keyword If) testers in staat stelt om complexe besluitvormingslogica in hun tests te integreren. Dit kan variëren van het eenvoudig uitvoeren van verschillende acties gebaseerd op de status van een webpagina tot het afhandelen van meerdere condities met Run Keywords en AND/OR condities.
Voorbeeld:
Je kunt een scenario hebben waarbij je verschillende stappen moet uitvoeren gebaseerd op de aanwezigheid van bepaalde elementen op een pagina.
*** Settings ***
Library SeleniumLibrary*** Test Cases ***
Controleren Element Aanwezigheid
Open Browser https://www.example.com Chrome
${elementExists}= Run Keyword And Return Status Page Should Contain Element id:specialFeature
Run Keyword If ${elementExists}
... Click Element id:specialFeature
... ELSE Log Speciale feature niet gevonden op de pagina
Geavanceerde Conditional Keywords
Robot Framework biedt ook geavanceerde keywords zoals Run Keyword Unless, Run Keyword And Ignore Error, en Run Keyword And Return Status, die je kunt gebruiken voor meer complexe conditionele logica.
Run Keyword Unless
Uitleg:
Run Keyword Unless is ideaal voor situaties waarin je wilt dat een actie wordt uitgevoerd als een bepaalde voorwaarde níet waar is. Het format is als volgt:
Run Keyword Unless condition keyword [arguments]
Waar condition de voorwaarde is die geëvalueerd wordt. Als deze voorwaarde niet waar is (False), wordt het opgegeven keyword uitgevoerd met de optionele [arguments].
Voorbeeld Scenario:
Stel je voor dat je een test script hebt dat controleert of een gebruiker niet is ingelogd op een website. Als de gebruiker niet is ingelogd (bijvoorbeeld, als een “Login” knop zichtbaar is), wil je dat het script een login proces uitvoert.
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
Controleer En Log In Indien Nodig
Open Browser https://www.voorbeeldwebsite.com Chrome
${isLoggedIn}= Run Keyword And Return Status Element Should Not Be Visible id:login-button
Run Keyword Unless ${isLoggedIn} Voer Login Proces Uit
# Voer verdere acties uit als gebruiker ingelogd is
Close Browser
*** Keywords ***
Voer Login Proes Uit
Input Text id:username demo
Input Text id:password demopassword
Click Button id
:login-button
In dit voorbeeld wordt de Element Should Not Be Visible keyword gebruikt om te controleren of de “Login” knop niet zichtbaar is, wat zou suggereren dat de gebruiker al is ingelogd. De Run Keyword And Return Status keyword vangt het resultaat van deze check zonder dat het script faalt als de voorwaarde niet waar is. Vervolgens gebruiken we Run Keyword Unless om de Voer Login Proces Uit keyword uit te voeren als de gebruiker niet al is ingelogd (${isLoggedIn} is False).
Voorbeeldgebruik:
Stel je voor dat je een testscenario hebt waarbij je wilt controleren of een optioneel element aanwezig is op een pagina. Als het element aanwezig is, wil je een actie uitvoeren (bijvoorbeeld klikken op een knop), maar als het niet aanwezig is, wil je gewoon verder gaan met de volgende stap van de test zonder te falen.
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
Controleer Element En Handel Afhankelijk
Open Browser https://www.example.com Chrome
${status} ${result}= Run Keyword And Ignore Error Click Element id:optionele-knop
Run Keyword If '${status}' == 'PASS' Log Knop succesvol geklikt
... ELSE Log Knop niet aanwezig, doorgaan met test
# Voer hier verdere teststappen uit
Close Browser
In dit voorbeeld probeert het script op een knop te klikken met de id optionele-knop. Met Run Keyword And Ignore Error, als de knop niet gevonden wordt (wat resulteert in een fout), zal het script deze fout negeren en doorgaan. Het resultaat van de operatie (PASS of FAIL) en de bijbehorende boodschap (bijvoorbeeld een foutmelding als het element niet gevonden wordt) worden opgeslagen in de variabelen ${status} en ${result}, die vervolgens gebruikt kunnen worden om te loggen of om verdere conditionele logica te implementeren.
Run Keyword And Return Status is een ander nuttig keyword in Robot Framework dat vooral waardevol is in situaties waar je de uitvoering van een teststap wilt voortzetten, ongeacht of deze slaagt of faalt, en je wilt de status (geslaagd of mislukt) van die uitvoering vastleggen. Dit keyword probeert de gespecificeerde keyword uit te voeren en retourneert True als de keyword slaagt, of False als deze faalt, zonder dat de hele test faalt. Dit maakt het mogelijk om beslissingen te nemen op basis van de uitkomst van de uitgevoerde actie.
Hoe werkt het?
Het formaat voor Run Keyword And Return Status is als volgt:
${status}= Run Keyword And Return Status keyword [arguments]
Hierbij is ${status} de variabele waarin de uitkomst (geslaagd of mislukt) van de uitgevoerde keyword wordt opgeslagen. Dit stelt je in staat om vervolgens logica in je script te bouwen op basis van of de actie succesvol was of niet.
Voorbeeldgebruik:
Stel, je hebt een functionaliteit in je applicatie die soms beschikbaar is en soms niet, en je test moet verschillend reageren op basis van deze beschikbaarheid.
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
Controleer Functie Beschikbaarheid
Open Browser https://www.voorbeeldsite.com Chrome
${functieBeschikbaar}= Run Keyword And Return Status Element Should Be Visible xpath://*[@id="speciale-functie"]
Run Keyword If ${functieBeschikbaar} Log Speciale functie is beschikbaar
... ELSE Log Speciale functie is niet beschikbaar
# Voer vervolgstappen uit afhankelijk van de beschikbaarheid
Close Browser
In dit voorbeeld proberen we te controleren of een element met de id speciale-functie zichtbaar is op de pagina. Run Keyword And Return Status voert Element Should Be Visible uit en slaat het resultaat op in ${functieBeschikbaar}, zonder dat de test faalt als het element niet zichtbaar is. Afhankelijk van het resultaat (True of False), logt het script een passende boodschap. Dit laat zien hoe je conditionele logica in je scripts kunt integreren op basis van de status van teststappen.