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.

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.
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:
- Flash-applikasjon.
- Stรธttet nettleser.
- Adobe Flash player plugins.
Verktรธy- Nedenfor er testverktรธyene som er nyttige i flash-testing.
- Selenium
- Sรฅpe UI
- TestComplete
- 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:
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:
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:
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.
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.
Trinn 2) Under flash jar-filen finnes det en egen flashobjectwebdriver-klasse. Implementer flashWebdriveren ยซmyFlashmovieยป i selenium-skriptet ditt som vist nedenfor pรฅ skjermen.
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
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.








