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.

  • 📌 Kärnsyfte: Flash-testning bekräftar att inbäddade SWF-media – videor, spel och animationer – beter sig exakt som de är avsedda.
  • 🔎 Lokaliseringsutmaning: XPath kan inte nå Flash-objekt, så ett dedikerat FlashObjectWebDriver-objekt lokaliserar dem via det tilldelade objekt-ID:t.
  • 🎬 Inspelningsmetod: Selenium IDE spelar in åtgärder som utförs på en Flash-film och spelar upp dem med den gröna Kör-knappen.
  • 💻 WebDriver-metod: FlashObjectWebDriver-klassen anropar Play, StopPlay och SetVariable för att styra Flash programmatiskt.
  • ⚠️ Nyckelbegränsning: Flash är föråldrat; FlexMonkium utökas Selenium IDE när inbyggd inspelning och uppspelning misslyckas.

Flash-testning med Selenium webbdrivrutin

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.

Flash-testning

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:

  1. Flash-applikation.
  2. Webbläsare som stöds.
  3. Adobe Flash player plugins.

Verktyg- Nedan är testverktygen som är användbara vid flashtestning.

  1. Selenium
  2. Tvål UI
  3. TestComplete
  4. 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:

Flash-objekt-ID för Flash Movie/Flash-appen

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:

Automatisera Flash med hjälp av Selenium IDE-inspelning

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:

Automatisera Flash med hjälp av Selenium IDE-inspelning

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.

Automatisera Flash med hjälp av Selenium IDE-inspelning

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.

Lägg till Flash jar-fil i Selenium projektet

Steg 2) Under Flash JAR-filen finns en separat flashobjectwebdriver-klass. Implementera flashWebdrivern "myFlashmovie" i ditt Selenium-skript som visas nedan på skärmen.

Implementera flashWebdriver i Selenium skript

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

Guru99 demo flashfilm för Selenium testning

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.

Vanliga frågor

Adobe avslutade officiellt stödet för Flash Player den 31 december 2020. Flash-testning gäller nu främst äldre system, eftersom de flesta applikationer har migrerat till HTML5, vilket Selenium automatiseras utan speciella Flash-bibliotek.

Flash-innehåll renderas inuti ett kompilerat SWF-objekt som är inbäddat på sidan, inte som HTML DOM-element. Eftersom XPath går igenom DOM-filen kan det inte nå interna Flash-kontroller, så ett objekt-ID och en FlashObjectWebDriver krävs.

FlexMonkium är ett tillägg som integreras med Selenium IDE för att möjliggöra inspelning och uppspelning för Flex- och Flash-applikationer. Korrekt installation låter testare spela in och spela upp åtgärder på annars oåtkomliga Flash-objekt.

AI-baserade visuella testverktyg känner igen Flash-element på skärmen genom bild- och mönsterigenkänning snarare än DOM. Detta låter team validera animationer och interaktioner som traditionella lokaliseringsverktyg inte kan upptäcka.

Ja. AI-assisterade verktyg analyserar befintliga Flash-teststeg och föreslår motsvarande HTML5-lokaliseringsverktyg och skript. Detta påskyndar migreringen till moderna ramverk som Selenium WebDriver samtidigt som manuellt omarbete minskas.

Sammanfatta detta inlägg med: