unknow-ask 发表于 2005-8-11 09:19:16

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

当登陆有验证码的WEB页形式的管理系统时,录制了以下过程:先输入错误的密码,登陆不成功后,再输入错误的用户名,登陆也不成功,再输入正确的完整的信息后,登陆成功。
然后把刚才录制的脚本重新播放,就在输入正确完整的信息处播放不了了。怎么解决这个问题呢?

unknow-ask 发表于 2005-8-11 09:25:13

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

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

ilovejolly 发表于 2005-8-11 09:31:24

1 第一个问题,不是很清楚楼主的意思,验证码?那种动态的?

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

unknow-ask 发表于 2005-8-11 16:57:11

是动态的验证码

 也就是说每登陆一次验证码就要刷新一次的

ilovejolly 发表于 2005-8-11 21:00:31

你的验证码那一栏怎么输的?把代码贴出来看下也可以

unknow-ask 发表于 2005-8-12 09:16:48

代码如下:

Sub Main
    Dim Result As Integer

    'Initially Recorded: 2005-8-119: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

gaobugu 发表于 2005-8-12 11:24:33

对的。我现在也遇到这个问题,就是在登录的时候检证码是动态的,就是网上的论坛一样,旁边是一幅图片,然后在输入框中输入检证码。我测试的这个系统是c/s结构的。所以录制登录后再回放就不能登录了。

ilovejolly 发表于 2005-8-12 12:09:46

为什么会有动态码这个东西?就是针对自动登陆而来的
当然自己的服务器可能还是有办法的。要么你把这个生成动态码的函数做成公共的,让客户端可以直接访问。这样的话得不偿失,自动化的好处没体现出来
所以建议登陆这一步省略掉

gaobugu 发表于 2005-8-12 13:54:24

如果只做功能测试还可以,去掉也不影响很大,但是如果要做压力测试的话,不用登录是不是也可以。

ilovejolly 发表于 2005-8-12 14:00:54

不好意思,验证码确实不好解决。如果可以做成自动登陆的脚本,那某些充值网站就危险了。
如果你想到好的办法,不妨告诉我,在下对这个很有兴趣

[ Last edited by ilovejolly on 2005-8-12 at 14:08 ]

司空公子 发表于 2005-8-12 17:16:42

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

DontTest 发表于 2005-8-17 16:53:55

如果Robot能从图片中找出有用的信息,那么验证码的存在还有什么意义???

ilovejolly 发表于 2005-8-17 17:09:43

仔细考虑一下,比较好的办法还是手动输入
再验证码之前加一个延时就可以了

unknow-ask 发表于 2005-8-18 09:18:25

你的意思是说,在回放脚本时,把输入验证码的地方让它时间长一点,有人工自己输入验证码?要是这样的话,那录制的输入验证码的脚本不是没用了.要删除了.否则不就出问题了?
不知道我说的对不对?你的意思是不是这样呢?

ilovejolly 发表于 2005-8-18 09:29:35

我看你的脚本是用tab来切换不同的editbox的,改成这样:

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

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

司空公子 发表于 2005-8-18 09:33:49

现在我们是在做测试,要的是通过模拟手工输入的方式来实现登陆过程。那么获得图片的信息,就是为了知道它现在的动态验证码是什么,这样才能够模拟手工输入相应的验证码,实现正确的登陆。

司空公子 发表于 2005-8-18 09:38:16

如果要手工输入的话,那还要自动化干嘛。
现在的输入信息是验证码,是一串数字。如果是人工的话,那么获取这串数字的方式就是眼睛看相应的图片。那么对于自动化来讲,它获取的方式就是通过分析相应的图片,得到对应验证码的信息。

ilovejolly 发表于 2005-8-18 09:44:27

自动化解决不了的地方,用手动操作,不知有什么不妥
呵呵,从图片信息获得数字,能否举例?小弟不才,实在想不出来

司空公子 发表于 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的话,验证码还会不断的变化。碰到这种问题就需要和开发人员好好沟通了,搞清楚他们是怎么设置验证码这个功能的。

DontTest 发表于 2005-8-18 11:17:34

To 司空公子
   图片验证之所以存在,我想一个原因就是为了防止用工具暴力**..所以如果robot可以提取并分析出有用信息,说明这个图片验证是做的失败的...
   当然,我并不排除你能找到办法....同理,当你找到办法时,就应该通知开发人员,告诉他们图片验证不完善.
页: [1] 2
查看完整版本: 有验证码的登陆系统。录制后播放不了