51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7584|回复: 24
打印 上一主题 下一主题

[Robot] 有验证码的登陆系统。录制后播放不了

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-8-11 09:19:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当登陆有验证码的WEB页形式的管理系统时,录制了以下过程:先输入错误的密码,登陆不成功后,再输入错误的用户名,登陆也不成功,再输入正确的完整的信息后,登陆成功。
然后把刚才录制的脚本重新播放,就在输入正确完整的信息处播放不了了。怎么解决这个问题呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2005-8-11 09:25:13 | 只看该作者

再补充一个问题,就是播放时的速度问题。

怎么样控制播放的速度呢?也就是说要是播放的速度太快了,使其慢一点,怎么办呢?我用过DELAYFOR()函数但没什么效果?请指教
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2005-8-11 09:31:24 | 只看该作者
1 第一个问题,不是很清楚楼主的意思,验证码?那种动态的?

2 tool----GUI playback optioin---playback标签下的script control里面,设置命令和按键的间隔时间
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2005-8-11 16:57:11 | 只看该作者

是动态的验证码

 也就是说每登陆一次验证码就要刷新一次的
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-8-11 21:00:31 | 只看该作者
你的验证码那一栏怎么输的?把代码贴出来看下也可以
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2005-8-12 09:16:48 | 只看该作者

代码如下:

Sub Main
    Dim Result As Integer

    'Initially Recorded: 2005-8-11  9:20:06
    'Script Name: web
   
    Window SetContext, "Caption=Program Manager", ""
    ListView DblClick, "ObjectIndex=1;\;ItemText=Internet Explorer", "Coords=20,17"
   
    Window SetContext, "Caption=about:blank - Microsoft Internet Explorer", ""
    ComboEditBox Click, "ObjectIndex=3", "Coords=91,12"
    InputKeys "http://192"
   
    Window SetContext, "Class=Auto-Suggest Dropdown", "Activate=0"
    ListView Click, "Text=Internet Explorer;\;ItemText=http://192.168.1.16:8080/WebCon", "Coords=111,7"
   
    Window SetContext, "Caption=WebCon管理平台 - Microsoft Internet Explorer", ""
    Browser NewPage,"HTMLTitle=WebCon管理平台",""
    EditBox Click, "Name=username", "Coords=13,15"
    InputKeys "admin{TAB}123456{TAB}5607{ENTER}"(从这以下就不能播放了)
    Browser NewPage,"HTMLTitle=WebCon管理平台",""
    EditBox Click, "Name=username", "Coords=6,14"
    InputKeys "admin{TAB}{TAB}7895{ENTER}"(7895就是验证码,其中密码是空)
    DelayFor (1000)
    Browser NewPage,"HTMLTitle=WebCon管理平台",""
    HTMLLink Click, "HTMLText=退出系统", ""
    Window CloseWin, "", ""

End Sub
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2015-6-25 22:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2005-8-12 11:24:33 | 只看该作者
    对的。我现在也遇到这个问题,就是在登录的时候检证码是动态的,就是网上的论坛一样,旁边是一幅图片,然后在输入框中输入检证码。我测试的这个系统是c/s结构的。所以录制登录后再回放就不能登录了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2005-8-12 12:09:46 | 只看该作者
    为什么会有动态码这个东西?就是针对自动登陆而来的
    当然自己的服务器可能还是有办法的。要么你把这个生成动态码的函数做成公共的,让客户端可以直接访问。这样的话得不偿失,自动化的好处没体现出来
    所以建议登陆这一步省略掉
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2015-6-25 22:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2005-8-12 13:54:24 | 只看该作者
    如果只做功能测试还可以,去掉也不影响很大,但是如果要做压力测试的话,不用登录是不是也可以。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2005-8-12 14:00:54 | 只看该作者
    不好意思,验证码确实不好解决。如果可以做成自动登陆的脚本,那某些充值网站就危险了。
    如果你想到好的办法,不妨告诉我,在下对这个很有兴趣

    [ Last edited by ilovejolly on 2005-8-12 at 14:08 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2005-8-12 17:16:42 | 只看该作者
    验证码一般都是图片形式的,所以可以先获取验证码的一些属性,比如图片的名称什么的,然后讲图片和相应的验证码数字信息一一对应起来。这样在测试过程中,可以根据图片的信息,输入相应的数字,达到自动登陆的目的。
    当然也可以让开发人员把这项功能先关掉,或者提供一个接口,让你能够得到隐藏属性。
    总之,就是相尽一切办法搞定它^_^
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2005-8-17 16:53:55 | 只看该作者
    如果Robot能从图片中找出有用的信息,那么验证码的存在还有什么意义???
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2005-8-17 17:09:43 | 只看该作者
    仔细考虑一下,比较好的办法还是手动输入
    再验证码之前加一个延时就可以了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2005-8-18 09:18:25 | 只看该作者
    你的意思是说,在回放脚本时,把输入验证码的地方让它时间长一点,有人工自己输入验证码?要是这样的话,那录制的输入验证码的脚本不是没用了.要删除了.否则不就出问题了?
    不知道我说的对不对?你的意思是不是这样呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2005-8-18 09:29:35 | 只看该作者
    我看你的脚本是用tab来切换不同的editbox的,改成这样:

    EditBox Click, "Name=username", "Coords=13,15"
    InputKeys "admin{TAB}123456"
    delayfor 3000
    手动输入验证码
    InputKeys "admin{ENTER}"

    如果要不停重复使用登陆这一步就有点麻烦,不过也只有这样解决了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2005-8-18 09:33:49 | 只看该作者
    现在我们是在做测试,要的是通过模拟手工输入的方式来实现登陆过程。那么获得图片的信息,就是为了知道它现在的动态验证码是什么,这样才能够模拟手工输入相应的验证码,实现正确的登陆。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2005-8-18 09:38:16 | 只看该作者
    如果要手工输入的话,那还要自动化干嘛。
    现在的输入信息是验证码,是一串数字。如果是人工的话,那么获取这串数字的方式就是眼睛看相应的图片。那么对于自动化来讲,它获取的方式就是通过分析相应的图片,得到对应验证码的信息。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2005-8-18 09:44:27 | 只看该作者
    自动化解决不了的地方,用手动操作,不知有什么不妥
    呵呵,从图片信息获得数字,能否举例?小弟不才,实在想不出来
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2005-8-18 11:01:06 | 只看该作者
    比如163的注册,有验证码的图片,可以使用SQAGetProperty获取图片的src地址
    Result=SQAGetProperty("Caption=TOM用户注册 - Microsoft Internet Explorer;\;Type=HTMLImage;Index=7", "src", info)
    你可以查看一下这个src的链接,就是那个验证码的图片。这样只需要事先把图片的链接和验证码数字一一对应起来,在做自动化的过程中就可以做相应的判断,然后将相应的验证码数字输入进去,实现成功的的注册。

    我在做实验的过程中试了好几个网站,结果都或多或少有点问题。
    比如新浪的,它的控件名称是HTMLText=验证码,可能是因为有中文的缘故,所以用SQAGetProperty没有抓出src的信息,说找不到控件。
    爬爬大陆的验证码图片,它每一个数字都是不同的图片,所以如果要验证的话就要麻烦一点。
    CSDN的验证码更有趣,不知道它用的是什么算法,好像跟ip、时间都有关系的,而且不断刷新这个src的话,验证码还会不断的变化。碰到这种问题就需要和开发人员好好沟通了,搞清楚他们是怎么设置验证码这个功能的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2005-8-18 11:17:34 | 只看该作者
    To 司空公子
         图片验证之所以存在,我想一个原因就是为了防止用工具暴力**..所以如果robot可以提取并分析出有用信息,说明这个图片验证是做的失败的...
         当然,我并不排除你能找到办法....同理,当你找到办法时,就应该通知开发人员,告诉他们图片验证不完善.
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-11 05:02 , Processed in 0.090660 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表