关于Sikuli GUI自动化测试工具最实用的教程:
在第一部分的“Sikuli的介绍系列教程”,我们已经探讨了关于Sikuli,它是如何工作的,以及如何创建一个简单的Sikuli项目。
在这个第二部分,你会学到一些更深入的概念,例如——如何创建Sikuli Maven项目以及Sikuli如何与Selenium WebDriver一起应用于网页自动化。
这部分是必不可少的,因为Sikuli没有内置的方法来打开一个网页应用程序。所以每当你执行一个Sikuli脚本,你需要确保该网站已经在浏览器中打开。这是一个间接的任务。
为了解决这一问题,Sikuli可以连同Selenium WebDriver一起使用。Selenium自带可以在浏览器中打开一个网站的方法。打开网站后,我们可以在该网站上运行Sikuli脚本。
Sikuli教程#2中包含的内容:
- 安装Eclipse的Maven插件
- 安装Apache Maven
- 在Maven资源库中安装Sikuli Script Jar
- 创建Sikuli Maven项目
- 示例程序:在Windows Explorer中打开文件
- 在命令行执行Sikuli Maven项目
- Selenium vs Sikuli
- 整合Sikuli与Selenium WebDriver
安装Eclipse的Maven插件
步骤#1:
打开Eclipse,转到帮助——>安装新软件。点击“添加”按钮,添加下面的网址。
点击“确定”按钮。
步骤#2:
检查所有列出的复选框,单击“下一步”,安装Maven插件。
安装Apache Maven
步骤#1:
从这里下载的Maven的最新版本。
步骤#2:
解压下载的zip文件,并把它放在你电脑的某个地方。
复制的Maven的bin文件夹路径,并添加路径到环境变量。
(在环境变量中需要JAVA_HOME变量,请在您的环境中设置JAVA_HOME变量)
步骤#3:
检查是否正确安装maven,打开命令提示符,并输入“mvn-version”。它应该返回这样的结果,
这表明Maven已在你的电脑中成功安装。
在Maven资源库安装Sikuli Script Jar
正如我在第一部分提到的,我们已经有了sikuli-script.jar,接下来我们需要在Maven资源库安装sikuli-script.jar。
通过使用下面的命令,我们可以在Maven仓库中安装sikuli-script.jar。Mvn install: install-file -Dfile=D:\Jars\Sikuli-r930\win32\Sikuli-IDE\sikuli-script.jar -DgroupId=com.test.sikuli -DartifactId=sikuli -Dversion-1.0.1 -Dpackaging=jar
创建Sikuli Maven项目
步骤#1:
打开Eclipse,并创建新的Maven项目。
步骤#2:
在你的POM文件中添加以下依赖。com.test.sikulisikuli1.0.1junitjunit4.11
步骤#3:
在src/test/java创建一个包并在包内创建一个类。现在你可以在这个类里面开始编写Sikuli脚本。
Sikuli示例程序:在Windows Explorer中打开文件
步骤#1:
创建一个Sikuli Maven项目,如上所述。
步骤#2:
截取必要元素的屏幕截图,并把它放在Maven项目中。
file.png
步骤#3:
创建一个名为“Test1”的类,并将下面的代码粘贴到sikuli类中。package com.test; import org.junit.Test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class Test1 { @Test public void openFileTest() throws FindFailed, InterruptedException { // TODO Auto-generated method stub Screen s=new Screen(); s.find("file.png"); s.doubleClick("file.png"); System.out.println("File icon clicked"); } }
从命令行执行Sikuli Maven项目
步骤#1:
打开命令提示符,cd到当前项目目录。
步骤#2:
使用以下命令来从命令提示符执行上面的项目。
mvn clean test -Dtest=Test1
Selenium Vs Sikuli
整合Sikuli与Selenium WebDriver
步骤#1:
通过单击新建—>Java项目在Eclipse中创建一个新的Java项目。
步骤#2:
1.用鼠标右键单击该项目转到构建路径—>配置构建路径。
2.切换到Libraries选项卡。
3.点击“添加外部JAR”,并添加Selenium的jar包,以及Sikuli-scritp.jar
步骤#3:
创建一个src/下的包,并在包中创建一个类。
步骤#4:
截取一切所需的网页内容截图,并保存在项目中。
步骤#5:
复制下面的代码到类中。package com.test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class OnlinePainting { public static void main(String[] args) throws FindFailed { // TODO Auto-generated method stub WebDriver driver=new FirefoxDriver(); WebDriverWait wait=new WebDriverWait(driver,20); driver.manage().window().maximize(); driver.get("http://www.thecolor.com/Coloring/a-puppy-with-a-kitten.aspx"); Screen screen=new Screen(); screen.wait("1398665726055.png", 20); screen.click("1398666382715.png"); screen.click("1398666248846.png"); screen.click("1398666729252.png"); screen.click("1398666188894.png"); screen.click("1398665763634.png"); screen.click("1398666592027.png"); screen.click("1398666610951.png"); screen.click("1398666308624.png"); screen.click("1398666326406.png"); screen.click("1398666570749.png"); screen.click("1398666703708.png"); screen.click("1398666382715.png"); screen.click("1398666857321.png"); screen.waitVanish("1398665763634.png"); } }
步骤#6:
右键单击该项目,选择RunAs——>Java应用程序。
执行前:
执行后:
结论
- Sikuli脚本可以很容易地与Selenium WebDriver整合,来自动化有Flash的网站。
- Sikuli可以自动的Windows以及其他的应用程序。
- 因为它使用的视觉匹配,我们可以自动化几乎所有我们在屏幕上看到的东西。
- 它提供了对Flash对象的广泛支持。也就是说,我们可以自动化Adobe Flash播放器的组件。 (音频播放器,视频播放器)
- Sikuli脚本可以被创建为Maven项目,还可以从命令提示符下运行。
- 因此,Sikuli是最友好的的自动化工具,用来自动化富有挑战性的Flash和Windows应用程序。
【英文原文:http://www.softwaretestinghelp.com/sikuli-tutorial-part-2/】
{测试窝原创译文,译者:大头}
译者简介:
大头,在读日本九州大学修士,计算机专业,主研究方向为文本挖掘,及自然语言处理。