65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Sikuli IDE 在 Intel® 架构设备上自动验证游戏

2014 年 11 月 17 日

CPOL

6分钟阅读

viewsIcon

8988

在本文中,我将介绍如何借助 Sikuli IDE(一种简单有效的脚本语言)在 Android 设备上验证应用程序。

引言

Sikuli 是一种可视化技术,它使用屏幕截图图像来自动化和测试图形用户界面的简单方法。Sikuli 最初是作为麻省理工学院用户界面设计小组的一个开源研究项目而启动的。Sikuli 的第一个版本包含 Sikuli Script(一个用于 Python 的可视化脚本 API)以及 Sikuli IDE(一个用于编写可视化脚本的集成开发环境)。Sikuli Script 可以在没有内部 API 支持的情况下自动化屏幕上的一切。因此,可以控制网页、在 Windows*/Linux*/Mac* OS X 上运行的桌面应用程序,甚至是通过虚拟网络计算 (VNC) 运行的 Android* 应用程序。

有许多应用程序可用于配置 Android 设备上的 VNC 服务器。我可以在 Android 上运行 VNC 服务器,并在我的 Windows 计算机上使用 VNC 客户端,但我更倾向于使用适用于 Android 的 MyPhoneExplorer 应用,然后在我的 PC 上运行 Sikuli 程序。最终,我可以在我的桌面上看到 Android 主屏幕。

在本文中,我将介绍如何借助 Sikuli IDE(一种简单有效的脚本语言)在 Android 设备上验证应用程序。

Sikuli IDE 安装

首先,安装 Sikuli 有一些特殊的步骤。我将描述在 Windows 上安装的过程。

官方网站上,您可以找到 Sikuli 的 32 位版本。如果您有 64 位 Windows 系统,请不要担心(对于 64 位系统,请运行 Sikuli-IDE-w.bat,不要使用 Sikuli-IDE.exe),它在这两种系统上都可以正常工作。

在安装 Sikuli 之前,请确保您已安装 Java 运行时环境 (JRE),并且已卸载 Sikuli 的任何先前版本。

  1. 下载并安装 Sikuli:Sikuli-X-1.0rc3 (r905)-win32.exe。安装完成后,您的系统上应该会创建一个名为 Sikuli X 的文件夹。
  2. 重要提示:现在不要开始使用 Sikuli X,因为它有一些 bug。下载 zip 文件 Sikuli X r930,其中包含重要的 bug 修复。
  3. 打开下载的 zip 文件,找到名为 SIKULI-IDE 的文件夹。
  4. 将 SIKULI-IDE 中的内容复制到 Sikuli X。此步骤的目的是用包含最新 bug 修复的 r930 版本的文件替换与 r905(bug 版本)关联的文件。

在 Windows 中启动 Android

我将使用联想 K900 测试游戏,特别是,我将展示在该设备上验证《愤怒的小鸟》是多么容易。现在,让我们通过 MyPhoneExplorer 将设备连接到 Windows。

  1. 在 Android 设备和 PC 上安装 MyPhoneExplorer
  2. 使用 USB 连接联想 K900 [文件 -> 设置 -> 通过 USB 电缆连接]。
  3. 在 Windows 中启动 MyPhoneExplorer
  4. 附加功能 -> 控制手机/加载屏幕截图 -> 勾选 自动刷新

图 1:带有 MyPhoneExplorer 的联想 K900

现在我们可以用 PC 管理 Android 设备了。

为 Android 设备上的《愤怒的小鸟》创建机器人

在 Windows 中启动 Sikuli IDE 编辑器

图 2:Sikuli IDE

然后,我们来看看《愤怒的小鸟》应用程序。

图 3:《愤怒的小鸟》在联想 K900 上

确保点击带有白色三角形的按钮来运行游戏。Sikuli 中有一个 Click() 命令,用于点击任何图形对象。使用 Sleep() 指令来等待场景刷新。

我们有以下代码

click("1400666128574.png")
sleep(20)

点击带有白色三角形的按钮(1400666128574.png 是该按钮的图像),然后等待 20 秒,直到场景发生变化。

第一次启动应用程序时,您会看到提示。Sikuli 支持任何具有条件和循环的脚本语言。我将使用“if”条件来处理此事件。

图 4:联想 K900:《愤怒的小鸟》第 1 关
if (exists("1400672718307.png")):
    click("1400672718307.png")
    sleep(20)

此代码片段检查按钮是否显示在屏幕上。

现在是时候展示如何发射小鸟了。为此,我使用 dragDrop (img1, img2) 命令。

dragDrop("1400171376311.png", "1400253224137.png")

这就是我们以特定角度发射小鸟并射下所有猪的方式。到目前为止,我们已经开发了一个可以玩《愤怒的小鸟》第一关的机器人,正如您所见,这非常容易,因为我们在脚本中没有使用复杂的构造。

click("1400666128574.png")
sleep(20)
click("1400666165817.png")
sleep(20)
click("1400666191490.png")
sleep(60)
if (exists("1400672718307.png")):
    click("1400672718307.png")
    sleep(20)
dragDrop("1400171376311.png", "1400253224137.png")
sleep(60)
click("KQY.png")

在下一个截图中,您将看到这段代码在 Sikuli IDE 中的样子。

图 5:Sikuli IDE 代码

现在我们可以使用此脚本来验证《愤怒的小鸟》的第一关。以同样的轻松方式,我们可以验证任何应用程序。

我希望我的博客能帮助您轻松验证自己的应用程序。

关于作者

Vitaliy Kalinin 在英特尔公司软件与服务集团工作。他是俄罗斯下诺夫哥罗德洛巴切夫斯基国立大学经济学系的一名博士生。他的专业是经济学中的应用数学和信息学。他的主要兴趣是移动技术以及 PC 和智能手机上的游戏开发。

相关文章与资源

注意事项

本文档提供的信息是针对 Intel 产品的。本文档不授予任何知识产权的任何明示或暗示的许可,无论是通过禁止反言还是其他方式。除 Intel 产品销售条款和条件中的规定外,Intel 对此不承担任何责任,并且 Intel 声明不提供任何与 Intel 产品销售和/或使用相关的明示或暗示的保证,包括对特定用途的适用性、适销性或对任何专利、版权或其他知识产权的侵权责任或保证。

除非 Intel 书面同意,否则 Intel 产品不设计也不用于任何可能导致人员伤亡的应用程序。

Intel 可随时更改规格和产品描述,恕不另行通知。设计者不得依赖标记为“保留”或“未定义”的任何功能或说明的缺席或特性。Intel 保留这些用于未来定义的权利,并且对于因其未来更改而引起的任何冲突或不兼容性不承担任何责任。此处的信息如有更改,恕不另行通知。请勿使用此信息最终确定设计。

本文档中描述的产品可能存在设计缺陷或称为“勘误”的错误,这可能导致产品偏离已发布的规格。当前已确定的勘误可根据要求提供。

请联系您当地的英特尔销售办事处或您的经销商以获取最新的规范,并在下订单前进行咨询。

可通过致电 1-800-548-4725 或访问:http://www.intel.com/design/literature.htm 来获取订购号并参考本文档或其他 Intel 文献的文档副本。

性能测试中使用的软件和工作负载可能仅针对 Intel 微处理器进行了性能优化。性能测试(如 SYSmark* 和 MobileMark*)的测量使用了特定的计算机系统、组件、软件、操作和功能。这些因素的任何更改都可能导致结果有所不同。您应该查阅其他信息和性能测试,以帮助您全面评估您打算购买的产品,包括该产品与其他产品结合使用时的性能。

本文档中重印的任何软件源代码均根据软件许可证提供,并且只能根据该许可证的条款使用或复制。

Intel 和 Intel 标志是 Intel Corporation 在美国和/或其他国家/地区的商标。

版权所有 © 2014 英特尔公司。保留所有权利。

*其他名称和品牌可能被声明为他人的财产。

© . All rights reserved.