探讨设计、开发测试框架;依据需求,定制有效的测试策略;把握测试技术的发展和测试策略的方向;推广测试领域新技术、方法的研究、应用

转帖QuickTest文本识别机制

上一篇 / 下一篇  2009-03-04 13:40:00 / 个人分类:网文摘抄

如何用QTP解决图片验证码(解析QuickTest文本识别机制)?

上一篇/下一篇 2008-10-10 19:24:18 / 个人分类:原创文章

查看( 3494 ) / 评论( 24 )
本文出自songfun的51Testing软件测试博客,转载请保留出处及链接:http://www.51testing.com/?songfun
"E ~4u#lI-l5052751Testing软件测试网:NN*A`8uCT%w%@:bz
大家在使用QTP进行自动化测试的过程中经常会遇到图片验证码的问题——大家所关心的就是如何解决此类问题。51Testing软件测试网3G9D7}xhvEL;u
这里我们首先要去了解为什么会有图片验证码。其实验证码的本质作用就是防止有人利用工具(灌水机、注册机,当然也不小心包括了我们的自动化测试工具)恶意猜解登陆或者不停的注册和灌水的。因此如果我们完全寄希望于通过GUI识别来获取内容是不切实际的——先打好预防针,免得读者希望太大,失望更大,呵呵!51Testing软件测试网'C`$] Q3U,~QDV
下面说说验证码的解决思路:51Testing软件测试网7Mo/w9^-f+U
其实解决图片验证码的思路有很多,我这里主要结合QTP9.5的新特性给大家介绍其中一种解决方案,就是利用它的OCR机制抓取文本内容。
8c%tOZ?h/e50527在QTP9.5中,对象识别能力有了进一步改善,其中针对文本识别方面进行了优化,引入了ABBYY公司的OCR解决方案——这个相关的功能体现在QTP菜单的“Tools-->Options-->General--Use text recognition mechanisms in this order”里,详细内容后面会有具体介绍。
-g r4})]8\+Nv50527先来看看ABBYY是何许公司,登录他们的官方网站可以看到一段相关介绍:“ABBYY是世界OCR(光学字符识别)、ICR(手写体识别)和语言软件的领航者。ABBYY 致力于人工智能(AI)和语言软件开发。提供全套文档识别,转换和数据捕获技术的产品解决方案。”如果你使用过图像文档转换的软件,一定会听说过FineReader OCR Professional ,其实它就是ABBYY公司的产品,用官方的说法就是“将通过扫描仪、MFP 或数码相机生成的图像快速转换为可编辑和可搜索的电子格式,而且识别率很高”,说白了就是可以借助它先进的OCR机制“读”出图片里的文本内容,并转换为PDF之类的文档。51Testing软件测试网n t |#xX&\.c R
有了ABBYY这么强大的背后支持,QTP自然底气十足,那么QTP到底如何以OCR机制识别文本呢?我们首先先了解一下什么是OCR。
;os {z.s%H7H50527打开“百度百科_OCR”,它的说明:“OCR(Optical Character Recognition,光学字符识别),是属于图型识别(Pattern Recognition,PR)的一门学问。其目的就是要让计算机知道它到底看到了什么,尤其是文字资料。 由于OCR是一门与识别率拔河的技术,因此如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。而根据文字资料存在的媒体介质不同,及取得这些资料的方式不同,就衍生出各式各样、各种不同的应用。”这里有个关键词:“正确率”,也就是“识别率”——既然不能够总是100%,我们自然不可能完全寄希望于通过QTP能够每次100%正确的去识别图片里的文本。尤其是“道高一尺魔高一丈”的今天,验证码加入了大量的干扰素,如扭曲、变形、错位、随机背景花纹,给OCR识别增加了很多难度——本来就不希望被软件识别到嘛。
j9`6v cP2@50527
nlsf9||50527本文出自songfun的51Testing软件测试博客,转载请保留出处及链接:http://www.51testing.com/?songfun51Testing软件测试网g,v^!~+m+]G.Z
51Testing软件测试网WN#`n'M1m
T z{D_"f s50527了解了OCR之后,我们再来看看QTP对应的这个设置。如前面所说,通过QTP菜单的“Tools-->Options”选中到“General--Use text recognition mechanisms in this order”,这里的四个选项就是对应的不同设置。我们看看帮助的描述(我做了翻译):
m(p+g hY50527=================================
] A` ?N50527使用文本识别机制51Testing软件测试网T0fW ?$IvK

8] xlD*E0T50527指定QTP在采用 “文本”或者“文本区域” 的 检查点或输出值 的步骤时,捕获文本内容所使用的文本识别机制。51Testing软件测试网lUy$oC z
以下有三种识别方式:51Testing软件测试网 Bl-J#cI5P:y*su
1、先使用WindowsAPI,再使用OCR(默认)。
[G9[@E8i {50527    指示QTP首先尝试以基于Windows API的机制从对象上直接获取文本内容。如果未获取到文本(比如,文本属于图片的一部分),QTP就会使用OCR的机制尝试获取这段文本。
^6e6|)m l#v50527    强烈建议在使用中日韩(象形文字)、英的语言环境下采用这个设置。51Testing软件测试网 k~JT{v^y'U

$e6O\-w dB?){*Y505272、先使用OCR,再使用Windows API。
V'O#Mh.H sz9z50527    指示QTP首先尝试使用OCR机制从对象上去获取文本。如果未获取到文本,QTP就会以Windows API的机制去获取文本内容。51Testing软件测试网9w\2Hm4~RBY

[0U p@(X1puL_.A505273、仅使用Windows API方式。
5b DHcO;Ji)_50527    指示QTP仅采用基于Windows API的机制从对象上获取文本内容。
B5[dF{s3Q0k UC50527
8YLm6L/F&C;{:}505274、仅使用OCR的方式。51Testing软件测试网)]`"V$\6K)eT
    指示QTP仅采用基于OCR的机制从对象上获取文本内容。51Testing软件测试网Ny8f#?f)?S'EV
    在使用WindowsVista要使用这种方式。51Testing软件测试网8ZQA]zIP4G
51Testing软件测试网 yq,fdE\ Eh4Qq
=================================
b.H{,YO j#Krl50527本文出自songfun的51Testing软件测试博客,转载请保留出处及链接:http://www.51testing.com/?songfun
-Bdi/P+~ rA*x5052751Testing软件测试网WN#`n'M1m
c g[:Ym%Bxf50527上面的内容已经解释的很明确了,接下来我们通过TextArea Output Value看看效果。
x'yB3f6th5052751Testing软件测试网7] i$v\F-_-y
如下图所示,QTP针对几张图片的识别效果:51Testing软件测试网Y1B H(h { E'K P'z[ r
(一)、内容是51Testing的,QTP获取正确;内容是51Testing的G风格彩字,QTP获取错误(显示为IC_CHECK_PATTERN)
b9l6g:X2i \ m50527
Rz#c;Fj)o-U5052751Testing软件测试网w,Ty ARM
51Testing软件测试网 g7oM"a B'}r
(二)、内容是songfun的普通文本,QTP获取正确;内容是songfun的G风格彩字,QTP获取错误(也显示为IC_CHECK_PATTERN)
-XLSMP'HeLZZ&k5052751Testing软件测试网a.N.HUm'M(M.z
51Testing软件测试网2Uyh.y(ve%~J

.uT T5q"y)@'r5052751Testing软件测试网+K(FtO6e1G
有兴趣大家可以自己做一些图片,甚至可以用QQ的验证码图片来试验一下,看看OCR效果。51Testing软件测试网ttVgx T
51Testing软件测试网)w5Ju FFP I n
本文出自songfun的51Testing软件测试博客,转载请保留出处及链接:http://www.51testing.com/?songfun51Testing软件测试网-K)}$Jc+E9C)XGT wt
51Testing软件测试网WN#`n'M1m
jf$l:K B3PR E50527


TAG:

 

评分:0

我来说两句

guori008

guori008

去除浮躁,认真学习,不断积累,创造机遇。http://www.51testing.com/?50527

日历

« 2024-04-19  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 11619
  • 日志数: 25
  • 建立时间: 2007-01-11
  • 更新时间: 2012-08-22

RSS订阅

Open Toolbar