フラッシュテスト Selenium webdriver

⚡ スマートサマリー

フラッシュテスト Selenium WebDriver は、Flash ベースのビデオ、ゲーム、アニメーションが正しく機能することを検証します。このリソースでは、埋め込み SWF オブジェクトのキャプチャ、オブジェクト ID の割り当て、および再生の自動化について説明します。 Selenium IDEによる記録機能と、信頼性の高い検証のためのFlashObjectWebDriverクラス。

  • 📌 主な目的: Flashテストは、埋め込まれたSWFメディア(ビデオ、ゲーム、アニメーションなど)が設計どおりに動作することを確認するものです。
  • 🔎 ロケーターチャレンジ: XPathではFlashオブジェクトにアクセスできないため、専用のFlashObjectWebDriverオブジェクトが割り当てられたオブジェクトIDを介してFlashオブジェクトを特定します。
  • 🎬 記録方法: Selenium IDEはFlashムービー上で行われた操作を記録し、緑色の「実行」ボタンで再生します。
  • 💻 WebDriverメソッド: FlashObjectWebDriverクラスは、Play、StopPlay、およびSetVariableを呼び出して、プログラムによってFlashを制御します。
  • ⚠️ キー制限: Flash は非推奨です。FlexMonkium は拡張されています Selenium IDEでネイティブの録画と再生が失敗した場合。

フラッシュテスト Selenium webdriver

フラッシュテストとは何ですか?

Flash テストは、Flash ベースのビデオ、ゲーム、映画などが期待どおりに動作していることを確認するために使用されるテストの種類です。言い換えれば、Flash の機能をテストすることは、 フラッシュテスト。 Flash は Macromedia (現在は Adob​​e に買収) が開発した人気のソフトウェアです。ゲーム、アプリケーション、グラフィックベースのアニメーション、映画、 モバイル ゲーム、プログラムなど

In Selenium 要素が一般ロケーターで見つからない場合の自動化 ID、クラス、名前などをタップし、その後、 XPath 特定の要素に対して操作を実行するには、Web ページ上の要素を見つける必要があります。しかし、Flash テストでは、 XPath Flashオブジェクトへのアクセスに失敗します。そのため、アプリケーション内でFlashオブジェクトを見つけるには、Flashwebdriverオブジェクトが必要です。

フラッシュテスト

ここではフラッシュを実行する方法を説明します。 テスト フラッシュテストを行う方法 Selenium.

フラッシュテストの前提条件

開始する前に、Flashアプリケーションをテストするために必要な要件を以下に示します。

  1. フラッシュアプ​​リケーション。
  2. 対応ウェブブラウザ。
  3. Adobe Flash プレーヤーのプラグイン。

ツール- 以下はフラッシュテストに役立つテストツールです。

  1. Selenium
  2. ソープUI
  3. TestComplete
  4. テストスタジオなど

Selenium は、Webテストにおいて非常に人気のあるツールです。様々なプラットフォームや言語に対応したフレームワークを作成できます。オープンソースツールであり、公式サイトからダウンロード可能です。設定、使用、実装も簡単です。

Flashのテストが他の要素とどう違うのか

前提条件が整ったので、テスト中にFlashが標準のHTML要素とは異なる動作をする理由を理解しておくと役立ちます。

  • Flashオブジェクトのキャプチャが難しいのはなぜですか?どのように解決できますか?

Flashは時代遅れの技術です。FlashオブジェクトはHTMLとは異なるため、キャプチャするのが困難です。また、Flashは埋め込み型のSWFファイル(Small Web Format)です。さらに、モバイルデバイスでFlashオブジェクトにアクセスするのも困難です。

開発ping FlashはDevelopよりも難しいping SEO(検索エンジン最適化)の観点からは、HTMLページの方が優れています。なぜなら、Flashは検索エンジンによって完全に読み取ることができないからです。しかし、パフォーマンスやセキュリティなどの問題を克服するために、HTML5のような高度な技術が導入されています。

  • Flashアプリケーションはどのような方法でテストされるのですか?

Flash アプリケーションは次の XNUMX つの方法でテストされます。

  • マニュアル– Flash オブジェクトはシンプルで簡単にテストできるため、テスト ケースを手動で実行してテストできます。 バグを修正した後、フラッシュが期待どおりに適切に動作していることを確認し、サインオフします。
  • 自動化– 次のような自動化ツールを使用してスクリプトを作成します。 Selenium, SoapUI, TestCompleteなどと入力してスクリプトを実行します。
  • Flashとその他の要素との違い。

前述のとおり、Flashと他の要素の主な違いは、FlashはSWFファイルに埋め込まれているのに対し、他の要素はHTMLファイルに埋め込まれている点です。そのため、HTMLはFlashに比べてキャプチャしやすいのです。

Flashムービー/FlashアプリのFlashオブジェクトIDを取得するにはどうすればよいですか?

FlashとHTMLの違いが分かったら、次のステップはオブジェクトIDを使ってFlashオブジェクト自体を特定することです。

ウェブページでは、埋め込みマルチメディア(Flash、ActiveX、ビデオなど)には、<object>タグが使用されます。これはHTMLドキュメント内に「埋め込む」ことを意味します。このタグは、インタラクティブコンテンツや外部アプリケーションのために、HTMLドキュメント内の<object />タグまたは<embed />タグで埋め込まれるコンテナを定義します。オブジェクト名は、ウェブページ上のFlashオブジェクトを特定するために使用されます。

例えば、以下の例では、HTMLドキュメントまたはファイル内の「embed」タグでFlashムービーが定義されていることがわかります。

例:

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

オブジェクトIDを使用してFlash要素を検索する。

オブジェクト ID などのフラッシュ属性を使用して、フラッシュ オブジェクトを見つけることができます。これにより、必要に応じて再生、停止などの操作を実行できます。

既に述べたように、FlashオブジェクトにはXPathを使用してアクセスすることはできません。そのため、これらのオブジェクトに対して何らかの操作を行うには、開発者は適切なオブジェクトIDを割り当てる必要があります。

以下の画面は、Flash にオブジェクト ID「MyFlashMovie」が割り当てられていることを示しています。

Flashムービー/FlashアプリのFlashオブジェクトID

を使用して Flash を自動化する方法 Selenium IDE 録音

オブジェクトIDが割り当てられると、Flashムービー上でのインタラクションを直接記録できます。 Selenium IDE

次を使用してフラッシュを自動化することもできます Selenium IDE

ステップ1) フラッシュアプ​​リケーションを開いてから Selenium IDEは以下の画面に表示されます。

を使用して Flash を自動化する Selenium IDE の記録

ステップ2) 右側の「赤い録画ボタン」をクリックしてFlashムービーの操作を開始すると、以下に示すような録画されたスクリプトが表示されます。

を使用して Flash を自動化する Selenium IDE の記録

記録後、ユーザーがスクリプトを実行したい場合は、下の画面に示すように「緑色の実行ボタン」をクリックできます。 Selenium IDE はスクリプトをステップごとに実行します。

を使用して Flash を自動化する Selenium IDE の記録

を使用して Flash を自動化する方法 Selenium ウェブドライバー

録画機能以上の制御を実現するには、 Selenium WebDriverを使用すると、Flashオブジェクトをプログラムで操作できます。

次を使用してフラッシュを自動化することもできます Selenium Flashwebdriverオブジェクトを介してWebドライバを操作し、Flashオブジェクトを操作するメソッドを呼び出します。 flashwebdriver jar ファイルをダウンロードする:

ステップ1) ダウンロード後、以下の画面に示すように、jarファイルをプロジェクトに追加してください。

Flash jar ファイルを追加する Selenium プロジェクト

ステップ2) Flash JARファイルには、flashobjectwebdriverクラスが別途含まれています。以下の画面に示すように、seleniumスクリプト内でflashWebdriver「myFlashmovie」を実装してください。

flashWebdriverを実装する Selenium スクリプト

ウェブドライバクラス「MyFlashMovie」を追加すると、Flashオブジェクトにアクセスできるようになります。

フラッシュテストを自動化する場合

通常、Flashオブジェクトに容易にアクセスできない場合、Flashテストを自動化する必要があります。アクセスできない場合、テストが中断され、Flashオブジェクトのテストが失敗します。

Flashテスト用のSeleniumスクリプトを作成する

これまでの手順をまとめると、起動と制御を行う完全な動作スクリプトがここにあります。 Guru99 デモフラッシュムービー。

ステップ1) 「Guruフラッシュシナリオをテストするための99秒のフラッシュムービー。

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

Guru99 デモ フラッシュ ムービー Selenium テスト

ステップ2) にスクリプトを書きます Selenium Eclipseで実行してください。以下のコードを実行すると、次の処理が行われます。

  • Video Cloud Studioで Firefox ブラウザ、
  • guru99フラッシュサイトを起動し、
  • Flashムービーを再生して、
  • それから映画を止めてください。
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"));
    }
}

ステップ3) 上記のスクリプトを実行してください。

出力: 上記のスクリプトを実行すると、Flashムービーが再生され、停止するなどの動作が行われます。

フラッシュテストの課題

  • Flashアプリの自動化は難しい。Flashアプリを自動化するには、FlexMonkiumを使用できます。これは、 Selenium IDE
  • Flexアプリの録画/再生を有効にする際に問題が発生する可能性があります。 Selenium-Flexmonkiumとの統合。解決策は、ユーザーがFlexmonkiumをインストールして統合する必要があることです。 Selenium IDEを慎重にインストールしてください。正しくインストールすれば、Flashアプリの自動化のための録画機能が有効になります。

よくあるご質問

Adobe は 2020 年 12 月 31 日に Flash Player のサポートを正式に終了しました。Flash テストは現在、主にレガシー システムに適用されます。ほとんどのアプリケーションは HTML5 に移行しており、 Selenium 特別なFlashライブラリを使用せずに自動化します。

Flashコンテンツは、HTML DOM要素としてではなく、ページに埋め込まれたコンパイル済みのSWFオブジェクト内でレンダリングされます。XPathはDOMを走査するため、内部のFlashコントロールにはアクセスできません。そのため、オブジェクトIDとFlashObjectWebDriverが必要です。

FlexMonkiumは、 Selenium FlexおよびFlashアプリケーションの記録と再生を可能にするIDE。正しくインストールすれば、テスターは通常アクセスできないFlashオブジェクト上の操作をキャプチャして再生できます。

AIベースのビジュアルテストツールは、DOMではなく画像認識とパターン認識によって画面上のFlash要素を認識します。これにより、従来のロケーターでは検出できないアニメーションやインタラクションを検証することが可能になります。

はい。AI 支援ツールは既存の Flash テスト手順を分析し、同等の HTML5 ロケーターとスクリプトを提案します。これにより、次のような最新のフレームワークへの移行が加速されます。 Selenium WebDriverは、手作業による再作業を削減します。