Flash test med Selenium webdriver
⚡ Smart opsummering
Flash test med Selenium WebDriver verificerer, at Flash-baserede videoer, spil og animationer fungerer korrekt. Denne ressource forklarer, hvordan man optager integrerede SWF-objekter, tildeler objekt-ID'er og automatiserer afspilning ved hjælp af Selenium IDE-optagelse og FlashObjectWebDriver-klassen for pålidelig validering.
Hvad er Flash-test?
Flash-testning er en testtype, der bruges til at kontrollere, om flash-baserede videoer, spil, film osv. fungerer som forventet. Med andre ord er testning af flashens funktionalitet kendt som Flash test. Flash er et populært softwareprogram udviklet af Macromedia (nu opkøbt af Adobe). Det bruges til at udvikle spil, applikationer, grafikbaserede animationer, film, Mobil spil, programmer osv.
In Selenium Automatisering, hvis elementerne ikke findes af de generelle lokalisatorer som id, klasse, navn osv, derefter XPath er påkrævet for at finde et element på websiden for at udføre en handling på det pågældende element. Men i Flash-testning, XPath kan ikke tilgå et flash-objekt. Så et Flashwebdriver-objekt er nødvendigt for at finde et flash-objekt i et hvilket som helst program.
Her vil du se, hvordan du udfører flash Test og hvordan man laver flashtest med Selenium.
Forudsætning for Flash-test
Før du starter, er følgende krav for at teste et flash-program:
- Flash-applikation.
- Understøttet webbrowser.
- Adobe Flash player plugins.
Værktøj- Nedenfor er de testværktøjer, som er nyttige i flashtestning.
- Selenium
- Sæbe UI
- TestComplete
- Teststudie osv.
Selenium er et meget populært værktøj til webtestning. Du kan oprette et framework på tværs af forskellige platforme og på forskellige sprog. Det er et open source-værktøj og kan downloades fra den officielle hjemmeside. Det er nemt at konfigurere, bruge og implementere.
Hvordan Flash-testning adskiller sig fra andre elementer
Nu hvor forudsætningerne er klar, hjælper det at forstå, hvorfor Flash opfører sig anderledes end standard HTML-elementer under test.
- Hvorfor er det svært at optage objekter med flash? Hvordan løses det?
Flash er en forældet teknologi. Det er vanskeligt at indfange et Flash-objekt, da det er forskelligt fra HTML. Flash er også en indlejret SWF-fil (Small Web Format). Det er også vanskeligt at få adgang til et Flash-objekt på en mobilenhed.
Udviklingping Flash er sværere end udviklingping en HTML-side fra et SEO-perspektiv (søgemaskineoptimering), fordi flash ikke er fuldt læsbart for søgemaskinerne. Imidlertid introduceres avancerede teknologier som HTML 5 for at overvinde problemer som ydeevne og sikkerhed.
- På hvilke måder testes en flash-applikation?
Flash-applikationer testes på to måder:
- Brugervejledning - Du kan teste Flash-objektet ved at udføre testcases manuelt, da det er enkelt og nemt at teste. Efter fejlfiksering sikrer du dig, at flash fungerer korrekt som forventet, og giver dig afmelding.
- Automatisering - Du skriver et script ved hjælp af et hvilket som helst automatiseringsværktøj som f. Selenium, SoapUI, TestCompleteosv. og udfør scriptet.
- Forskellen mellem Flash og andre elementer.
Som nævnt ovenfor er den primære forskel mellem Flash og andre elementer, at Flash er integreret i SWF-filer, mens andre elementer er integreret i HTML-filer. Derfor er HTML lettere at indlæse sammenlignet med Flash.
Hvordan kan man få fat i Flash-objekt-ID'et for en Flash-film/flash-app?
Når du ved, hvordan Flash adskiller sig fra HTML, er næste trin at finde selve Flash-objektet via dets objekt-ID.
På enhver webside bruges <object>-tagget til alle integrerede multimedier (som Flash, ActiveX, video osv.). Det antyder "embed" i et HTML-dokument. Dette tag definerer en container, der er integreret i <object />- eller <embed />-tags i et HTML-dokument til interaktivt indhold eller en ekstern applikation. Objektnavnet bruges til at finde Flash-objektet på websider.
For eksempel kan du i eksemplet nedenfor se, at flash-filmen er defineret i et "embed"-tag i et HTML-dokument eller en fil.
Eksempel:
/* Html page*/ <html> <body marginwidth="0" marginheight="0"> <embed width="100%" height="100%" name="plugin" src="http://video/movie_play.swf" type="application/flash"/> </body> </html>
Brug af objekt-ID'et til at finde Flash-elementer.
Du kan bruge flash-attributter som objekt-id til at lokalisere flash-objektet. Og derved kan du udføre handlinger på den efter behov, såsom afspilning, stop osv.
Som allerede nævnt kan Flash-objekter ikke tilgås via XPath. Så for at kunne udføre handlinger på disse objekter skal udvikleren tildele et passende objekt-ID.
Skærmbilledet nedenfor viser det objekt-ID "MyFlashMovie", der er tildelt Flash:
Sådan automatiseres Flash ved hjælp af Selenium IDE optagelse
Med det tildelte objekt-ID kan du optage interaktioner på Flash-filmen direkte via Selenium SDI.
Du kan også automatisere blitzen vha Selenium SDI.
Trin 1) Du skal åbne flash-applikationen og derefter Selenium IDE som vist på skærmbilledet nedenfor:
Trin 2) Klik nu på den "røde optageknap" i højre side og begynd at udføre handlinger på Flash-filmen. Så finder du det optagede script som vist nedenfor:
Hvis brugeren efter optagelsen ønsker at udføre scriptet, kan de klikke på den "grønne kør-knap", som vist på skærmen nedenfor. Selenium IDE vil udføre scriptet trin for trin.
Sådan automatiseres Flash ved hjælp af Selenium Webdriver
For mere kontrol end optagelse tilbyder, Selenium Med WebDriver kan du styre Flash-objektet programmatisk.
Du kan også automatisere blitzen vha Selenium webdriveren gennem Flashwebdriver-objektet og derefter kalde en metode til at operere på flash-objektet. Du skal Download flashwebdriver jar-filer:
Trin 1) Efter download skal du tilføje jar-filen til dit projekt som vist på skærmen nedenfor.
Trin 2) Under flash jar-filen er der en separat flashobjectwebdriver-klasse. Implementer flashWebdriveren "myFlashmovie" i dit selenium-script som vist nedenfor på skærmen.
Når du har tilføjet webdriverklassen "MyFlashMovie", kan du få adgang til Flash-objektet.
Hvornår skal man automatisere flashtest
Normalt skal du automatisere Flash-testning, når Flash-objektet ikke er let tilgængeligt. Dette resulterer i, at testen afbrydes, og dermed kan Flash-objektet ikke testes.
Oprettelse af et Selenium-script til Flash-testning
Ved at samle de foregående trin er her et komplet fungerende script, der starter og styrer Guru99 demo flash-film.
Trin 1) Du bruger “Guru99” flash-film for at teste flash-scenariet.
https://demo.guru99.com/test/flash-testing.html
Trin 2) Skriv et manuskript ind Selenium eclipse og udfør den. Nedenstående kode vil, når den udføres, gøre følgende:
- Åbne Firefox browser,
- Start guru99 flash-stedet,
- Afspil flash-filmen og
- Stop derefter filmen.
import org.openqa.selenium.firefox.FirefoxDriver; import Flash.FlashObjectWebDriver; public class Flash { public static void main(String[] args) throws InterruptedException { // Open firefox browser FirefoxDriver driver = new FirefoxDriver(); // Maximize browser driver.manage().window().maximize(); // Under Flash jar file there is a separate FlashObjectWebDriver class FlashObjectWebDriver flashApp = new FlashObjectWebDriver(driver, "myFlashMovie"); // Pass the URL of video driver.get("https://demo.guru99.com/test/flash-testing.html"); Thread.sleep(5000); flashApp.callFlashObject("Play"); Thread.sleep(5000); flashApp.callFlashObject("StopPlay"); Thread.sleep(5000); flashApp.callFlashObject("SetVariable","/:message","Flash testing using selenium Webdriver"); System.out.println(flashApp.callFlashObject("GetVariable","/:message")); } }
Trin 3) Udfør ovenstående script.
Output: Når ovenstående script udføres, begynder flash-filmen at afspille og stopper osv.
Udfordringer i Flash-testning
- Det er en udfordring at automatisere en flash-app. For at automatisere en flash-app kan du bruge FlexMonkium, som er et tilføjelsesprogram til Selenium SDI.
- Du kan støde på problemer med at optage/afspille Flex-apps ved hjælp af Selenium-Flexmonkium-integration. Løsningen er, at brugeren skal installere og integrere Flexmonkium med Selenium IDE omhyggeligt. Korrekt installation vil muliggøre optagelse for at automatisere flash-apps.









