Test Flash avec Selenium pilote web

โšก Rรฉsumรฉ intelligent

Test Flash avec Selenium WebDriver vรฉrifie le bon fonctionnement des vidรฉos, jeux et animations Flash. Cette ressource explique comment capturer les objets SWF intรฉgrรฉs, leur attribuer des identifiants et automatiser leur lecture. Selenium Enregistrement IDE et classe FlashObjectWebDriver pour une validation fiable.

  • ๐Ÿ“Œ Objectif principal : Les tests Flash vรฉrifient que les mรฉdias SWF intรฉgrรฉs (vidรฉos, jeux et animations) se comportent exactement comme prรฉvu.
  • ???? Dรฉfi de localisation : XPath ne peut pas accรฉder aux objets Flash, c'est pourquoi un objet FlashObjectWebDriver dรฉdiรฉ les localise grรขce ร  l'ID d'objet attribuรฉ.
  • ๐ŸŽฌ Mรฉthode d'enregistrement: Selenium L'IDE enregistre les actions effectuรฉes sur un film Flash et les rejoue avec le bouton vert Exรฉcuter.
  • ๐Ÿ’ป Mรฉthode WebDriver : La classe FlashObjectWebDriver appelle les fonctions Play, StopPlay et SetVariable pour contrรดler Flash par programmation.
  • โš ๏ธ Limitation clรฉ : Flash est obsolรจte ; FlexMonkium l'รฉtend Selenium IDE lorsque l'enregistrement et la lecture natifs รฉchouent.

Test Flash avec Selenium pilote web

Quโ€™est-ce que le test Flash ?

Les tests Flash sont un type de test utilisรฉ pour vรฉrifier que les vidรฉos, jeux, films, etc. basรฉs sur Flash fonctionnent comme prรฉvu. En d'autres termes, tester la fonctionnalitรฉ de Flash est appelรฉ Tests flash. Flash est un logiciel populaire dรฉveloppรฉ par Macromedia (dรฉsormais rachetรฉ par Adobe). Il est utilisรฉ pour dรฉvelopper des jeux, des applications, des animations graphiques, des films, etc. Mobile jeux, programmes, etc.

In Selenium Automatisation, si les รฉlรฉments ne sont pas trouvรฉs par les localisateurs gรฉnรฉraux comme l'identifiant, la classe, le nom, etc., puis XPath Il est nรฉcessaire de trouver un รฉlรฉment sur la page web pour effectuer une opรฉration sur cet รฉlรฉment particulier. Mais lors des tests Flash, XPath L'accรจs ร  un objet Flash รฉchoue. Un objet FlashWebDriver est donc nรฉcessaire pour localiser un objet Flash dans n'importe quelle application.

Tests flash

Ici vous verrez comment exรฉcuter Flash Tests et comment faire des tests flash avec Selenium.

Prรฉ-requis pour les tests Flash

Avant de commencer, voici les exigences pour tester une application Flash :

  1. Application Flash.
  2. Navigateur Web compatible.
  3. Plugins du lecteur Adobe Flash.

Outils- Vous trouverez ci-dessous les outils de test utiles pour les tests flash.

  1. Selenium
  2. Interface utilisateur du savon
  3. TestComplete
  4. Studio d'essais, etc.

Selenium est un outil trรจs populaire pour les tests web. Il permet de crรฉer un framework multiplateforme et multilangage. C'est un logiciel libre, tรฉlรฉchargeable depuis le site officiel. Il est facile ร  configurer, ร  utiliser et ร  mettre en ล“uvre.

En quoi les tests Flash diffรจrent-ils des autres รฉlรฉments ?

Maintenant que les prรฉrequis sont rรฉunis, il est utile de comprendre pourquoi Flash se comporte diffรฉremment des รฉlรฉments HTML standard lors des tests.

  • Pourquoi la capture d'objets au flash est-elle difficile ? Comment ce problรจme est-il rรฉsolu ?

Flash est une technologie obsolรจte. Il est difficile de capturer un objet Flash car il diffรจre du HTML. De plus, Flash est un fichier SWF (Small Web Format) intรฉgrรฉ. Il est รฉgalement difficile d'accรฉder ร  un objet Flash sur un appareil mobile.

Dรฉvelopperping Flash est plus difficile que le dรฉveloppementping Du point de vue du rรฉfรฉrencement (SEO), une page HTML est ร  proscrire car Flash n'est pas entiรจrement lisible par les moteurs de recherche. Cependant, des technologies avancรฉes comme HTML5 ont รฉtรฉ introduites pour pallier les problรจmes de performance et de sรฉcuritรฉ.

  • De quelles maniรจres une application Flash est-elle testรฉe ?

Les applications Flash sont testรฉes de deux maniรจres :

  • Manuel - Vous pouvez tester l'objet Flash en exรฉcutant des cas de test manuellement car il est simple et facile ร  tester. Aprรจs la correction du bug, vous vous assurez que Flash fonctionne correctement comme prรฉvu et vous vous dรฉconnectez.
  • Automatisation - Vous รฉcrivez un script ร  l'aide d'un outil d'automatisation comme Selenium, SoapUI, TestComplete, etc. et exรฉcutez le script.
  • Diffรฉrence entre Flash et les autres รฉlรฉments.

Comme indiquรฉ prรฉcรฉdemment, la principale diffรฉrence entre Flash et les autres รฉlรฉments rรฉside dans leur intรฉgration : Flash est intรฉgrรฉ dans des fichiers SWF, tandis que les autres รฉlรฉments sont intรฉgrรฉs dans des fichiers HTML. Cโ€™est pourquoi le HTML est plus facile ร  capturer que Flash.

Comment obtenir l'identifiant d'objet Flash d'un film ou d'une application Flash ?

Une fois que vous savez en quoi Flash diffรจre de HTML, l'รฉtape suivante consiste ร  localiser l'objet Flash lui-mรชme grรขce ร  son identifiant d'objet.

Sur toute page web, la balise `<object>` est utilisรฉe pour tout รฉlรฉment multimรฉdia intรฉgrรฉ (comme Flash, ActiveX, vidรฉo, etc.). Elle indique qu'un รฉlรฉment est ยซ intรฉgrรฉ ยป dans un document HTML. Cette balise dรฉfinit un conteneur intรฉgrรฉ dans les balises `<object />` ou `<embed />` d'un document HTML pour du contenu interactif ou une application externe. Le nom de l'objet permet de localiser l'รฉlรฉment Flash sur les pages web.

Par exemple, dans l'exemple ci-dessous, vous pouvez voir que le film Flash est dรฉfini dans une balise ยซ embed ยป dans un document ou un fichier HTML.

Exemple :

/* 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>

Utilisation de l'identifiant d'objet pour trouver les รฉlรฉments Flash.

Vous pouvez utiliser des attributs Flash tels que l'identifiant de l'objet pour localiser l'objet Flash. Et ainsi, vous pouvez effectuer des opรฉrations dessus selon vos besoins, comme lire, arrรชter, etc.

Comme nous l'avons dรฉjร  รฉvoquรฉ, les objets Flash ne sont pas accessibles via XPath. Par consรฉquent, pour interagir avec ces objets, le dรฉveloppeur doit leur attribuer un identifiant appropriรฉ.

La capture d'รฉcran ci-dessous montre que l'identifiant d'objet ยซ MyFlashMovie ยป est attribuรฉ ร  Flash :

ID d'objet Flash de l'animation Flash/de l'application Flash

Comment automatiser Flash en utilisant Selenium Enregistrement IDE

Une fois l'identifiant de l'objet attribuรฉ, vous pouvez enregistrer les interactions sur le film Flash directement via Selenium IDE

Vous pouvez รฉgalement automatiser le flash en utilisant Selenium IDE

ร‰tape 1) Vous devez ouvrir l'application Flash, puis Selenium IDE tel qu'illustrรฉ dans la capture d'รฉcran ci-dessous :

Automatisez Flash en utilisant Selenium Enregistrement IDE

ร‰tape 2) Cliquez maintenant sur le bouton rouge ยซ Enregistrer ยป situรฉ ร  droite et commencez ร  effectuer des opรฉrations sur le film Flash. Vous trouverez ensuite le script enregistrรฉ comme indiquรฉ ci-dessous :

Automatisez Flash en utilisant Selenium Enregistrement IDE

Aprรจs l'enregistrement, si l'utilisateur souhaite exรฉcuter le script, il peut cliquer sur le bouton vert ยซ Exรฉcuter ยป, comme indiquรฉ dans la capture d'รฉcran ci-dessous. Selenium IDE exรฉcutera le script รฉtape par รฉtape.

Automatisez Flash en utilisant Selenium Enregistrement IDE

Comment automatiser Flash en utilisant Selenium Pilote Web

Pour un contrรดle plus poussรฉ que celui offert par l'enregistrement, Selenium WebDriver vous permet de piloter l'objet Flash par programmation.

Vous pouvez รฉgalement automatiser le flash en utilisant Selenium Utilisez le pilote web via l'objet FlashWebDriver, puis appelez une mรฉthode pour interagir avec l'objet Flash. Vous devezโ€ฆ tรฉlรฉcharger les fichiers jar flashwebdriver:

ร‰tape 1) Aprรจs le tรฉlรฉchargement, ajoutez le fichier jar ร  votre projet comme indiquรฉ dans la capture d'รฉcran ci-dessous.

Ajouter le fichier JAR Flash dans Selenium Projet

ร‰tape 2) Sous le fichier JAR Flash se trouve une classe FlashObjectWebDriver distincte. Implรฉmentez le FlashWebDriver ยซ myFlashmovie ยป dans votre script Selenium comme indiquรฉ ci-dessous.

Implรฉmenter flashWebdriver dans Selenium scรฉnario

Aprรจs avoir ajoutรฉ la classe du pilote Web ยซ MyFlashMovie ยป, vous pouvez accรฉder ร  l'objet Flash.

Quand automatiser les tests flash

Il est gรฉnรฉralement nรฉcessaire d'automatiser les tests Flash lorsque l'objet Flash est difficilement accessible. Dans ce cas, le test est interrompu et l'objet Flash ne peut donc pas รชtre testรฉ.

Crรฉation d'un script Selenium pour les tests Flash

En rassemblant les รฉtapes prรฉcรฉdentes, voici un script fonctionnel complet qui lance et contrรดle le Guru99 vidรฉos de dรฉmonstration en flash.

ร‰tape 1) Vous utilisez le ยซGuruFilm flash de 99 secondes pour tester le scรฉnario flash.

https://demo.guru99.com/test/flash-testing.html

Guru99 films de dรฉmonstration Flash pour Selenium vers les tests

ร‰tape 2) ร‰crivez un script dans Selenium Ouvrez Eclipse et exรฉcutez-le. Le code ci-dessous, une fois exรฉcutรฉ, effectuera les opรฉrations suivantes :

  • Ouvrez le Firefox navigateur,
  • Lancez le site flash guru99,
  • Jouez l'animation flash et
  • Puis arrรชtez le film.
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"));
    }
}

ร‰tape 3) Exรฉcutez le script ci-dessus.

Sortie : Lors de l'exรฉcution du script ci-dessus, le film flash dรฉmarre et s'arrรชte, etc.

Dรฉfis des tests Flash

  • L'automatisation d'une application Flash reprรฉsente un dรฉfi. Pour automatiser une application Flash, vous pouvez utiliser FlexMonkium, un module complรฉmentaire pour Selenium IDE
  • Vous pourriez rencontrer des problรจmes lors de l'activation de l'enregistrement/de la lecture des applications Flex ร  l'aide de Selenium-Intรฉgration de Flexmonkium. La solution consiste pour l'utilisateur ร  installer et ร  intรฉgrer Flexmonkium ร  Selenium Utilisez l'IDE avec prรฉcaution. Une installation correcte permettra l'enregistrement pour automatiser les applications Flash.

FAQ

Adobe a officiellement mis fin ร  la prise en charge de Flash Player le 31 dรฉcembre 2020. Les tests Flash concernent dรฉsormais principalement les systรจmes anciens, la plupart des applications ayant migrรฉ vers HTML5. Selenium Automatisation sans bibliothรจques Flash spรฉciales.

Le contenu Flash s'affiche dans un objet SWF compilรฉ, intรฉgrรฉ ร  la page, et non sous forme d'รฉlรฉments DOM HTML. Comme XPath parcourt le DOM, il ne peut pas accรฉder aux contrรดles Flash internes ; un identifiant d'objet et FlashObjectWebDriver sont donc nรฉcessaires.

FlexMonkium est un module complรฉmentaire qui s'intรจgre avec Selenium IDE permettant l'enregistrement et la lecture d'applications Flex et Flash. Une installation correcte permet aux testeurs de capturer et de rejouer des actions sur des objets Flash autrement inaccessibles.

Les outils de test visuel basรฉs sur l'IA reconnaissent les รฉlรฉments Flash ร  l'รฉcran grรขce ร  la reconnaissance d'images et de motifs, plutรดt qu'ร  l'analyse du DOM. Cela permet aux รฉquipes de valider les animations et les interactions que les localisateurs traditionnels ne peuvent pas dรฉtecter.

Oui. Les outils d'IA analysent les รฉtapes de test Flash existantes et suggรจrent des localisateurs et des scripts HTML5 รฉquivalents. Cela accรฉlรจre la migration vers des frameworks modernes comme Selenium WebDriver tout en rรฉduisant les interventions manuelles.

Rรฉsumez cet article avec :