QTP - 网站上的验证码录制

http://bbs.51testing.com/thread-159897-1-2.html


http://bbs.51testing.com/thread-161144-1-22.html

 

 

经过以上两个帖子的学习,终于至少可以录制那些比较“清晰”的验证码了。所谓清晰,是不带干扰背景的,但是至少可以获取累死的文字,所以说明方法还是成功了。所以还是挺高兴的,在这里记录一下方法:


Example:http://www.kaixin001.com/reg/reg.php


思路:将验证码图片里的文字获取到datasheet,然后得到datasheet里的值set到验证码的输入框

 

 

Window("注册 - 开心网 - Microsoft Internet").WinObject("Internet Explorer_Server").Click 427,144


Window("注册 - 开心网 - Microsoft Internet_2").WinObject("Internet Explorer_Server").Output CheckPoint("Internet Explorer_Server_2")


Dim validation


validation=datatable.GetSheet("Global").GetParameter("output").ValueByRow(1)


Browser("注册 - 开心网").Page("注册 - 开心网").WebEdit("code").Set  validation


具体代码请参考qtp test目录下的Validate_Data_Web.

 

 

这里有几个知识点:


1. output CheckPoint可以将某个对象作为output的值,写到qtp自带的datasheet中。但是这里的验证码是个图片西西的东西,所以经过论坛指点,选用text area output values。查了下qtp的help:You can create a text area output value only while recording on Windows-based applications—Standard Windows, Visual Basic and ActiveX. 因此要基于windows-base的application,这里又有两个方法可以做到这一点:1)录制的时候选低级录制 2)录制两段script,其中一段刚打开qtp时将web插件去掉,就变成windows-base的了。然后在录制的时候,假如在那个验证框这里右键,就只有insert output value这个选项,没有text area output,但其实可以在insert菜单的output下选text area output values,然后修改输入到datasheet的column名字,比如就叫output。


2. 现在剩下的问题就是:我录制的开心网的注册界面的验证码在很下面,假如有些页面最大化后还不能显示这个验证框,一定要下拉到页底,该怎么操作呢?等待下面帖子的回复:


http://bbs.51testing.com/viewthread.php?tid=159897&page=2&extra=page%3D2

 

 

 

 

 

今天看了精华贴,总结了验证码问题的几个解决方案,我之前上面说的这种只是比较容易实现的一种,其实还有很多困难。于是请看下列总结。


http://bbs.51testing.com/thread-41992-1-5.html

 

 

    1、测试的时候,让程序员把这块限制去掉,免去验证这关。


    2、让程序员提供一个万能验证码,测试可以绕过这一关。


    3、请程序员提供识别的方法,从获取的图片读出验证数据,再传给QTP。


    4、进行位图检查,将验证码分段进行图像验证。


    实际上,验证码的目的就是防止用程序灌水或机器录入信息。所以有点为难我们测试了。


方法1,如果程序已在发布并有客户使用,危险性是可想而知的。方法2虽然可以解决验证这一关,但跳过了输入码与验证码一致性问题。方法3就需要程序员配合了,可能就需要调用DLL了。方法4却将图像分段,把获取的图像和已经的图像进行比对,比对通过取对应的值;这个在数字验证会好做一点,因为最多就四个图像的比对。


 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值