使用Selenium WebDriver进行Flash测试

什么是Flash测试?

Flash测试是一种测试类型,用于检查基于Flash的视频、游戏、电影等。它用于开发游戏、应用程序、基于图形的动画、电影、手机游戏、程序等

在Selenium Automation中,如果通用定位符(如id、class、name等)找不到元素。t但在Flash测试中,XPath无法访问Flash对象。因此,在任何应用程序中查找Flash对象都需要Flashwebdriver对象。

Flash Testing with Selenium
Flash Testing with Selenium

在这里,将看到如何执行Flash测试以及如何使用Selenium进行Flash测试。

在本教程中,将了解-

  • 什么是Flash测试?
  • Flash测试与其他元素有何不同
  • 如何获取FLASH电影/FLASH APP的FLASH对象ID
  • 如何使用Selenium IDE录制实现Flash自动化
  • 如何使用Selenium Webdriver自动化Flash。
  • 创建用于Flash测试的Selenium脚本。

Flash测试的前提条件

以下是测试Flash应用程序的要求

  1. Flash应用程序。
  2. 支持Web浏览器。
  3. Adobe Flash Player插件。

工具-以下是在Flash测试中有用的测试工具。

  1. Selenium
  2. SOAP UI
  3. 测试完成
  4. Test Studio等。

Selenium是一种非常流行的Web测试工具。可以通过它创建框架,它易于配置、使用和实现。

Flash测试与其他元素有何不同

  • 为什么FLASH对象捕捉很难?它是如何解决的?

Flash是一项过时的技术。捕获Flash对象很困难,访问移动设备上的Flash对象也很困难。

开发flash比从SEO(搜索引擎优化)的角度开发HTML页面要困难得多,因为flash不能完全被搜索引擎读取。但是,引入了HTML5等高级技术来克服性能和安全性等问题。

  • 测试FLASH应用程序的方式。

Flash应用程序通过两种方式进行测试:

  • 手动-可以通过手动执行测试用例来测试Flash对象,因为它既简单又容易测试。在修复错误之后,需要确保flash正常工作,并提供Signing Off。
  • 自动化-使用任何自动化工具(如Selenium、SoapUI、TestComplete等)编写脚本并执行脚本。

  • Flash与其他元素之间的区别。

如上所述,Flash与其他元素的主要区别在于Flash嵌入到SWF文件中,而其他元素嵌入到HTML文件中。这就是为什么与Flash相比,HTML更容易捕获。

如何获取flash电影/flash app的flash对象ID

在任何Web页面中, 标记用于任何嵌入的多媒体(如Flash、ActiveX、Video等)。对象名用于定位网页上的flash对象。

例如,在下面的示例中,可以看到Flash电影是在HTML文档或文件的“embed”标记中定义的。

示例:

/* 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元素。

可以使用flash属性(如对象ID)来定位flash对象。从而可以根据需要对其执行播放、停止等操作。

如前所述,不能使用XPath访问Flash对象。因此,为了对这些对象执行任何操作,开发人员需要分配适当的对象ID。

下面的屏幕显示为Flash分配的对象ID“MyFlashMovie”:

Flash Testing with Selenium
Flash Testing with Selenium

如何使用Selenium IDE录制实现Flash自动化

还可以使用Selenium IDE自动执行Flash。

步骤1)需要打开FLASH应用,然后打开Selenium IDE,如下图所示:

Flash Testing with Selenium
Flash Testing with Selenium

步骤2)现在点击右侧的“录制红色按钮”,开始对Flash电影进行操作,即可找到录制的脚本,如下图所示:

Flash Testing with Selenium
Flash Testing with Selenium

录制后,如果用户想要执行脚本,则可以单击绿色的“运行按钮”,如下面的屏幕所示。Selenium IDE将逐步执行该脚本。

Flash Testing with Selenium
Flash Testing with Selenium

如何使用Selenium Webdriver自动化Flash。

还可以通过Flashwebdriver对象使用Selenium web驱动程序自动执行flash,然后调用一个方法来操作flash对象。需要下载flashwebdriver jar文件:

步骤1)下载完成后,将JAR文件添加到工程中,如下图所示。

Flash Testing with Selenium
Flash Testing with Selenium

步骤2)在flash jar文件下有一个单独的flashobjectwebdriver类。在Selenium脚本中实现flashWebdriver“myFlashMovie”,如Screen中所示。

Flash Testing with Selenium
Flash Testing with Selenium

添加Web驱动程序类“MyFlashMovie”后,可以访问Flash对象。

何时自动执行Flash测试

通常,当Flash对象不容易访问时,需要自动执行Flash测试。这会导致测试中止,因此无法测试Flash对象。

创建用于Flash测试的Selenium脚本。

步骤1)使用《Guru99》Flash电影对Flash场景进行测试。

http://www.itxiaonv.com/test/flash-testing.html

Flash Testing with Selenium
Flash Testing with Selenium

步骤2)在Selenium Eclipse中编写脚本并执行。下面的代码在执行时将执行以下操作

  • 打开Firefox浏览器,
  • 启动guru99 Flash网站,
  • 播放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 separate FlashObjectWebDriver class
        FlashObjectWebDriver flashApp = new FlashObjectWebDriver(driver, "myFlashMovie");
        // Pass the URL of video
        driver.get("http://www.itxiaonv.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应用程序是一项挑战。要自动化flash app,可以使用FlexMonkium,这是Selenium IDE的一个附加组件。
  • 使用Selenium-Flexmonkium集成启用录制/回放Flex应用程序可能会遇到问题。正确安装将使Record能够自动执行Flash应用程序。

总结:

  • 在Flash测试中,需要检查Flash视频、游戏、电影等是否正常工作。
  • 可以使用flash属性(如对象id)来定位flash对象。从而可以根据需要对其执行播放、停止等操作。
  • Flash与其他元素的主要区别在于,Flash嵌入到SWF文件中,而其他元素嵌入到HTML文件中
  • 当Flash对象不容易访问时,通常需要自动执行Flash测试。
  • Flash测试中有用的工具有
  1. Selenium
  2. SOAP UI
  3. 测试完成
  4. Test Studio等。
  • 自动化flash应用程序是一项挑战。要自动化flash app,可以使用FlexMonkium,这是Selenium IDE的一个附加组件。

IT赶路人

专注IT知识分享