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.

  • 📌 Kerneformål: Flash-testning validerer, at integrerede SWF-medier – videoer, spil og animationer – opfører sig præcis som designet.
  • 🔎 Lokaliseringsudfordring: XPath kan ikke nå Flash-objekter, så et dedikeret FlashObjectWebDriver-objekt finder dem via det tildelte objekt-ID.
  • 🎬 Optagelsesmetode: Selenium IDE optager handlinger udført på en Flash-film og afspiller dem igen med den grønne Kør-knap.
  • 💻 WebDriver-metode: FlashObjectWebDriver-klassen kalder Play, StopPlay og SetVariable for at styre Flash programmatisk.
  • ⚠️ Nøglebegrænsning: Flash er udfaset; FlexMonkium udvides Selenium IDE når native optagelse og afspilning fejler.

Flash test med Selenium webdriver

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.

Flash test

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:

  1. Flash-applikation.
  2. Understøttet webbrowser.
  3. Adobe Flash player plugins.

Værktøj- Nedenfor er de testværktøjer, som er nyttige i flashtestning.

  1. Selenium
  2. Sæbe UI
  3. TestComplete
  4. 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:

Flash-objekt-id for Flash Movie / Flash-app

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:

Automatiser Flash vha Selenium IDE-optagelse

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:

Automatiser Flash vha Selenium IDE-optagelse

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.

Automatiser Flash vha Selenium IDE-optagelse

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.

Tilføj Flash jar-fil i Selenium projekt

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.

Implementer flashWebdriver i Selenium script

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

Guru99 demo flash-film til Selenium test

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.

Ofte Stillede Spørgsmål

Adobe ophørte officielt med at understøtte Flash Player den 31. december 2020. Flash-testning gælder nu primært for ældre systemer, da de fleste applikationer er migreret til HTML5, hvilket... Selenium automatiserer uden særlige Flash-biblioteker.

Flash-indhold gengives i et kompileret SWF-objekt, der er integreret på siden, ikke som HTML DOM-elementer. Da XPath gennemløber DOM'en, kan det ikke nå interne Flash-kontroller, så et objekt-ID og en FlashObjectWebDriver er påkrævet.

FlexMonkium er et tilføjelsesprogram, der integrerer med Selenium IDE til at muliggøre optagelse og afspilning for Flex- og Flash-applikationer. Korrekt installation giver testere mulighed for at optage og afspille handlinger på ellers utilgængelige Flash-objekter.

AI-baserede visuelle testværktøjer genkender Flash-elementer på skærmen via billed- og mønstergenkendelse i stedet for DOM. Dette giver teams mulighed for at validere animationer og interaktioner, som traditionelle lokaliseringssystemer ikke kan registrere.

Ja. AI-assisterede værktøjer analyserer eksisterende Flash-testtrin og foreslår tilsvarende HTML5-lokaliseringsværktøjer og -scripts. Dette fremskynder migreringen til moderne frameworks som f.eks. Selenium WebDriver, samtidig med at manuel omarbejde reduceres.

Opsummer dette indlæg med: