sikuli入门教程学习

上传人:平*** 文档编号:46208545 上传时间:2018-06-23 格式:PPT 页数:35 大小:2.12MB
返回 下载 相关 举报
sikuli入门教程学习_第1页
第1页 / 共35页
sikuli入门教程学习_第2页
第2页 / 共35页
sikuli入门教程学习_第3页
第3页 / 共35页
sikuli入门教程学习_第4页
第4页 / 共35页
sikuli入门教程学习_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《sikuli入门教程学习》由会员分享,可在线阅读,更多相关《sikuli入门教程学习(35页珍藏版)》请在金锄头文库上搜索。

1、Sikuli调研分享李俊薇索引1、简介2、下载和安装3、示例4、疑问5、在java程序中使用sikuli6、优缺点7、技巧和附录简介Sikuli(在墨西哥维乔印第安人的语言里是”上帝之眼”的意 思)是由美国麻省理工学院开发的一种最新编程技术,使 得编程人员可以使用截图替代代码,从而简化代码的编写 流程。从它研究方向上看,是一种编程技术,但是该技术 还可以用于进行大规模的程序测试,脚本程序编写使用的 是python语言。编程而非录制一般的工具是录制脚本,而sikuli不存在录制的问题,它 需要自己手动编写程序来完成测试。资料来源: http:/ 否则点击菜单“邮箱”点击“新建邮箱账户”选项 点击

2、输入邮箱地址编辑区 输入邮箱地址 点击输入密码编辑区 输入密码 点击下一步 点击创建 。下载和安装下载:http:/groups.csail.mit.edu/uid/sikuli/(最新版本是0.10.1)安装(要有java环境)启动直接使用安装目录下的Sikuli-IDE.exe启动。使用过程中,遇到过直接用exe启动后可能无法正常使用的现象(在vista和win7下面遇 到过,可能某些包无法加载,具体原因不知),网上开发人员的建议是使用安装目录 下的Sikuli-IDE.bat,双击后也会启动sikuli的IDE界面,然后可以正常使用。使用详细资料参考地址(全英文): http:/siku

3、li.org/trac/wiki/reference-0.10#Howtousethisdocument主界面程序保存编写完程序后,用save as保存,会生成一 个.sikuli的文件夹。其中: .py是phthon脚本 .png是编写脚本过程中执行的截图 .html能让脚本在网络上实现共享注意:此处程序本身好像 有bug,保存路径不能含 有中文字符,否则会报错几个例子函数1、click(对象截图)点击某个对象 2、type(可输入对象截图,字符串) 像某个可输入对象输入字符串 3、rightClick(对象截图)在某个对象上点击右键 4、快捷键ctrl+shift+2启动抓图,右键取消 5

4、、wait(时间s) 等待多少s一个例子程序用例:闪电邮中创建一个用户名和密码均正确的账户流程:找到创建入口,点击输入用户名和密码,点击下一步选择账户模式,点下一步,点创建按钮等待同步通讯录和收信完成检查是否创建成功(判断依据是左边账户列表是否有该账户)Sikuli程序account=““ psw=“ljwtest“ if exists(“1280742360468.png“): click(“1280742415811.png“) else: click(“1280742437779.png“) click(“1280742453232.png“) click(“1280742480700.

5、png“) type(account) click(“1280742506294.png“) type(psw) click(“1280742536496.png“) click(“1280742556137.png“) waitVanish(“1280742859224.png“) if exists(“1280742904208.png“,5): click(“1280742940020.png“) waitVanish(“1280742955019.png“) waitVanish(“1280743004706.png“,20) if exists(“1280743048736.png“

6、) and exists(“1280743102282.png“): print(“the account is create ok!“)保存后的.py程序脚本疑问:靠图像识别可靠吗?靠图像来对对象进行识别,必然有很多不足之处,但是sikuli里面提供了similarity的调整,在一定程度上弥补了这个缺点(但也不是绝对的 ) 实际调研情况:脚本01是在xp下录制的一段脚本,调整相似度和识别对象个数后,在 默认、国风、虎年三套皮肤下均可运行通过。增加wait()等待后, 在vista下的默认、国风、虎年三套皮肤下也可以使用。酷黑皮肤差异 较大,无法识别。 需要研究的是: 1、相似度调整到多少比

7、较合适 2、识别对象个数调整到多少比较合适 3、等待时间设置为多少比较合适相似度非常小的时候能匹配出较多对象,注意颜色(红色表示最匹配的 )相似度调高一些的时候能匹配个数减少相似度较高时匹配出最相似(想要的)对象疑问:如何知道我点击的是哪里?在java程序中也可以使用sikuliSikuli script的核心是用java编写的,所以在java代码中可 以引用sikuli script包然后编写自己的测试程序。继续查看如何在java程序中使用跳过,看sikuli优缺点Java中使用sikuli-script的步骤1、获取sikuli-script.jar在sikuli的安装目录下面有一个sik

8、uli-script.jar包。 2、安装OpenCVSikuli script使用OpenCV作为图形识别引擎。如 果是windows系统,可以直接配置环境变量,在 path路径中加入“ sikuli安装路径/tmplib”, windows系统能自动的找到OpenCV的dll。在mac 和linux下比较复杂,需要自己安装OpenCV(没 有研究)Java中使用sikuli-script的步骤3、在java项目中引入sikuli-script包在eclipse中新建一个java项目,然后引入4.1中获取的 sikuli-script.jar包。项目建立成功后,可以在项目目录中看到 这个包。

9、Java中使用sikuli-script的步骤4、引用引入的包在自己的程序中引入需要的sikuli classes,用 “import edu.mit.csail.uid.* ”,或者引入一些自己 需要的类,可能会用到一些Regin、Screen、 SikuliScript类。 5、程序编写1.import edu.mit.csail.uid.*;2.import edu.mit.csail.uid.Win32Util;3.public class TestSikuli 4.public static void main(String args) 5. Screen s=new Screen(

10、100);6. Win32Util app=new Win32Util();/启动程序需要用到此类7. int openapp=app.openApp(“D:Program FilesNetease网易闪电邮Start.exe“);8./(小bug)此句不能正确执行,貌似对含有汉字的路径支持不好9. int openapp=app.openApp(“D:Program FileseMuleemule.exe“);10./此句可以正常执行,需要全英文字符的路径11. if(openapp=0)12. System.out.print(“app starts ok!“);13. else14. 1

11、5. System.out.print(“app starts failed!“);16. 17.try18.s.click(“img/02.png“, 0);/点击增加账户的加号按钮19.s.click(“img/05.png“, 0);/点击输入用户名的编辑框20.s.type(null,““,0);/输入用户名21.s.click(“img/06.png“, 0);/点击输入密码的编辑框22.s.type(null,“ljwtest“,0);/输入密码23./try24.catch(Exception e)25.e.printStackTrace();26./catch27.28.以上的

12、.png图片都是保存在项目工程的img下的图片(可以用sikuli截取的图复制过去,然后自己可重命 名)优点1、整体上sikuli小巧、便捷、容易上手。 2、sikuli脚本可以不经过API的编译器直接自动化搜索到任何你能在屏幕 上看到的东西 3、对各种程序都适合 4、不存在标准控件和非标准控件的问题 5、相对位置概念较小,要求不高(但是对象本身尺寸有影响) 6、一次编码,多次运行(基于java的) 7、jython和java的支持,用编程的方式比较容易扩展缺点1、图片的分辨率、色彩、尺寸、唯一性对程序的影响 (如果有两个相同的,无法区分具体哪一个) 2、sikuli本身还不完善(处于开发、升

13、级阶段) 还有很多程序bug,能否继续发展还是未知数 3、只认识当前活动的图标(只有当前桌面有才行) 4、用例组织方面有提供但是目前有bug,还未调研尝试便利性 5、截图的话,脚本存储占用空间较大 6、相似度调整需要手动一个个的调整,工作量大 7、ljw200901t和ljw200902t的区别(不太容易区别出来,可能需要调整 到similarity=1.0才行,但这样的话可移植性就差了) 8、目前还不适合设计成一种测试框架(有用例组织功能,但是目前有 bug,暂时没有用过) 9、测试报告的生成,直接用message的话比较弱,需要用jython编程实现 可能会强大一些(还未调研)增加图片识别

14、时间wait()的使用新建一个自定义邮件夹后输入“test”,有wait()后,才能正常表现。程序代码:程序移植 点击查看原始代码01在xp下写的一个脚本,移植到vista下后,设置的皮肤都一样,但是可能 会抛出无法识别图像的异常,某些时候可能是因为等待时间不够久,程序来 不及识别,可以用wait()增加程序查找对象的时间。代码01是在xp下录制的一段脚本,闪电邮的默认、国风、虎年三套皮肤 均能够正常运行。移植到vista下的默认皮肤下后,抛出一些无法识别图像的 异常,但是在每个动作后增加了wait(1)等待1秒后,脚本可以正常执行了 。(等待时间可根据实际情况自由设定)个人感觉应该是移植到v

15、ista下后, 某些图片属性需要时间识别确认,如果没有等待时间,可能没有足够时间识 别。附录参考资料Sikuli官方网站 http:/groups.csail.mit.edu/uid/sikuli/Sikuli详细的documentation http:/sikuli.org/trac/wiki/reference-0.10#HowtousethisdocumentPython学习地址(英文): http:/ doc http:/sikuli.org/documentation.shtml#/trac/wiki/How%20to%20use%20Sikuli%20Script% 20in%20your%20JAVA%20programs? (如果要在java program中使用,就要详细看这个java doc文档了)Sikuli的系统设计架构参考地址:http:/sikuli.org/documentation.shtml#/trac/wiki/SystemDesign其他示例1、获取popo表情和动漫表情增加wait()等待时间后,能判断到图片是否存在。 疑

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号