WEB-QTP随想录—跟长辈的通话

来源:互联网 发布:10019 签名数据失败 编辑:程序博客网 时间:2024/05/01 03:27

注:原文最早是发表在www.automationqa.com上面的,后来因为网站被黑而文章内容消失了,希望csdn别被黑了。

关于转载:本文为原创文章,欢迎转载,但转载需要标注出处以及保证内容的完整性,请理解写作的寂莫和苦处。

关于版权:本文不得应用于以赢利为目的的任何场景,否则本人保留相应的权利。

我好佩服老婆打电话时与长辈天南海北的神侃,我更惊奇的是从20:00到现在21:20他们还越聊越兴奋,现在看来还得继续一阵子,我甚至开始有些嫉妒她了,因为我和长辈们的电话通常不会超个10分钟。
我更惊奇的是,我今晚还打算写一篇关于QTP检查点的文章,而这篇文章的内容也许是无数本书籍中反复提到的内容,也就是我在比亚迪图书馆找到一些QTP的书看过之后说“可以下定论了,该书使用了大量类似于插入检查点步骤的截图,以补充书的厚度进而骗取书费”的内容。也许你已经猜到了,我将说说的就是我以前认为是“骗子”的东西,大家现在可以尽情扔香蕉、扔鸡蛋或者砖头。
说到砖头,我突然想到了站长先生把我的这些瞎话放在“专家专栏”,确实太抬举我了,因为我小专、英语无级,曾求职被N家公司讽辞,使用QTP也仅1.8年的人来说是不敢担当此誉的,我就一伪专家也就通常所说的“砖家”,所以大家请不要扔砖头,我怕真成“砖人”了。
闲撤似乎太远了,我们还是看看QTP的几种检查类型吧。
第一位:降龙十八掌
做为一个江湖骗子来说,如果没有超一流的武功,在战斗的时候是很容易牺牲的,如果你拥有一个必杀技,则可以像乔峰一样,无所不能。做为QTP必杀技能来说,Text CheckPoint似乎就就有如此神功。它扮演的角色有时就跟乔峰一样,在关键时刻拉了大宋一把。Text CheckPoint的扮演的角色,常常在判断测试步骤是否成功时拉了QTP一把。可能你不明白,举个简单例子吧!
大辽要打宋朝            Browser().Page().WebEdit().set “内容”
乔锋使出降龙十八掌挟持辽皇  Browser().Page().WebButton().Click
乔锋成功拉了大宋一把        Browser().Page().Check CheckPoint(检查提交成功的信息)
乔锋失败大宋被打            Browser().Page().Check CheckPoint(检查失败提示信息)
至于它们修练成神功的过程,也就不相同了,金庸也没有提到乔峰练此神功的过程,那么我也就不详细说Text CheckPoint的配置方法了,花点时间看看帮助文档,别偷懒哦,偷懒是练不成武功的,当然除了练葵花定典以外。至于Text Area CheckPoint于Text CheckPoint有何不同呢,很简单,他们练成神功的套路不同而已,一个是继承前辈内力(Windows API识别文本),一个是借助秘籍修练而成(OCR识别方式识别),而看秘籍当然是看漫画了(图片中的文字,要知道学武之人都认不了几个字,看漫画易懂,不过也有走火入魔的,所以要小心使用(OCR的稳定性要大大折扣,并且它不能应于Web对象)。

第二位:凌波微步

没有好武功也行,但一定要有好的逃跑方法,无一依外,几乎所有的武林高手打不赢的时候都逃跑了,跑的方法当然很多,当然最有效的就是凌波微步了,该武功使用之广泛,实奈武林史上无法跨越的神奇。QTP中也有这么一着,那就是Standard Checkpoint检查点了。我们常常拿它来判断某个Web对象的某些属性是否存在来判断上一个操作的结果是否正确,比如Page对象检查点、WebTable对象检查点等,该检查点可适用于所有Web对象,而且每个对象所拥有的属性是不同的。如我们把它当做文本检查点来使用,此时它检查的是WebElement对象的某个属性值是否与你所选的文字一致,即object.WebElement().Check CheckPoint(选的文字),再举一个简单的例子:
大辽要打宋朝            Browser().Page().WebEdit().set “内容”
乔锋使出降龙十八掌      Browser().Page().WebButton().Click
乔锋有些打不赢士兵      Browser().Page().Check CheckPoint(打不赢)
段玉凌波微步是否救出乔锋 Browser().Page().WebElement().Check CheckPoint(救出)
如果你没有段玉那么花心,还是去看看F1中它的配置讲解,并且将每个对象都插入Standard Checkpoint试试效果,要知道这种功夫,不是人人看看神仙姐姐就可以修练出段玉的福气来的。

第三位:天罡北斗阵

天罡北斗阵在武林中名声震震,一群道士又飞又舞又跳又打的,煞是好看地把西毒欧阳锋给打败了。不过当7个人筹不齐,或者某位功力不及时,便会被三流高手打得落花有义,而流水无情。我在8.2学习时就觉得Bitmap Checkpoint跟它颇似,从而导致10.0中也没有广泛地去使用和感受它,10.0似乎改进了不少,可以设置检查图像是基于RGB还是Pixl的方式,并且允许它们的值在一个波动的范围,所以对它的评论就到此吧。
至于它的实用性,在进行Web测试时我也老在考虑,如何将这个检查点拿来应用,想了很久也没有发现在我们的项目中是否有必要使用它,因为做为我们的Web项目使用的一些图片来说,被换掉的可能性比较低,即时被换掉也是需要经过一个流程来控制的,除非某个提示信息什么的是在图片上,但这样的我遇到的却实没有。
另外一个,关于图像检查的大规模应用在我们项目测试中是这样运用的,改变分辨率后截取每个页面或层的截图,然后保存到一个文件夹,人工去看一下是否OK。以后运行时,也生成这些图像,并保存到另外一个文件夹,然后用二进制比较的方法遍历比较两个文件夹中图像(这两个图像的名称分布是有规律的)的差异,有差异的记录日志,然后人工去看一下他们的区别。

第四位:悦来客栈

武林人士,来来往往多少好汉,谁没有到过悦来客栈小息片刻,可惜的是DataBase CheckPoint和Xml CheckPoint我却从没有使用过,原因很简单,QTP测试是基于GUI的,如果基于GUI我们又为何要到数据库或者XML中去检查数据呢?要知道,Web页面中提交的数据存储在数据库或Xml中是要经过转义的,比如字符&会被转义成&,而更现实的是数据库更多的时候是不对测试开放的。检查数据,我更倾向于在系统读取后的页面中的检查。即使某些条件下的Web GUI测试需要用到它们,而从访问方式的可维护性等出发,我更建议你使用自定义的方式,即产生一些数据库访问的Dll或者读取xml Dll来进行使用,这样的话可复用性大大加强。至于这些方法,Google一下你就会发现,丰富得十分利害,把它们组合一下就成了你的了。由于我没有用过这两种检查点,在此也就不评论了。

第五位:红叶书生

红叶书生的利害之处在于他毫无武功,用一支笔却能让你有生有死,他用他的江湖规矩或者标准来判定你在江湖中的地位和名誉。QTP的Accessibility Checkpoint(可访问性检查点)就起到了这个作用,他通过你对网站的要求默认认定了几条可访问性的要求,当你启用这个检查点时,它将会对网站区域属性进行识别,以检查是否符合可访问性规则的要求。它默认启用的可访问些属性只有Alt Property Check,配置其它更多的可访问性属性请参见Tool-Options-Advanced中的Accessibility checkpoint中的各项内容。
好像磕睡来了,眼晴有些在打架,本文中的内容空泛地确是也有些让人想睡觉,说这么多的检查类型,其实也只有一个目的,就是想让你知道什么时候判定用什么样的检查类型来检查自己的步骤能够进行判断,有个初体的印象。并且我还十分鼓励你去看看QTP关于检查点的帮助文档,原因很简单,如果你没有主动收集资料学习的动力,那以上又有何意义呢?想睡觉了,不写了,似乎眼睛都有些睁不开了。
2011-4-18
 
返回目录:http://blog.csdn.net/womengdoushizhongguo/article/details/7769936
 
 
 

原创粉丝点击