什么是Flash测试?
Flash测试是一种测试类型,用于检查基于Flash的视频、游戏、电影等。它用于开发游戏、应用程序、基于图形的动画、电影、手机游戏、程序等
在Selenium Automation中,如果通用定位符(如id、class、name等)找不到元素。t但在Flash测试中,XPath无法访问Flash对象。因此,在任何应用程序中查找Flash对象都需要Flashwebdriver对象。
在这里,将看到如何执行Flash测试以及如何使用Selenium进行Flash测试。
在本教程中,将了解-
- 什么是Flash测试?
- Flash测试与其他元素有何不同
- 如何获取FLASH电影/FLASH APP的FLASH对象ID
- 如何使用Selenium IDE录制实现Flash自动化
- 如何使用Selenium Webdriver自动化Flash。
- 创建用于Flash测试的Selenium脚本。
Flash测试的前提条件
以下是测试Flash应用程序的要求
- Flash应用程序。
- 支持Web浏览器。
- Adobe Flash Player插件。
工具-以下是在Flash测试中有用的测试工具。
- Selenium
- SOAP UI
- 测试完成
- 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电影是在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”:
如何使用Selenium IDE录制实现Flash自动化
还可以使用Selenium IDE自动执行Flash。
步骤1)需要打开FLASH应用,然后打开Selenium IDE,如下图所示:
步骤2)现在点击右侧的“录制红色按钮”,开始对Flash电影进行操作,即可找到录制的脚本,如下图所示:
录制后,如果用户想要执行脚本,则可以单击绿色的“运行按钮”,如下面的屏幕所示。Selenium IDE将逐步执行该脚本。
如何使用Selenium Webdriver自动化Flash。
还可以通过Flashwebdriver对象使用Selenium web驱动程序自动执行flash,然后调用一个方法来操作flash对象。需要下载flashwebdriver jar文件:
步骤1)下载完成后,将JAR文件添加到工程中,如下图所示。
步骤2)在flash jar文件下有一个单独的flashobjectwebdriver类。在Selenium脚本中实现flashWebdriver“myFlashMovie”,如Screen中所示。
添加Web驱动程序类“MyFlashMovie”后,可以访问Flash对象。
何时自动执行Flash测试
通常,当Flash对象不容易访问时,需要自动执行Flash测试。这会导致测试中止,因此无法测试Flash对象。
创建用于Flash测试的Selenium脚本。
步骤1)使用《Guru99》Flash电影对Flash场景进行测试。
http://www.itxiaonv.com/test/flash-testing.html
步骤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测试中有用的工具有
- Selenium
- SOAP UI
- 测试完成
- Test Studio等。
- 自动化flash应用程序是一项挑战。要自动化flash app,可以使用FlexMonkium,这是Selenium IDE的一个附加组件。