为什么sikuli截图后平板总是闪退退

会截图就会自动化测试:Sikuli编程技术(3)_其它软件测试工具_领测软件测试网
会截图就会自动化测试:Sikuli编程技术(3)
发表于:来源:领测软件测试网作者:领测软件测试网采点击数:
该脚本以页面中 12 个数字对象的截图创建带选择对象数组,在 result_list 中列出了期望的选取结果显示。运行时使用 openWeb() 方法自动打开浏览器,进入指
  该脚本以页面中 12 个数字对象的截图创建带选择对象数组,在 result_list 中列出了期望的选取结果显示。运行时使用 openWeb() 方法自动打开浏览器,进入指定页面。调用 selectObjs() 与 selectRange() 方法的实现 3 种不同的多选方式。脚本中自定义方法的实现,如图 6 所示。
  图 6. 自定义方法的实现
  selectObjs() 方法中调用 Sikuli 的 click() 方法,以传入的对象截图列表和 Sikuli 定义的 Key Modifier 为参数,实现了按下 Ctrl 键后逐个点击对象完成多选的动作。
  SelectRange() 方法则实现了区域性选取。以 obj_from 和 obj_to 参数指定选区的起始位置和结束位置;或仅使用 obj_from 指定起始位置,同时设定水平和垂直方向的偏移量 x、y 来指定选区。调用 dragDrop() 方法,传入起始、结束位置,即可完成区域选择。
  验证方式同实例一所述。
  实例三 Web 页面中的对象拖拽移位
  本例主要应用 Sikuli 的 dragDrop() 方法,实现对象的拖拽移位操作。图 7 中代码所完成的任务即为通过拖拽的方式,将指定的图片移动到 Trash 区域中。
  图 7. 拖拽图片至 Trash 区域
  该脚本中,在 droppable 数组中定义需要被移入 Trash 的图片,以 Trash 区域的标题栏为搜索目标,用 find() 方法获得 Trash 区域的 Match 类型对象,作为目标区域参数传入 moveTo() 方法。其中 moveTo() 方法查找当前屏幕显示中所有与 obj 参数所传入的图形相匹配的对象,将其拖拽至 des 所指定的区域。其实现如图 8 所示。
  图 8. moveTo() 方法的实现
  在该方法中,对于图片缩略图应用 exists() 方法进行检索时,进行了图像相似度(取值区间为 0~1)的调整,Sikuli 中缺省情况下的相似度设置为 0.7,为了在图片内容类似的情况下进行正确的区分,可用到 similar() 方法适当提高检索时的相似度,以避免匹配到其他类似区域。
  若需确认当前相似度设置下,图像的匹配情况,可在脚本中单击截图对象,激活 Pattern Settings 对话框。在本例中,如单击第 25 行 droppable 中的第二张截图,则弹出对话框如图 9 所示。图中(1)中所标识区域中,有两幅图片分别被红色和紫红色高亮显示。表示在当前的相似度下,这两幅图片均被识别为要寻找的对象。颜色越偏红,则图片 与截图的相似度越高,越近似紫色则相似程度越低。调节(2)所标示的 Similarity 滑块,改变相似度设置,则可看到预览区域中的匹配区域的数量及颜色变化,从而以此为依据选择适当的相似度设置,使得程序可以精准唯一地定位目标区域。
  图 9. Pattern Settings 对话框
  Sikuli 的优势及局限
  Sikuli 为脚本赋予了人类的视角,让计算机不单能够去捕捉后台的接口数据和返回值,而且能如同人眼一般,&看&到一个真实的 GUI 展现。使用者直接在脚本中引用目标 GUI 元素的截图来获取该对象,并指定对其所进行的操作,简单高效。使得 GUI 自动化摆脱了对应用的内部程序实现的依赖,无需获取 API,亦无须了解 GUI 的内部代码实现;忽略了标准控件和非标准控件在操作和获取上的差异性;普遍适用于所有运行在有图形用户界面的操作系统之上的应用,有 GUI 显示的地方即可被获取和操作。实时的图形检索定位,避免了位移和 UI 重排等位置变化造成的无法准确定位并获取控件的问题。Python 语法兼容 +Java 内核,为其赋予了很强的扩展性,同时,Open Source 也让 Sikuli 本身获得了更多的发展机会和空间。使用 GUI 元素截图所编制的 Sikuli 脚本具有良好的代码可读性,这一点从上述实例场景中能够有所体会&&在这种简短的脚本中,已基本接近自然语言的表述方式。这样的一种展现形式和特性使得手 工与自动化测试脚本的距离大大缩小,使得这两者之间的自动转化和整合成为可能。
  另外,利用 GUI 截图进行编程的这种特性使得使用者只需要具有基本的程序设计即可快速上手,轻松地创建自动化脚本操作 GUI 界面完成各种操作,大大降低了程序设计的门槛。使得更多的人可以定制个性化的桌面应用。
  但在实际应用中,我们也同样发现,在现阶段 Sikuli 仍具有一定的局限性:
  依赖屏幕截图,使其在不同的操作系统上,不同的浏览器中,甚至是不同的显示分辨率下,需要独立维护一套图形源文件,对于其跨平台的能力造成障碍。
  由于对于截图的检索依赖于实时的桌面显示,若出现程序逻辑之外的意外界面遮挡或焦点切换(如,弹出窗口等),则会对程序执行造成影响。
  IDE 处于开发初级阶段,稳定性和易用性存在一定问题。其本身仅支持初级的代码编辑功能,对于规模较大的代码开发和调试工作仍存在不便之处。其在 Windows 平台和 Linux 平台上的运行稳定性也稍逊于在 MacOSX 上的表现。
  因此,现阶段若要使用 Sikuli 独立完成具有一定规模的程序还有些困难,但作为现有自动化的有效补充,已可以很好的发挥其自身的优势,为日常工作带来便利。
  本文介绍了图形化编程技术 Sikuli,使测试人员对 Sikuli 脚本的特点和使用方法有初步的了解。同时通过实例展示如何应用 Sikuli 编写自动化脚本进行 GUI 交互操作及验证,分析目前 Sikuli 在应用上所具有的优势和局限。
原文转自:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
精彩大片你懂,htTP://uVU.Cc/ijW7
全都到碗里来 !美臀/丝袜/美熟女乱伦精品大合集 !!!【 v.ht/xZiU 】提示:用户名只能修改一次,请慎重选择名字,大讲堂建议用户使用真实姓名作为用户名。
会截图就会自动化测试——Sikuli,斯库真犀利
& && &&&如果有一天,有人告诉你,仅仅靠截图就能实现自动化,你会相信么?没有什么不可能,威廉能结婚,美国干拉登,只要功夫深,铁杵磨成针。借助MIT的sukuli开源项目,我们能很容易的实现会截图就会自动化测试这个看似遥远而飘渺的传说技术。
& && &&&作为一个手工或者黑盒测试人员,有一项技能应该是必备的,那就是截图技能。好的bug截图会让开发人员一眼就能定位到bug所在,让他们很清晰直观的了解到什么地方出了bug,这个bug究竟是什么。截图技巧的高低会直接影响到开发人员对测试人员的评价高地及信任程度,以至于很多时候,有一些刚入行的同学在跟我聊天的时候隐约提到,他们认为手工测试就是 点来点去 + 截图。当然这个观点自然是片面和消极的,不过从这里我们也可以看出,对测试人员来说,截图一手好图不亚于某风流才子吟得一首好诗,会截图,截好图的测试人员会潜移默化的使得整个团队都变得高效和敏捷起来。
& && &&&测试人员都会截图。以前我们截的图都是给人看的,现在我们要截图给机器看,让机器通过截图去“读懂”我们的想法,为我们进行自动化测试。
& && &&&Sikuli是什么?
& && &&&下面是来自于官网的介绍:Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily. Sikuli Script automates anything you see on the screen without internal API's support. You can programmatically control a web page, a Windows/Linux/Mac OS X desktop application, or even an iphone or android application running in a simulator or via VNC.
& && &&&Sikuli是一种使用截图进行UI自动化测试的技术。Sikuli包括sikul脚本,基于Jython的API以及sikuli IDE。Sikuli可以实现任何你可以在显示器上看到ui对象的自动化,你可以通过编写一些代码来实现web 页面,window/linux/Mac OS X桌面应用、甚至是iphone和android模拟器的自动化测试。
& && &&&安装jruby/sikuli及其他软件:
& && &&&在这里我们先介绍一下如何使用sikuli + jruby + watir-web_driver来实现基于web的自动化测试,因此在开始之前,我们需要安装一些基本工具。
& && &&&安装sikuli:
& && &&&在这里下载安装sikuli:
& && &&&注意:
& && &&&1,sikuli是跨平台的,所以请选择对应的平台版本进行下载;
& && &&&2,sikuli需要最新的JRE作为支持,所以安装前请将jre升级到最新;
& && &&&3,Sikuli安装完成后,运行sikuli IDE,检查是否正常安装。
& && &&&安装jruby:
& && &&&下载地址:
& && &&&注意:
& && &&&1,如果是windows系统,请选择JRuby 1.6.1 Windows Executable (md5, sha1)进行安装;
& && &&&2,安装完成后,进入命令行,键入jruby -v查看jruby版本,确定jruby是否安装成功;
& && &&&3,将sikuli安装目录下的sikuli-script.jar文件拷贝至jruby安装目录\lib目录下;
& && &&&安装watir-webdriver安装完jruby后,进入命令行,键入jgem install watir-webdriver,进行安装。
& && &&&安装jruby是因为在sikuli运行的时候会用到Java对象,因此需要在jruby环境中使用。当然,也可以使用jython来调用sikuli,sikuli IDE默认的脚本语言是jython。
& && &&&安装watir-webdriver是因为我们需要一套web 页面的自动化测试框架来配合sikuli使用,让sikuli的作用发挥至最大。
& && &&&实战演习——使用watir + sikuli进行web qq登陆测试& && &&&
& && &&&下面的代码演示了如何使用sikuli进行web qq的登陆测试。由于web qq前端技术神乎其技,导致一些基于dom的测试工具——如watir无法对其进行测试。比如watir无法识别web qq中使用的一些html5标签。这时候我们就需要借助于sikuli进行对象的识别和操作。
& && &&&下面是脚本中所使用的全部截图。
& && &&&上面的脚本就是采用图形比对的方法,在屏幕上找到截图中看起来一样的图形,然后对这片区域进行操作。&&实战演习——使用sikuli IDE进行漂流瓶操作QQ邮箱的漂流瓶是当下非常受欢迎的一个功能,由于QQ邮箱的多frame前台架构,导致waitr等传统web工具在进行qq邮箱测试时非常的麻烦。这里我们演示一下如何使用sikuli IDE进行漂流瓶的投递操作。 打开sikuli IDE,由于该应用是java写的,所以运行起来非常缓慢,请大家稍等。 进入QQ邮箱,打开漂流瓶应用,此时UI应该如下:
& && &&&下面是操作漂流瓶的sikuli IDE代码:
& && &&&可以看到原生sikuli代码还是很清晰易懂的。注意:在sikuli script中,方法的默认调用对象是当前的Screen。也就是说click的默认调用者就是当前的screen。
& && &&&这里我们简单介绍了一下sikuli的基本应用,以后我们会详细讲解sikuli的更多高级用法。
看完之后,对更多网页设计类内容有兴趣?来论坛找找!
请选择禁言时间:
Copyright (C) 1998 - 2013 Tencent. All Rights Reserved.&&腾讯公司 版权所有手机自动化(6)
截图后报错
init: tessdata folder not found at C:/Program Files/Sikuli X
DLL文件缺失?
运行Sikuli-X-1.0rc3 (r905)-win32进行程序修复
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:15268次
排名:千里之外
原创:10篇
转载:17篇
(3)(9)(1)(2)(4)(8)2975人阅读
手机自动化(6)
1. 下载安装包:地址 &
2. 首先安装Sikuli-X-1.0rc3 (r905)-win32.exe,再安装sikuli-setup.jar
3. 安装完毕后运行Sikuli IDE
运行后问题:
安装Sikuli之后可以正常打开,但是按任何键均闪退
1. JRE7不支持该程序,必须下载JRE6 & 更新号必须大于35
Java版本可在C:\Program Files\Java\jre6 目录下查看
“Java 7 does not work with the official Sikuli versions r905/r930
It must be the official Oracle JRE 6 32-Bit (if you do not want to fiddle around)
Running java -version from command line must say, that it is 1.6.0_xx where xx shold be a number beyond 35
Standard installation folder &C:\Program Files\Java\jre6 ”
2.如果桌面上快捷方式无法运行,可尝试&X:\Program Files\Sikuli X下的&
Sikuli-IDE.bat 或 &Sikuli-IDE-w.bat
3.设置环境变量
path设置为:C:\Program Files\Java\jre6\bin
(初始时地址为C:\Program Files\Java\jre6\\bin,不知道为什么。修改后可正常运行)
&--- set SIKULI_HOME
it is recommended to have in environment:
SIKULI_HOME=C:\Program Files\Sikuli X\ (accordingly for Win 64Bit)
A MUST: the trailing \
If you have your stuff somewhere else, you have to adjust these accordingly&
Sikuli 官方FAQ:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:15269次
排名:千里之外
原创:10篇
转载:17篇
(3)(9)(1)(2)(4)(8)}

我要回帖

更多关于 qq截图就闪退 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信