Flash-testing med Selenium webdriver

⚡ Smart oppsummering

Flash-testing med Selenium WebDriver bekrefter at Flash-baserte videoer, spill og animasjoner fungerer som de skal. Denne ressursen forklarer hvordan man fanger innebygde SWF-objekter, tilordner objekt-ID-er og automatiserer avspilling ved hjelp av Selenium IDE-opptak og FlashObjectWebDriver-klassen for pålitelig validering.

  • 📌 Kjerneformål: Flash-testing bekrefter at innebygde SWF-medier – videoer, spill og animasjoner – oppfører seg nøyaktig som de er designet for.
  • 🔎 Lokaliseringsutfordring: XPath kan ikke nå Flash-objekter, så et dedikert FlashObjectWebDriver-objekt finner dem via den tilordnede objekt-ID-en.
  • 🎬 Innspillingsmetode: Selenium IDE registrerer handlinger som utføres på en Flash-film og spiller dem av med den grønne Kjør-knappen.
  • 💻 WebDriver-metode: FlashObjectWebDriver-klassen kaller Play, StopPlay og SetVariable for å kontrollere Flash programmatisk.
  • ⚠️ Nøkkelbegrensning: Flash er utdatert; FlexMonkium utvides Selenium IDE når innebygd opptak og avspilling mislykkes.

Flash-testing med Selenium webdriver

Hva er Flash-testing?

Flash-testing er en testtype som brukes til å sjekke at flash-basert video, spill, filmer osv. fungerer som forventet. Med andre ord er testing av flashens funksjonalitet kjent som Flash-testing. Flash er en populær programvare utviklet av Macromedia (nå oppkjøpt av Adobe). Den brukes til å utvikle spill, applikasjoner, grafikkbaserte animasjoner, filmer, Mobil spill, programmer osv.

In Selenium Automatisering, hvis elementene ikke blir funnet av de generelle lokalisatorene som id, klasse, navn osv, deretter XPath kreves for å finne et element på nettsiden for å utføre en operasjon på det bestemte elementet. Men i Flash-testing, XPath klarer ikke å få tilgang til et flash-objekt. Så et Flashwebdriver-objekt er nødvendig for å finne et flash-objekt i et hvilket som helst program.

Flash-testing

Her vil du se hvordan du kjører flash Testing og hvordan du gjør flashtesting med Selenium.

Forutsetning for Flash-testing

Før du starter, er følgende krav for å teste et flash-program:

  1. Flash-applikasjon.
  2. Støttet nettleser.
  3. Adobe Flash player plugins.

Verktøy- Nedenfor er testverktøyene som er nyttige i flash-testing.

  1. Selenium
  2. Såpe UI
  3. TestComplete
  4. Teststudio etc.

Selenium er et veldig populært verktøy for webtesting. Du kan lage et rammeverk på tvers av forskjellige plattformer og på et annet språk. Det er et åpen kildekode-verktøy og kan lastes ned fra det offisielle nettstedet. Det er enkelt å konfigurere, bruke og implementere.

Hvordan Flash-testing er forskjellig fra andre elementer

Nå som forutsetningene er klare, hjelper det å forstå hvorfor Flash oppfører seg annerledes enn standard HTML-elementer under testing.

  • Hvorfor er det vanskelig å fange opp objekter med blits? Hvordan løses det?

Flash er en utdatert teknologi. Det er vanskelig å fange opp et Flash-objekt siden det er forskjellig fra HTML. Flash er også en innebygd SWF-fil (Small Web Format). Det er også vanskelig å få tilgang til et Flash-objekt på en mobilenhet.

Utviklingping Flash er vanskeligere enn utviklingping en HTML-side fra et SEO-perspektiv (søkemotoroptimalisering) fordi Flash ikke er fullt lesbart for søkemotoren. Imidlertid introduseres avanserte teknologier som HTML 5 for å overvinne problemer som ytelse og sikkerhet.

  • På hvilke måter testes et flash-program?

Flash-applikasjoner testes på to måter:

  • Håndbok - Du kan teste Flash-objektet ved å utføre testcases manuelt da det er enkelt og lett å teste. Etter feilfiksing forsikrer du deg om at flash fungerer som forventet og gir avmelding.
  • Automasjon - Du skriver et skript ved hjelp av et hvilket som helst automatiseringsverktøy som Selenium, SoapUI, TestComplete, osv. og utfør skriptet.
  • Forskjellen mellom Flash og andre elementer.

Som nevnt ovenfor er hovedforskjellen mellom Flash og andre elementer at Flash er innebygd i SWF-filer, mens andre elementer er innebygd i HTML-filer. Det er derfor HTML er enklere å fange opp sammenlignet med Flash.

Hvordan kan du få Flash-objekt-ID-en til en Flash-film / Flash-app

Når du vet hvordan Flash er forskjellig fra HTML, er neste trinn å finne selve Flash-objektet gjennom objekt-ID-en.

På enhver nettside brukes <object>-taggen for all innebygd multimedia (som Flash, ActiveX, video osv.). Den innebærer å «bygge inn» i et HTML-dokument. Denne taggen definerer en beholder innebygd i <object />- eller <embed />-tagger i et HTML-dokument for interaktivt innhold eller et eksternt program. Objektnavnet brukes til å finne Flash-objektet på nettsider.

I eksemplet nedenfor kan du for eksempel se at flash-filmen er definert i en «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>

Bruke objekt-ID-en til å finne Flash-elementer.

Du kan bruke flash-attributter som objekt-ID for å finne flash-objektet. Og dermed kan du utføre operasjoner på den etter behov, som avspilling, stopp osv.

Som allerede diskutert, kan ikke Flash-objekter nås via XPath. Så for å kunne utføre handlinger på disse objektene, må utvikleren tilordne en passende objekt-ID.

Skjermbildet nedenfor viser objekt-ID-en «MyFlashMovie» som er tilordnet Flash:

Flash-objekt-ID for Flash Movie / Flash-app

Hvordan automatisere Flash ved å bruke Selenium IDE-opptak

Med den tilordnede objekt-ID-en kan du ta opp interaksjoner på Flash-filmen direkte via Selenium SDI.

Du kan også automatisere blitsen ved hjelp av Selenium SDI.

Trinn 1) Du må åpne flash-applikasjonen og deretter Selenium IDE som vist på skjermbildet nedenfor:

Automatiser Flash ved hjelp av Selenium IDE-opptak

Trinn 2) Klikk nå på den «røde opptaksknappen» på høyre side og begynn å utføre operasjoner på Flash-filmen. Da finner du det innspilte skriptet som vist nedenfor:

Automatiser Flash ved hjelp av Selenium IDE-opptak

Etter opptaket kan brukeren, hvis de ønsker å kjøre skriptet, klikke på den «grønne kjør-knappen» som vist på skjermen nedenfor. Selenium IDE vil utføre skriptet trinn for trinn.

Automatiser Flash ved hjelp av Selenium IDE-opptak

Hvordan automatisere Flash ved å bruke Selenium Webdriver

For mer kontroll enn det opptak tilbyr, Selenium Med WebDriver kan du kjøre Flash-objektet programmatisk.

Du kan også automatisere blitsen ved hjelp av Selenium webdriveren gjennom Flashwebdriver-objektet og deretter kalle en metode for å operere på flash-objektet. Du må Last ned flashwebdriver jar-filer:

Trinn 1) Etter nedlastingen legger du til jar-filen i prosjektet ditt som vist på skjermbildet nedenfor.

Legg til Flash jar-fil i Selenium prosjekt

Trinn 2) Under flash jar-filen finnes det en egen flashobjectwebdriver-klasse. Implementer flashWebdriveren «myFlashmovie» i selenium-skriptet ditt som vist nedenfor på skjermen.

Implementer flashWebdriver i Selenium script

Etter at du har lagt til webdriverklassen «MyFlashMovie», kan du få tilgang til Flash-objektet.

Når du skal automatisere flashtesting

Vanligvis må du automatisere Flash-testing når Flash-objektet ikke er lett tilgjengelig. Dette fører til at testen avbrytes og dermed ikke kan teste Flash-objektet.

Lage et seleniumskript for Flash-testing

Ved å samle de foregående trinnene, er her et komplett fungerende skript som starter og kontrollerer Guru99 demo flash-film.

Trinn 1) Du bruker «Guru99” flash-film for å teste flash-scenariet.

https://demo.guru99.com/test/flash-testing.html

Guru99 demo flash-film for Selenium testing

Trinn 2) Skriv et manus i Selenium eclipse og kjør den. Koden nedenfor vil gjøre følgende når den kjøres:

  • Åpne Firefox nettleser,
  • Start guru99 flash-siden,
  • Spill av flash-filmen og
  • Stopp deretter 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"));
    }
}

Trinn 3) Kjør skriptet ovenfor.

Utgang: Når skriptet ovenfor utføres, begynner flash-filmen å spilles av og stopper, osv.

Utfordringer i Flash-testing

  • Det er en utfordring å automatisere en flash-app. For å automatisere en flash-app kan du bruke FlexMonkium, som er et tillegg for Selenium SDI.
  • Du kan støte på problemer med å aktivere opptak/avspilling av Flex-apper ved hjelp av Selenium-Flexmonkium-integrasjon. Løsningen er at brukeren må installere og integrere Flexmonkium med Selenium IDE nøye. Riktig installasjon vil gjøre det mulig å automatisere opptak av Flash-apper.

Spørsmål og svar

Adobe avsluttet offisielt støtten for Flash Player 31. desember 2020. Flash-testing gjelder nå hovedsakelig eldre systemer, siden de fleste applikasjoner har migrert til HTML5, som Selenium automatiserer uten spesielle Flash-biblioteker.

Flash-innhold gjengis i et kompilert SWF-objekt som er innebygd på siden, ikke som HTML DOM-elementer. Fordi XPath går gjennom DOM-en, kan den ikke nå interne Flash-kontroller, så en objekt-ID og FlashObjectWebDriver er nødvendig.

FlexMonkium er et tillegg som integreres med Selenium IDE for å muliggjøre opptak og avspilling for Flex- og Flash-applikasjoner. Riktig installasjon lar testere fange opp og spille av handlinger på ellers utilgjengelige Flash-objekter.

AI-baserte visuelle testverktøy gjenkjenner Flash-elementer på skjermen gjennom bilde- og mønstergjenkjenning i stedet for DOM. Dette lar team validere animasjoner og interaksjoner som tradisjonelle lokaliseringsverktøy ikke kan oppdage.

Ja. AI-assisterte verktøy analyserer eksisterende Flash-testtrinn og foreslår tilsvarende HTML5-lokaliseringsverktøy og -skript. Dette akselererer migreringen til moderne rammeverk som Selenium WebDriver samtidig som det reduserer manuelt omarbeid.

Oppsummer dette innlegget med: