使用 Flash 进行测试 Selenium 网络驱动程序

什么是 Flash 测试?

Flash 测试是一种测试类型,用于检查基于 Flash 的视频、游戏、电影等是否按预期运行。换句话说,测试 Flash 的功能被称为 闪光测试。 Flash 是一款非常流行的软件,由 Mircomedia(现已被 Adob​​e 收购)开发。它用于开发游戏、应用程序、基于图形的动画、电影、 联络号码 游戏、程序等。

In Selenium 如果通用定位器找不到元素,则进行自动化 比如 id、class、name 等。 然后 XPath的 需要找到网页上的某个元素,然后对该特定元素执行操作。但在 Flash 测试中, XPath的 无法访问 Flash 对象。因此,需要 Flashwebdriver 对象才能在任何应用程序中查找 Flash 对象。

闪光测试

在这里你将看到如何执行 flash 测试 以及如何使用 Selenium.

Flash 测试的先决条件

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

  1. Flash 应用程序。
  2. 支持网络浏览器。
  3. Adobe Flash 播放器插件。

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

  1. Selenium
  2. 肥皂用户界面
  3. 测试完成
  4. 测试工作室等

Selenium 是一款非常流行的 Web 测试工具。您可以跨不同平台和使用不同语言创建框架。它是一款开源工具,可从官方网站下载。它易于配置、使用和实施。

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

  • 为什么 Flash 对象捕获很困难?如何解决?

Flash 是一种过时的技术。由于 Flash 对象与 HTML 不同,因此很难捕获 Flash 对象。此外,Flash 是一种嵌入式 SWF 文件(小型 Web 格式)。在移动设备上访问 Flash 对象也很困难。

从SEO(搜索引擎优化)角度来看,开发Flash比开发HTML页面更困难,因为Flash无法被搜索引擎完全读取。不过,HTML 5等先进技术的引入可以克服性能、安全性等问题。

  • Flash 应用程序通过哪些方式进行测试。

Flash 应用程序以两种方式测试:

  • 手动的 - 您可以通过手动执行测试用例来测试 Flash 对象,因为它简单易行。修复错误后,您可以确保 Flash 按照预期正常运行并提供签收。
  • 自动化– 您可以使用任何自动化工具编写脚本,例如 Selenium、SoapUI、TestComplete等并执行脚本。
  • Flash 与其他元素的区别。

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

如何获取 Flash 影片/Flash 应用程序的 Flash 对象 ID

在任何网页中,<object>标签用于任何嵌入的多媒体(如Flash、ActiveX、视频等)。它表示“嵌入”HTML文档中。此标签定义嵌入在HTML中的<object/>或<embed/>标签中的容器,用于交互式内容或外部应用程序。对象名称用于在网页上定位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 对象。从而可以根据需要对其执行操作,如播放、停止等。

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

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

Flash 影片/Flash 应用的 Flash 对象 ID

如何使用 Selenium IDE 录制

您还可以使用以下方法自动执行 Flash Selenium IDE。

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

使用以下方式实现 Flash 自动化 Selenium IDE 录音

步骤2) 现在点击右侧的“录制红色按钮”并开始对 Flash 影片进行操作,然后您将看到录制的脚本,如下所示:

使用以下方式实现 Flash 自动化 Selenium IDE 录音

录制完成后,如果用户想要执行脚本,可以点击“绿色运行按钮”,如下图所示。 Selenium IDE会逐步执行脚本。

使用以下方式实现 Flash 自动化 Selenium IDE 录音

如何使用 Selenium 网络驱动程序。

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

步骤1) 下载后,将 jar 文件添加到您的项目,如下图所示。

使用以下方式实现 Flash 自动化 Selenium IDE 录音

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

使用以下方式实现 Flash 自动化 Selenium IDE 录音

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

何时进行自动化闪存测试

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

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

步骤1) 您使用“Guru99”Flash 影片来测试 Flash 场景。

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

使用以下方式实现 Flash 自动化 Selenium IDE 录音

步骤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("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 应用程序是一项挑战。要自动化 Flash 应用程序,您可以使用 FlexMonkium,它是 Selenium IDE。
  • 您可能会遇到使用 Flex 应用程序录制/播放的问题 Selenium-Flexmonkium 集成。解决方案是用户需要小心地安装和集成 Flex Monkium 到 Selenium IDE。正确的安装将启用记录以自动化 Flash 应用程序。

总结

  • 在 Flash 测试中,您需要检查 Flash 视频、游戏、电影等是否按预期运行。
  • 您可以使用 Flash 属性(例如对象 ID)来定位 Flash 对象。从而可以根据需要对其执行操作,例如播放、停止等。
  • flash 与其他元素的主要区别在于,Flash 嵌入在 SWF 文件中,而其他元素嵌入在 HTML 文件中
  • 当 Flash 对象不易访问时,您需要正常地自动执行 Flash 测试。
  • 闪存测试中有用的工具是
  1. Selenium
  2. 肥皂用户界面
  3. 测试完成
  4. 测试工作室等
  • 自动化 Flash 应用程序是一项挑战。要自动化 Flash 应用程序,您可以使用 FlexMonkium,它是 Selenium IDE。