关于Sikuli GUI自动化工具的介绍——初学者教程#2

2014-10-10   出处: softwaretestinghelp  作/译者:Anitha Eswari/大头

关于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

安装EclipseMaven插件

步骤#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


整合SikuliSelenium 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应用程序。
在此,我们总结了我们的Sikuli系列教程。请随意发表您的意见。 

【英文原文:http://www.softwaretestinghelp.com/sikuli-tutorial-part-2/

{测试窝原创译文,译者:大头}

译者简介:

大头,在读日本九州大学修士,计算机专业,主研究方向为文本挖掘,及自然语言处理。


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
1567° /15679 人阅读/0 条评论 发表评论

登录 后发表评论