sikuli入门教程学习.ppt

上传人:xin****828 文档编号:6290355 上传时间:2020-02-21 格式:PPT 页数:35 大小:2.12MB
返回 下载 相关 举报
sikuli入门教程学习.ppt_第1页
第1页 / 共35页
sikuli入门教程学习.ppt_第2页
第2页 / 共35页
sikuli入门教程学习.ppt_第3页
第3页 / 共35页
点击查看更多>>
资源描述
Sikuli调研分享 李俊薇 索引 1 简介2 下载和安装3 示例4 疑问5 在java程序中使用sikuli6 优缺点7 技巧和附录 简介 Sikuli 在墨西哥维乔印第安人的语言里是 上帝之眼 的意思 是由美国麻省理工学院开发的一种最新编程技术 使得编程人员可以使用截图替代代码 从而简化代码的编写流程 从它研究方向上看 是一种编程技术 但是该技术还可以用于进行大规模的程序测试 脚本程序编写使用的是python语言 编程而非录制一般的工具是录制脚本 而sikuli不存在录制的问题 它需要自己手动编写程序来完成测试 资料来源 Sikuli脚本示例图 创建新账户的一个流程 如果存在创建账户按钮入口则点击该按钮入口否则点击菜单 邮箱 点击 新建邮箱账户 选项点击输入邮箱地址编辑区输入邮箱地址点击输入密码编辑区输入密码点击下一步点击创建 下载和安装 下载 http groups csail mit edu uid sikuli 最新版本是0 10 1 安装 要有java环境 启动直接使用安装目录下的Sikuli IDE exe启动 使用过程中 遇到过直接用exe启动后可能无法正常使用的现象 在vista和win7下面遇到过 可能某些包无法加载 具体原因不知 网上开发人员的建议是使用安装目录下的Sikuli IDE bat 双击后也会启动sikuli的IDE界面 然后可以正常使用 使用详细资料参考地址 全英文 http sikuli org trac wiki reference 0 10 Howtousethisdocument 主界面 程序保存 编写完程序后 用saveas保存 会生成一个 sikuli的文件夹 其中 py是phthon脚本 png是编写脚本过程中执行的截图 html能让脚本在网络上实现共享 注意 此处程序本身好像有bug 保存路径不能含有中文字符 否则会报错 几个例子函数 1 click 对象截图 点击某个对象2 type 可输入对象截图 字符串 像某个可输入对象输入字符串3 rightClick 对象截图 在某个对象上点击右键4 快捷键ctrl shift 2启动抓图 右键取消5 wait 时间s 等待多少s 一个例子程序 用例 闪电邮中创建一个用户名和密码均正确的账户流程 找到创建入口 点击输入用户名和密码 点击下一步选择账户模式 点下一步 点创建按钮等待同步通讯录和收信完成检查是否创建成功 判断依据是左边账户列表是否有该账户 Sikuli程序 account ljw200901t psw ljwtest ifexists 1280742360468 png click 1280742415811 png else click 1280742437779 png click 1280742453232 png click 1280742480700 png type account click 1280742506294 png type psw click 1280742536496 png click 1280742556137 png waitVanish 1280742859224 png ifexists 1280742904208 png 5 click 1280742940020 png waitVanish 1280742955019 png waitVanish 1280743004706 png 20 ifexists 1280743048736 png andexists 1280743102282 png print theaccountiscreateok 保存后的 py程序脚本 疑问 靠图像识别可靠吗 靠图像来对对象进行识别 必然有很多不足之处 但是sikuli里面提供了similarity的调整 在一定程度上弥补了这个缺点 但也不是绝对的 实际调研情况 脚本01是在xp下录制的一段脚本 调整相似度和识别对象个数后 在默认 国风 虎年三套皮肤下均可运行通过 增加wait 等待后 在vista下的默认 国风 虎年三套皮肤下也可以使用 酷黑皮肤差异较大 无法识别 需要研究的是 1 相似度调整到多少比较合适2 识别对象个数调整到多少比较合适3 等待时间设置为多少比较合适 相似度非常小的时候能匹配出较多对象 注意颜色 红色表示最匹配的 相似度调高一些的时候能匹配个数减少 相似度较高时匹配出最相似 想要的 对象 疑问 如何知道我点击的是哪里 在java程序中也可以使用sikuli Sikuliscript的核心是用java编写的 所以在java代码中可以引用sikuliscript包然后编写自己的测试程序 继续查看如何在java程序中使用 跳过 看sikuli优缺点 Java中使用sikuli script的步骤 1 获取sikuli script jar在sikuli的安装目录下面有一个sikuli script jar包 2 安装OpenCVSikuliscript使用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包 项目建立成功后 可以在项目目录中看到这个包 Java中使用sikuli script的步骤 4 引用引入的包在自己的程序中引入需要的sikuliclasses 用 importedu mit csail uid 或者引入一些自己需要的类 可能会用到一些Regin Screen SikuliScript类 5 程序编写 importedu mit csail uid importedu mit csail uid Win32Util publicclassTestSikuli publicstaticvoidmain String args Screens newScreen 100 Win32Utilapp newWin32Util 启动程序需要用到此类intopenapp app openApp D ProgramFiles Netease 网易闪电邮 Start exe 小bug 此句不能正确执行 貌似对含有汉字的路径支持不好intopenapp app openApp D ProgramFiles eMule emule exe 此句可以正常执行 需要全英文字符的路径if openapp 0 System out print appstartsok else System out print appstartsfailed try s click img 02 png 0 点击增加账户的加号按钮s click img 05 png 0 点击输入用户名的编辑框s type null ljw200901t 0 输入用户名s click img 06 png 0 点击输入密码的编辑框s type null ljwtest 0 输入密码 trycatch Exceptione e printStackTrace catch 以上的 png图片都是保存在项目工程的img下的图片 可以用sikuli截取的图复制过去 然后自己可重命名 优点 1 整体上sikuli小巧 便捷 容易上手 2 sikuli脚本可以不经过API的编译器直接自动化搜索到任何你能在屏幕上看到的东西3 对各种程序都适合4 不存在标准控件和非标准控件的问题5 相对位置概念较小 要求不高 但是对象本身尺寸有影响 6 一次编码 多次运行 基于java的 7 jython和java的支持 用编程的方式比较容易扩展 缺点 1 图片的分辨率 色彩 尺寸 唯一性对程序的影响 如果有两个相同的 无法区分具体哪一个 2 sikuli本身还不完善 处于开发 升级阶段 还有很多程序bug 能否继续发展还是未知数3 只认识当前活动的图标 只有当前桌面有才行 4 用例组织方面有提供但是目前有bug 还未调研尝试便利性5 截图的话 脚本存储占用空间较大6 相似度调整需要手动一个个的调整 工作量大7 ljw200901t和ljw200902t的区别 不太容易区别出来 可能需要调整到similarity 1 0才行 但这样的话可移植性就差了 8 目前还不适合设计成一种测试框架 有用例组织功能 但是目前有bug 暂时没有用过 9 测试报告的生成 直接用message的话比较弱 需要用jython编程实现可能会强大一些 还未调研 增加图片识别时间 wait 的使用新建一个自定义邮件夹后输入 test 有wait 后 才能正常表现 程序代码 程序移植点击查看原始代码01在xp下写的一个脚本 移植到vista下后 设置的皮肤都一样 但是可能会抛出无法识别图像的异常 某些时候可能是因为等待时间不够久 程序来不及识别 可以用wait 增加程序查找对象的时间 代码01是在xp下录制的一段脚本 闪电邮的默认 国风 虎年三套皮肤均能够正常运行 移植到vista下的默认皮肤下后 抛出一些无法识别图像的异常 但是在每个动作后增加了wait 1 等待1秒后 脚本可以正常执行了 等待时间可根据实际情况自由设定 个人感觉应该是移植到vista下后 某些图片属性需要时间识别确认 如果没有等待时间 可能没有足够时间识别 附录参考资料 Sikuli官方网站http groups csail mit edu uid sikuli Sikuli详细的documentationhttp sikuli org trac wiki reference 0 10 HowtousethisdocumentPython学习地址 英文 Sikuli的系统设计架构 参考地址 http sikuli org documentation shtml trac wiki SystemDesign 其他示例 1 获取popo表情和动漫表情增加wait 等待时间后 能判断到图片是否存在 疑问 是否是根据某个时间内判断到的某一帧来识别的 不确定Wait 2 程序运行结果 弹出 didnotgettheimg Wait 4 程序运行结果 弹出 getimg 2 动漫表情和exits 之间不能wait 否则识别不到 3 选择文件 单选 和ctrl shift组合多选 mouseDown button mouseUp button keyDown key keyUp key 结束语 部分内容是根据网络的英文翻译而来 可能有不准确的地方 如有错误 可告之 更多函数功能需要阅读技术手册和java的结合使用要阅读javadocThanks
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!