将两者结合起来,就可以在 PC 端实现快速编程来完成自动化操控。优点就是快,编程简单,对于一些需要快速完成自动化的临时任务场景比较适用;缺点就是脚本通用性差,这也是基于图像的自动化(如 Monkeyrunner 等)的通病,还有就是当它运行的时候,PC 几乎不能用来做其他事情。另外 Silukix 也可以用在 PC 端的其它 GUI 自动化:exe,浏览器等。
SikuliX 的安装稍微有点复杂,需要先从官网下载页面下载安装引导的 jar,然后通过引导来自动在线下载所需要的包来完成安装:[2]
java -jar sikulixsetup....jar
来打开安装引界面。在这里设置你准备使用的语言 Python or Ruby、IDE、ORC 识别的 features、代理,特别需要注意的是代理,会影响到后面安装文件的下载。不清楚的内容可以点 H 看帮助;
Mobizen 分为手机端和 PC 端两部分,分别下载安装即可。
通过 Mobizen 连接手机,验证一下通过鼠标可以进行操作并能得到反馈。(打脸的是,刚才我在自己的手机上失败了,只能看不能摸,估计是 Android 5.1 的限制。)
Mobizen 的在这里的功能也仅仅只是连接手机并进行操作,目前连接不上也找不到合适的手机了,所以下面就只用模拟器演示一下 SikuliX,如果你可以用 Mobizen 连接手机,你应该可以完成这一套方案。
以下请脑补成我的模拟器就是 Mobizen 连接的真机
打开 SikuliXIDE,编写测试脚本,以 ApiDemo 为例:
通过左侧的各种函数可以直观地完成各种查找和操作,可查阅这方面的资料,上手很容易。
一些 Tips:
Ctrl+T
或者菜单里的<视图> - 可切换显示方式,显示为图片或者显示为图片名称(字符串)
执行测试:
点击运行就开始执行了。需要注意的是,执行的时候 SikuliX 界面会自动隐藏,因此如果你有各种输出,暂时是不可见的,log 或者数据建议写入文件。执行的时候,随时可以按快捷键 Alt+Shift+C
来终止。
结果:
很遗憾,结果只能依靠自己的代码来输出,这里并没有什么内置的报告模块。
Demo 代码(其实没有图片就没有什么 X 用):
# Sikulix + Mobizen demo #20150925
def hello_demo():
if not exists("1443166848804.png"):
# 进行错误处理
return -1;
click("1443166848804.png")
wait("1443166987065.png", 5) # 等待目标出现,设置5秒超时
click("1443167235874.png")
sleep(1) # 使用真机需要稍微大一点的延时以保证成功率
click("1443167266728.png")
# 可以使用 exists 方法来进行断言
assert exists("1443167432886.png")
# 或者 if 判断
if exists("1443167432886.png"):
print('OK')
else:
print('Failed')
# 直接用python执行adb命令
import os
os.system('%adb% shell am force-stop com.example.android.apis')
sleep(1)
assert exists("1443167805504.png")
if __name__ == '__main__':
hello_demo()