Flash-testning med Selenium webbdrivrutin
⚡ Smart sammanfattning
Flash-testning med Selenium WebDriver verifierar att Flash-baserade videor, spel och animationer fungerar korrekt. Den här resursen förklarar hur man fångar inbäddade SWF-objekt, tilldelar objekt-ID:n och automatiserar uppspelning med hjälp av Selenium IDE-inspelning och FlashObjectWebDriver-klassen för tillförlitlig validering.

Vad är Flash-testning?
Flashtestning är en testtyp som används för att kontrollera att flashbaserad video, spel, filmer etc. fungerar som förväntat. Med andra ord kallas testning av flashens funktionalitet Flash-testning. Flash är en populär programvara utvecklad av Macromedia (nu uppköpt av Adobe). Den används för att utveckla spel, applikationer, grafikbaserade animationer, filmer, Mobil spel, program etc.
In Selenium Automatisering, om elementen inte hittas av de allmänna lokaliseringsorganen som id, klass, namn osvoch sedan XPath krävs för att hitta ett element på webbsidan för att utföra en åtgärd på just det elementet. Men i Flash-testning, XPath misslyckas med att komma åt ett flash-objekt. Så ett Flashwebdriver-objekt krävs för att hitta ett flash-objekt i valfri applikation.
Här kommer du att se hur du kör flash Testning och hur man gör blixttest med Selenium.
Förutsättning för Flash-testning
Innan du börjar är följande krav för att testa ett flashprogram:
- Flash-applikation.
- Webbläsare som stöds.
- Adobe Flash player plugins.
Verktyg- Nedan är testverktygen som är användbara vid flashtestning.
- Selenium
- Tvål UI
- TestComplete
- Teststudio mm.
Selenium är ett mycket populärt verktyg för webbtestning. Du kan skapa ett ramverk på olika plattformar och på olika språk. Det är ett verktyg med öppen källkod och kan laddas ner från den officiella webbplatsen. Det är enkelt att konfigurera, använda och implementera.
Hur Flash-testning skiljer sig från andra element
Nu när förkunskapskraven är klara hjälper det att förstå varför Flash beter sig annorlunda än vanliga HTML-element under testning.
- Varför är det svårt att fånga objekt med blixt? Hur löser man det?
Flash är en föråldrad teknik. Det är svårt att avbilda ett Flash-objekt eftersom det skiljer sig från HTML. Flash är också en inbäddad SWF-fil (Small Web Format). Det är också svårt att komma åt ett Flash-objekt på en mobil enhet.
Utvecklaping Flash är svårare än utvecklingping en HTML-sida ur SEO-perspektivet (sökmotoroptimering) eftersom Flash inte är helt läsbart för sökmotorer. Avancerade tekniker som HTML 5 introduceras dock för att övervinna problem som prestanda och säkerhet.
- På vilka sätt testas en flash-applikation?
Flash-applikationer testas på två sätt:
- Manual - Du kan testa Flash-objektet genom att köra testfall manuellt eftersom det är enkelt och lätt att testa. Efter buggfixering ser du till att flash fungerar som förväntat och ger dig avloggning.
- Automation - Du skriver ett skript med hjälp av valfritt automatiseringsverktyg som Selenium, SoapUI, TestComplete, etc. och kör skriptet.
- Skillnaden mellan Flash och andra element.
Som nämnts ovan är den största skillnaden mellan Flash och andra element att Flash är inbäddat i SWF-filer, medan andra element är inbäddade i HTML-filer. Det är därför HTML är lättare att läsa in jämfört med Flash.
Hur kan man få tag på Flash-objekt-ID:t för en Flash-film/Flash-app?
När du väl vet hur Flash skiljer sig från HTML är nästa steg att lokalisera själva Flash-objektet genom dess objekt-ID.
På alla webbsidor används taggen <object> för all inbäddad multimedia (som Flash, ActiveX, video etc.). Den innebär att den kan "bäddas in" i ett HTML-dokument. Taggen definierar en behållare som är inbäddad i taggarna <object /> eller <embed /> i ett HTML-dokument för interaktivt innehåll eller en extern applikation. Objektnamnet används för att hitta Flash-objektet på webbsidor.
I exemplet nedan kan du till exempel se att flashfilmen definieras i en "embed"-tagg i ett HTML-dokument eller en fil.
Exempel:
/* 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>
Använda objekt-ID för att hitta Flash-element.
Du kan använda flash-attribut som objekt-id för att lokalisera flash-objektet. Och därigenom kan du utföra operationer på den efter behov som att spela, stoppa, etc.
Som redan diskuterats kan Flash-objekt inte nås med XPath. Så för att kunna utföra någon åtgärd på dessa objekt måste utvecklaren tilldela ett lämpligt objekt-ID.
Skärmen nedan visar objekt-ID:t "MyFlashMovie" som har tilldelats Flash:n:
Hur man automatiserar Flash med Selenium IDE-inspelning
Med det tilldelade objekt-ID:t kan du spela in interaktioner på Flash-filmen direkt via Selenium ID.
Du kan också automatisera blixten med hjälp av Selenium ID.
Steg 1) Du måste öppna flash-appen och sedan Selenium IDE som visas på skärmen nedan:
Steg 2) Klicka nu på den "röda inspelningsknappen" till höger och börja utföra operationer på Flash-filmen, så hittar du det inspelade skriptet som visas nedan:
Om användaren vill köra skriptet efter inspelningen kan de klicka på den "gröna körknappen" som visas på skärmen nedan. Selenium IDE kommer att köra skriptet steg för steg.
Hur man automatiserar Flash med Selenium Webdriver
För mer kontroll än vad inspelning erbjuder, Selenium Med WebDriver kan du driva Flash-objektet programmatiskt.
Du kan också automatisera blixten med hjälp av Selenium webbdrivrutinen genom Flashwebdriver-objektet och sedan anropa en metod för att operera på Flash-objektet. Du måste ladda ner flashwebdriver jar-filer:
Steg 1) Efter nedladdningen, lägg till jar-filen i ditt projekt som visas på skärmen nedan.
Steg 2) Under Flash JAR-filen finns en separat flashobjectwebdriver-klass. Implementera flashWebdrivern "myFlashmovie" i ditt Selenium-skript som visas nedan på skärmen.
Efter att du har lagt till webbdrivrutinsklassen "MyFlashMovie" kan du komma åt Flash-objektet.
När ska man automatisera blixttestning
Vanligtvis behöver man automatisera Flash-testning när Flash-objektet inte är lättåtkomligt. Detta resulterar i att testet avbryts och därmed misslyckas med att testa Flash-objektet.
Skapa ett seleniumskript för Flash-testning
Genom att sammanföra de föregående stegen, här är ett komplett fungerande skript som startar och styr Guru99 demo flashfilm.
Steg 1) Du använder “Guru99” flashfilm för att testa flashscenariot.
https://demo.guru99.com/test/flash-testing.html
Steg 2) Skriv ett manus i Selenium eclipse och kör den. Koden nedan, när den körs, kommer att göra följande:
- Öppna Firefox webbläsare,
- Starta guru99 flash-webbplatsen,
- Spela flash-filmen och
- Stoppa sedan 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")); } }
Steg 3) Kör ovanstående skript.
Produktion: När ovanstående skript körs börjar flashfilmen spelas upp och stoppas, etc.
Utmaningar i Flash-testning
- Att automatisera en flash-app är en utmaning. För att automatisera en flash-app kan du använda FlexMonkium, vilket är ett tillägg för Selenium ID.
- Du kan stöta på problem med att aktivera inspelning/uppspelning av Flex-appar med hjälp av Selenium-Flexmonkium-integration. Lösningen är att användaren behöver installera och integrera Flexmonkium med Selenium IDE noggrant. Korrekt installation möjliggör inspelning för att automatisera flash-appar.








