自动化测试_对象无法识别的终极必杀技
来源:互联网 发布:淘宝优惠卷在哪领 编辑:程序博客网 时间:2024/06/05 01:02
原始需求:
做自动化测试的时候经常会遇到对象无法识别,但是又一定需要从界面上看出是啥情况,才能根据不同做出下一步。
尝试一:悲催的OCR
最初想着能不能直接拷屏,然后从拷屏的结果图片中读出文字,然后对字符串进行判断来实现。
实验了下面三个工具:
tesseract-ocr-setup-3.01-1.exe
ABBYYFineReaderCorporate_lv.xp500.com.rar
miniOCR.zip
发现识别成功率非常的低。琢磨了半天明白了原因,并非工具有什么问题,主要问题是拷屏得到的图片精度太低了,根本达不到300dpi,拷屏的最多也就300dpi的30%,如此粗糙的图片当然没法识别了。这些工具要想识别率高,最好是直接高精度扫描的图片进行识别。
尝试二:居然不相同
先写个程序,进行拷屏,相隔两条命令拷屏的,期间没有任何操作,理论上说应该是得到了一模一样的两张图片了。如何判定两张图片是相同的呢。想着既然是一样的,直接打开文件按字节比对不就完了,同学,中招了吧,无论bmp还是jpg,不单文件内容不是完全相同,甚至有时候连文件大写也会有字节的差异。
猜测:是不是因为有压缩的问题,抽样了?
尝试三:还是使用工具比对吧
尝试了:
DiffImgpoto.rar
PicCompare_62899.zip
DuplicatePhotoFinder_ha.zip
也不是说他们不好,问题是都是图形操作界面的,对于我来说,还是命令行的最好。于是,主角登场了:
ImageMagick-6.3.2-9-Q16-windows-static.exe
百度了一下介绍:
ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF、JPEG、GIF、 PNG、PDF以及PhotoCD等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存,对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。同时ImageMagick提供了一个高质量的2D工具包,部分支持SVG。现在,ImageMagic的主要精力集中在性能、减少bug以及提供稳定的API和ABI上。
ImageMagick 是一个用来创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线, 多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。支持大多数的操作系统。
专门down的静态库的,down了好久才弄下来,基本上就是10k以内徘徊。安装上拷贝了安装目录,卸载了以后,直接使用之前备份的安装目录,发现能用,算不算是绿色版本捏,需要有人测试一下才知道。
安装程序:
http://download.csdn.net/detail/testingba/4591599
安装目录压缩包:
http://download.csdn.net/detail/testingba/4591614
测试一下这个工具的效果:
直接拷贝屏幕做了01.jpg,再次拷贝屏幕做了02.jpg,拷贝了02.jpg为03.jpg,然后用画图打开03.jpg,往上面画了一个点,保存。
测试一把:
compare.exe -metric mae 01.jpg 02.jpg d1.jpg
返回:0
compare.exe -metric mae 02.jpg 03.jpg d2.jpg
返回:100.863
最夸张的是看比对结果d1.jpg和d2.jpg,就增加了一个点而已。
D2.jpg
好了,有了这个应该能指哪打哪了。遇到对象无法识别,又必须要得到界面返回的时候,预先存一张指定区域图片下来,下次同样操作得到区域图片,然后进行图片比对就行了。
- 自动化测试_对象无法识别的终极必杀技
- [Win7]_[问题]_[Win7无法识别光驱终极解决方法]
- [自动化测试篇]解决了QTP在win7无法识别.NET对象
- 功能测试自动化视频---解决自定义控件的无法识别问题
- 测试自动化实现的两个难点-功能分解和对象识别
- eclipse 无法识别小米2 的终极解决方法
- 自动化测试 - RFT系列教程4: RFT是如何识别控件的(二) 对象库与脚本
- Android测试_关于 Android 下的自动化测试
- 【SikuliX】基于图像识别的Web自动化测试
- 自动化测试工具QTP:维护对象库、获取对象属性、智能识别、参数化若干问题
- 自动化测试_学习笔记
- 分析器错误_分析器错误信息:无法识别的属性”type"
- android开发之Monkey测试_自动化测试_看看你的应用够不够健壮
- android开发之Monkey测试_自动化测试_看看你的应用够不够健壮
- 自动化测试工具无法读取PB的sle.text,解决方案
- 对象流_测试未通过的.
- Selenium+TestNG Web自动化测试环境搭建5_高亮对象
- 图像识别与软件自动化测试
- erlang 元组操作
- Android 保存图片到相册无法显示的问题
- 解决asp.net(C#)中 DataTime 空值 null为0001-01-01
- win7下面安装xp
- 一读一写情况下,无锁环形队列如何实现?
- 自动化测试_对象无法识别的终极必杀技
- JQuery自学记录3——对页面内容及样式的操作
- ubuntu12.04 kermit 权限配置
- 检测用户向麦克吹气
- 小希的数表
- 浅析C#中异步和多线程的区别
- C#保留N位有效数字的方法
- oracle数据中报错"记录被另一个用户锁住"
- 【查找结构3】平衡二叉查找树 [AVL]