Was sind Flash-Tests?
Das Testen der Funktionalität des Blitzes wird als Flash-Test bezeichnet. Manchmal müssen Sie in Ihrer Anwendung möglicherweise die jeweiligen Animationsvideos, Filme, Spiele usw. überprüfen. wie pro Erwartung arbeiten oder nicht. Hier müssen wir das Skript schreiben, um die Funktionalität von Flash zu überprüfen, um diese Art von Anwendung zu testen. Flash ist eine von Macromedia entwickelte Software, die jetzt von Adobe übernommen wird. Es wird verwendet, um Videospiele, Filme, Handyspiele für iOS und Android usw. zu entwickeln. Zum Abspielen der Flash-Anwendungen benötigen wir einige Plugins.
Voraussetzungen für Flash-Tests mit Selenium WebDriver
Wir sollten mit den folgenden Anforderungen bereit sein, die Flash-Anwendung mit Selenium WebDriver zu testen. Hier ist die Liste der Voraussetzungen:
- Flash Web Anwendung
- Adobe Flash Player plugins
- Native browser unterstützung
Unten die editor software erforderlich für flash anwendungen.
- Adobe Animate
- Flash Builder
- Flash Develop
- Power Flasher
- Scaleform
Zum Abspielen der Flash-Anwendungen benötigen wir die folgenden Plugins, die wie folgt aufgeführt sind:
- OpenFL
- Adobe Air
- Flash Player
- Gnash
Nachfolgend finden Sie die für Flash-Tests erforderlichen Testwerkzeuge.
- Selenium
- TestComplete
- Seife UI
- Test Studio etc.
Wie testet man Flash-Inhalte mit Selenium?
Um mit Ihren Flash-Inhalten in Selenium zu interagieren, verfügt es im Allgemeinen nicht über eine Schnittstelle. In ActionScript werden Flash-Dateien programmiert, die JavaScript sehr ähnlich sind. Flash-Dateien enthalten auch Programmierelemente. Zum Beispiel haben sie auch Schaltflächen, Textfelder, Optionsfelder usw. Die Flash-Datei muss einige interne Methoden aufrufen, um die Aufgabe auszuführen. Beispielsweise kann der Flash-Inhalt einer Schaltfläche dazu führen, dass sich die Hintergrundfarbe des Flash-Inhalts ändert. Zur Rettung verwenden wir das ActionScript, es macht eine Klasse namens External Interface für die Entwickler verfügbar. Diese Klasse ist am wichtigsten, wenn Sie die internen Methoden der Flash-Datei der Außenwelt zugänglich machen möchten. Die Außenwelt ist der Browser, der den Inhalt hostet. Wenn wir also unsere internen Methoden aus der Flash-Datei dem Browser zur Verfügung stellen, können wir sie direkt mit JavaScript aufrufen.
Verschiedene Möglichkeiten zum Testen von Flash-Anwendungen
Flash-Anwendungen können auf zwei Arten getestet werden Handbuch & Automatisierung:
Handbuch: Es ist einfach und leicht zu testen, indem die Testfälle manuell ausgeführt werden, um das Flash-Objekt zu testen.
Automatisierung: Um das Skript auszuführen, müssen wir ein Skript mit Automatisierungstools wie TestComplete, Selenium, SoapUI und Test Studio schreiben.
Unterschied zwischen Flash und anderen Elementen
Flash ist in SWF-Dateien eingebettet, wo andere Elemente in HTML-Dateien eingebettet sind. Deshalb ist HTML im Vergleich zu Flash einfach zu erfassen.
Wie können Sie eine Flash-Film- oder Flash-App-Objekt-ID erhalten?
In allen Webseiten definiert das < object > -Tag ein eingebettetes Objekt mit beliebigen Multimedia-Inhalten wie Video, ActiveX, Flash, Java-Applets, ActiveX, PDF usw. in Ihren Webseiten. Es zeigt „Einbetten“ in ein HTML-Dokument an. Dieses Tag beschreibt einen Container, der in < object /> – oder < embed /> -Tags in einem HTML-Code für interaktive Inhalte oder externe Anwendungen eingebettet ist. Um das Flash-Objekt auf Webseiten zu finden, wird der Objektname verwendet. Sie können auch das < -Objekt> -Tag verwenden, um eine andere Webseite in Ihr HTML-Dokument einzubetten.
Der Flash-Film ist beispielsweise in einem „embed“ -Tag in einem HTML-Dokument oder einer HTML-Datei definiert.
Beispiel:
/* Html page*/<html><body marginwidth="0" marginheight="0"><embed width="100%" height="100%" name="plugin" src="http://video/movieplay.swf" type="application/flash"/></body></html>
Wie führe ich Flash-Tests mit Selenium Webdriver durch?
Um die Flash-Bibliothek zu importieren, müssen Sie die Flash Selenium JAR-Datei herunterladen. Sie können den Flash herunterladen.jar-Datei für Selenium WebDriver über den Link https://drive.google.com/drive/folders/0B5v_nInLNoquN3hRbmJFYXpCb28. Sobald der Download abgeschlossen ist, müssen Sie die JAR-Datei zu Ihrem Projekt hinzufügen.
Sobald alle erforderlichen Voraussetzungen erfüllt sind, müssen Sie die FlashObjectWebDriver-Klasse aufrufen. Diese Klasse wird verwendet, um die Aktionen auf Flash-Playern auszuführen.
Syntax:
FlashObjectWebDriver flash = new FlashObjectWebDriver(webDriver, " flash object");
Flash-Anwendung kann auf zwei Arten getestet werden:
- Der Entwickler stellt Flash-Methoden zum Testen bereit und umgeht sie durch JavaScript-Code.
- Unabhängige Tester haben keinen Zugriff auf den von Entwicklern bereitgestellten Quellcode, daher verwenden Tester ein bildbasiertes Tool namens Sikuli, das Bilder verwendet, um Benutzeraktionen auszuführen.
Erstellung eines Selenium-Skripts für Flash-Tests.
Unter dem Beispiel fungiert das Programm als Videoplayer
Es stehen einige vordefinierte Methoden zum Testen von YouTube-Flash-Anwendungen zur Verfügung.
- playVideo
- pauseVideo
- mute
- setVolume
- seekTo
Beispiel:
Schritt 1: Schreiben Sie ein Selenium-Skript in Eclipse und führen Sie es aus. Der folgende Code führt die folgenden Dinge aus, wenn wir das Skript ausführen.
- Starten Sie den Chrome-Browser
- Starten Sie die Site
- Spielen Sie das Video ab
- Stoppen Sie das Video
- Spulen Sie das Video zurück
Wenn die Entwickler einige Flash-Methoden bereitstellen, zeigt das folgende Beispiel, dass die Beispielanwendung den Flash-Methoden entspricht.Schritt 1:
Erstellen Sie die FlashWebDriver-Klasse und führen Sie Benutzeraktionen für die Flash-Anwendung mithilfe von JavaScript intern aus.
package com.java.selenium;import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;public class FlashTesting{ private final WebDriver webdriver; private final String flashObjectId ; public FlashWebDriver(final WebDriver webdriver,final String flashObjectId) { this.webdriver=webdriver; this.flashObjectId=flashObjectId; } public String click(final String objectId,final String buttonLabel) { return callFlashObject("DoFlashClick",objectId,buttonLabel); } public String click(final String objectId) { return callFlashObject(objectId,""); } public String callFlashObject(final String functionName,final String... args) { final Object result=((JavascriptExecutor) webdriver).executeScript (makeJsFuntion(functionName,args), new Object); return result!=null ? result.toString() :null;}private String makeJsFuntion(final String functionName,final String... args) {final StringBuffer functionArgs=new StringBuffer(); if(args.length>0) { for(int i=0;i<args.length;i++) { if(i>0) { functionArgs.append(","); } functionArgs.append(String.format("'%1$s'", args)); } }return String.format("return document.%1$s.%2$s(%3$s);", flashObjectId, functionName,functionArgs); }}
Schritt 2:
package com.java.selenium;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;public class FlashTesting { public static void main(String args) throws InterruptedException {WebDriver driver;System.setProperty("webdriver.gecko.driver", "C:\drivers\geckodriver.exe");driver = new FirefoxDriver();driver.get("http://www.permadi.com/tutorial/flashjscommand/");driver.manage().window().maximize();FlashWebDriver flashApp = new FlashWebDriver(driver, "myFlashMovie");flashApp.callFlashObject("Play"); // first numberThread.sleep(3000L);flashApp.callFlashObject("StopPlay"); // operationThread.sleep(3000L);flashApp.callFlashObject("Rewind"); System.out.println(flashApp.callFlashObject("GetVariable","/:message"));flashApp.callFlashObject("SetVariable","/:message","Learn Flash testing with Webdriver");System.out.println(flashApp.callFlashObject("GetVariable","/:message")); }}
Schritt 2: Führen Sie das obige Skript aus.
Ausgabe: Sobald wir das obige Skript ausführen, beginnt das Video abzuspielen, zu stoppen und das Video zurückzuspulen.
Herausforderungen beim Flash-Test
- Um die Flash-Anwendung zu automatisieren, können Sie FlexMonkium verwenden, ein Add-On für Selenium IDE.
- Bei Verwendung der Selenium-Flexmonkium-Integration tritt möglicherweise ein Problem beim Aktivieren von Flex-Apps für die Aufnahme / Wiedergabe auf. Um das Problem zu beheben, muss der Benutzer Flexmonkium sehr sorgfältig installieren und in die Selenium-IDE integrieren. Durch die ordnungsgemäße Installation kann der Datensatz Flash-Apps automatisieren.
Fazit:
- Bei Flash-Tests müssen Sie die jeweiligen Animationsvideos, Filme, Spiele usw. überprüfen. wie erwartet oder nicht
- Der Unterschied zwischen Flash und anderen Elementen besteht darin, dass Flash in SWF-Dateien eingebettet ist, während andere Elemente in HTML-Dateien eingebettet sind
- Um das Flash-Objekt zu finden, verwenden Sie Attribute wie die Objekt-ID. Daher können Sie Vorgänge wie Abspielen, Stoppen, Stummschalten, Fortsetzen usw. ausführen.
- Testwerkzeuge für Flash-Tests erforderlich.
- Selen
- TestComplete
- Soap UI
- Teststudio usw.
- Um die Flash-Anwendungen abzuspielen, benötigen wir die folgenden Plugins, die wie folgt aufgeführt sind:
- OpenFL
- Adobe Luft
- Blitz-Spieler
- Gnash