什么是闪存测试?
Flash测试是一种测试类型,用于检查基于Flash的视频,游戏,电影等是否按预期工作。换句话说,测试闪存的功能称为“ 闪存测试”。Flash是Mircomedia开发的非常流行的软件(现已被Adobe收购)。它用于开发游戏,应用程序,基于图形的动画,电影,手机游戏,程序等。
在Selenium Automation中,如果一般定位符(如id,class,name等)找不到元素。然后需要XPath在网页上查找元素以对该特定元素执行操作。但是在Flash测试中,XPath无法访问Flash对象。因此,需要Flashwebdriver对象才能在任何应用程序中查找Flash对象。
闪存测试前提条件
以下是测试Flash应用程序的要求
工具-以下是在Flash测试中有用的测试工具
Selenium是非常流行的Web测试工具。您可以跨不同的平台和使用不同的语言创建框架。这是一个开放源代码工具,可以从官方网站下载。它易于配置,使用和实施。
Flash是一种过时的技术。由于Flash对象不同于HTML,因此很难捕获它。此外,Flash是嵌入式SWF文件(小型Web格式)。在移动设备上访问Flash对象也很困难。
与使用SEO(搜索引擎优化)视角开发HTML页面相比,开发Flash更加困难,因为搜索引擎无法完全读取Flash。但是,引入了HTML 5之类的高级技术来克服诸如性能和安全性之类的问题。
Flash应用程序通过两种方式进行测试:
如上所述,Flash和其他元素之间的主要区别是Flash嵌入在SWF文件中,而其他元素嵌入在HTML文件中。因此,与Flash相比,HTML更易于捕获。
在任何网页中,<object>标记用于任何嵌入式多媒体(例如Flash,ActiveX,Video等)。它意味着在HTML文档中“嵌入”。这个标签定义了一个嵌入在<object />或HTML的<embed />标签中的容器,用于交互内容或外部应用程序。对象名称用于在网页上定位Flash对象。
例如,在下面的示例中,您可以看到Flash电影是在HTML文档或文件的“嵌入”标签中定义的。
例:
/* 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属性来定位Flash对象。因此,您可以根据需要对其执行播放,停止等操作。
如上所述,无法使用XPath访问Flash对象。因此,为了对这些对象执行任何操作,开发人员需要分配适当的对象ID。
下面的屏幕显示为Flash分配了对象ID“ MyFlashMovie”:
您也可以使用Selenium IDE自动执行刷新。
步骤1)您需要打开Flash应用程序,然后打开Selenium IDE,如下图所示:
步骤2)现在,点击右侧的“录制红色按钮”,开始对Flash电影进行操作,然后您将找到录制的脚本,如下所示:
录制后,如果用户要执行脚本,则可以单击“绿色运行按钮”,如下图所示。Selenium IDE将逐步执行脚本。
您还可以使用Selenium Web驱动程序通过Flashwebdriver对象自动执行Flash,然后调用一种方法来操作Flash对象。您需要下载flashwebdriver jar文件:
步骤1)下载后,将jar文件添加到您的项目中,如下图所示。
步骤2)在Flash jar文件下,有一个单独的flashobjectwebdriver类。如下面的屏幕所示,在您的硒脚本中实现flashWebdriver“ myFlashmovie”。
添加Web驱动程序类“ MyFlashMovie”后,您可以访问Flash对象。
何时自动进行闪存测试
通常,当不容易访问Flash对象时,您需要使Flash测试自动化。测试结果将中止,因此无法测试Flash对象。
步骤1)您使用“ Guru99”动画影片来测试动画场景。
http://demo.guru99.com/test/flash-testing.html
步骤2)在Selenium eclipse中编写脚本并执行。下面的代码在执行时将执行以下操作
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://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影片开始播放并停止。
闪存测试中的挑战
摘要:
推荐阅读