We zullen de website van Mercury Tours gebruiken als onze te testen webapplicatie. Het is een online vluchtreserveringssysteem dat alle elementen bevat die we nodig hebben voor deze tutorial. De URL is http://demo.guru99.com/test/newtours/, en dit zal onze basis-URL zijn.
Maak een script door op te nemen
Laten we nu ons eerste testscript maken in Selenium IDE met behulp van de meest gebruikelijke methode - door op te nemen. Daarna zullen we ons script uitvoeren met behulp van de afspeelfunctie.
Stap 1
- Start Firefox en Selenium IDE.
- Typ de waarde voor onze basis-URL: http://demo.guru99.com/test/newtours/.
- Schakel de opnameknop in (als deze nog niet standaard is ingeschakeld).
Stap 2
Navigeer in Firefox naar http://demo.guru99.com/test/newtours/. Firefox zou u naar de pagina moeten leiden die lijkt op de pagina die hieronder wordt weergegeven. |
|
Stap 3
|
|
Stap 4
|
|
Stap 5
|
|
Stap 6
Schakel de opnameknop uit om de opname te stoppen. Uw script zou er nu moeten uitzien zoals hieronder weergegeven. |
|
Stap 7
Nu we klaar zijn met ons testscript, zullen we het opslaan in een testcase. Selecteer in het menu Bestand de optie "Testcase opslaan". U kunt ook gewoon op Ctrl + S drukken. |
|
Stap 8
|
|
Stap 9.
Merk op dat het bestand is opgeslagen als HTML. |
Stap 10.
Ga terug naar Selenium IDE en klik op de afspeelknop om het hele script uit te voeren. Selenium IDE zou alles feilloos moeten kunnen repliceren.
Inleiding tot Selenium-opdrachten - Selenese
- Selenese commando's kunnen maximaal twee parameters hebben: doel en waarde.
- Parameters zijn niet altijd vereist. Het hangt ervan af hoeveel de opdracht nodig heeft.
3 soorten opdrachten
Acties |
Dit zijn opdrachten die rechtstreeks communiceren met pagina-elementen. Voorbeeld: het "klik" -commando is een actie omdat u rechtstreeks interactie heeft met het element waarop u klikt. Het "type" -commando is ook een actie omdat u waarden in een tekstvak plaatst, en het tekstvak toont ze u in ruil. Er is een wederzijdse interactie tussen u en het tekstvak. |
Accessors |
Het zijn opdrachten waarmee u waarden in een variabele kunt opslaan. Voorbeeld: het "storeTitle" -commando is een accessor omdat het alleen de paginatitel "leest" en deze in een variabele opslaat. Het heeft geen interactie met enig element op de pagina. |
Beweringen |
Het zijn commando's die controleren of aan een bepaalde voorwaarde is voldaan. 3 soorten beweringen
|
Beweren versus verifiëren
Gemeenschappelijke opdrachten
Opdracht | Aantal parameters | Omschrijving |
---|---|---|
Open | 0 - 2 |
Opent een pagina met een URL. |
klik / clickAndWait | 1 |
Klikt op een bepaald element. |
type / typeKeys | 2 |
Typt een reeks tekens. |
verifiërenTitle / assertTitle | 1 |
Vergelijkt de werkelijke paginatitel met een verwachte waarde. |
verifieerTextPresent | 1 |
Controleert of een bepaalde tekst op de pagina wordt gevonden. |
verifieerElementPresent | 1 |
Controleert de aanwezigheid van een bepaald element. |
verifieerTable | 2 |
Vergelijkt de inhoud van een tabel met verwachte waarden. |
waitForPageToLoad | 1 |
Onderbreekt de uitvoering totdat de pagina volledig is geladen. |
waitForElementPresent | 1 |
Onderbreekt de uitvoering totdat het opgegeven element aanwezig wordt. |
Maak handmatig een script met Firebug
Nu zullen we dezelfde testcase handmatig opnieuw creëren door de commando's in te typen. Deze keer zullen we Firebug moeten gebruiken.
Stap 1
|
Stap 2: Klik op de bovenste lege regel in de Editor. |
Typ "open" in het tekstvak Command en druk op Enter. |
Stap 3
|
Stap 4
|
Stap 5
|
Klik op het tekstvak Gebruikersnaam. Merk op dat Firebug u automatisch de HTML-code voor dat element laat zien. |
Stap 6
Merk op dat het tekstvak Gebruikersnaam geen ID heeft, maar het kenmerk NAME. We zullen daarom zijn NAAM gebruiken als locator. Kopieer de NAME-waarde en plak deze in het Target-veld in Selenium IDE. Plaats, nog steeds in het tekstvak Doel, voorvoegsel "gebruikersnaam" met "naam =", wat aangeeft dat Selenium IDE een element moet targeten waarvan het kenmerk NAME "gebruikersnaam" is. Typ "invalidUN" in het tekstvak Waarde van Selenium IDE. Uw testscript zou er nu uit moeten zien als de onderstaande afbeelding. We zijn klaar met het derde commando. Opmerking: in plaats van invalidUN mag u een andere tekstreeks invoeren. Maar Selenium IDE is hoofdlettergevoelig en u typt waarden / attributen precies zoals in de applicatie. |
Stap 7
|
Stap 8
|
Stap 9: Sla de testcase op dezelfde manier op als in de vorige sectie.
Met behulp van de zoekknop
De knop Zoeken in Selenium IDE wordt gebruikt om te controleren of wat we in het tekstvak Doel hadden gezet inderdaad het juiste UI-element is.
Laten we de Invalid_login-testcase gebruiken die we in de vorige secties hebben gemaakt. Klik op een commando met een doelinvoer, bijvoorbeeld het derde commando.
Klik op de knop Zoeken. Merk op dat het tekstvak Gebruikersnaam op de Mercury Tours-pagina even wordt gemarkeerd.
Dit geeft aan dat Selenium IDE het verwachte element correct kon detecteren en openen. Als de knop Zoeken een ander element of helemaal geen element heeft gemarkeerd, moet er iets mis zijn met uw script.
Voer het commando uit
Hiermee kunt u een enkele opdracht uitvoeren zonder de hele testcase uit te voeren . Klik gewoon op de regel die u wilt uitvoeren en klik vervolgens op "Acties> Voer dit commando uit" in de menubalk of druk gewoon op "X" op uw toetsenbord.
Stap 1. Zorg ervoor dat uw browser op de startpagina van Mercury Tours staat. Klik op het commando dat u wilt uitvoeren. Klik in dit voorbeeld op de regel "type | gebruikersnaam | invalidUN".
Stap 2. Druk op "X" op uw toetsenbord.
Stap 3. Merk op dat het tekstvak voor gebruikersnaam wordt gevuld met de tekst "invalidUN"
Het op deze manier uitvoeren van opdrachten is sterk afhankelijk van de pagina die Firefox momenteel weergeeft . Dit betekent dat als u het bovenstaande voorbeeld probeert met de Google-startpagina weergegeven in plaats van Mercury Tours ', uw stap zal mislukken omdat er geen tekstvak met een "gebruikersnaam" -attribuut op de startpagina van Google staat.
Startpunt
Een startpunt is een indicator die Selenium IDE vertelt welke regels de uitvoering zal starten . De sneltoets is "S".
In het bovenstaande voorbeeld begint het afspelen op de derde regel (typ | wachtwoord | invalidPW). U kunt slechts één startpunt hebben in een enkel testscript.
Het startpunt is vergelijkbaar met Commando uitvoeren in die zin dat ze afhankelijk zijn van de momenteel weergegeven pagina. Het startpunt mislukt als u zich op de verkeerde pagina bevindt.
Breekpunten
Breekpunten zijn indicatoren die Selenium IDE vertellen waar de test automatisch moet worden onderbroken. De sneltoets is "B".
De gele markering betekent dat de huidige stap in behandeling is. Dit bewijst dat Selenium IDE de uitvoering bij die stap heeft onderbroken. U kunt in één testcase meerdere breekpunten hebben.
Stap
Hiermee kunt u opeenvolgende opdrachten een voor een uitvoeren na het pauzeren van de testcase. Laten we het scenario in de vorige sectie "Breekpunten" gebruiken.
Voordat u op "Stap" klikt. De testcase pauzeert bij de regel "clickAndWait | login". |
|
Nadat u op "Stap" hebt geklikt. De regel "clickAndWait | login" wordt uitgevoerd en pauzeert naar de volgende opdracht (verifyTitle | Sign-on: Mercury Tours). Merk op dat de volgende regel wordt gepauzeerd, ook al is daar geen onderbrekingspunt. Dit is het belangrijkste doel van de Step-functie - het voert de opeenvolgende opdrachten een voor een uit om u meer tijd te geven om het resultaat na elke stap te inspecteren. |
Belangrijke zaken om op te letten bij het gebruik van andere indelingen in de bronweergave
Selenium IDE werkt alleen goed met HTML - andere formaten bevinden zich nog in de experimentele modus . Het is NIET aan te raden om tests te maken of te bewerken met andere formaten in Source View, omdat er nog veel werk nodig is om het stabiel te maken. Hieronder staan de bekende bugs vanaf versie 1.9.1.
- U kunt niet afspelen of terugschakelen naar de tabelweergave, tenzij u terugkeert naar HTML.
- De enige manier om commando's veilig aan de broncode toe te voegen, is door ze op te nemen.
- Wanneer u de broncode handmatig wijzigt, gaat alles verloren wanneer u naar een ander formaat overschakelt.
- Hoewel u uw testcase kunt opslaan in Source View, kan Selenium IDE deze niet openen.
De aanbevolen manier om Selenese-tests te converteren, is door de optie "Testcase exporteren als ..." onder het menu Bestand te gebruiken, en niet via de Bronweergave.
Overzicht
- Testscripts kunnen worden gemaakt door de opdrachten en parameters handmatig op te nemen of te typen.
- Bij het handmatig aanmaken van scripts wordt Firebug gebruikt om de locator op te halen.
- De knop Zoeken wordt gebruikt om te controleren of de opdracht toegang heeft tot het juiste element.
- Tabelweergave geeft een testscript in tabelvorm weer, terwijl Bronweergave het in HTML-indeling weergeeft.
- Het wijzigen van de bronweergave naar een niet-HTML-indeling is nog experimenteel.
- Gebruik de bronweergave niet om tests in andere indelingen te maken. Gebruik in plaats daarvan de exportfuncties.
- Parameters zijn niet altijd vereist. Het hangt af van het bevel.
- Er zijn drie soorten opdrachten:
- Acties - heeft directe interactie met pagina-elementen
- Accessors - "leest" een elementeigenschap en slaat deze op in een variabele
- Beweringen - vergelijkt een werkelijke waarde met een verwachte waarde
- Beweringen zijn er in drie soorten:
- Beweren - bij een mislukking worden de volgende stappen niet langer uitgevoerd
- Controleer - bij een fout worden de volgende stappen nog steeds uitgevoerd.
- WaitFor - gaat door als de opgegeven voorwaarde binnen de time-outperiode waar wordt; anders zal het mislukken
- De meest voorkomende commando's zijn:
- Open
- klik / clickAndWait
- type / typeKeys
- verifiërenTitle / assertTitle
- verifieerTextPresent
- verifieerElementPresent
- verifieerTable
- waitForPageToLoad
- waitForElementPresent