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: