51Testing软件测试论坛

标题: vb登陆窗口录制问题!急!!!!!在线等! [打印本页]

作者: lyj841120    时间: 2009-8-17 11:38
标题: vb登陆窗口录制问题!急!!!!!在线等!
vb登陆窗口连了Access数据库验证,录制时停着不动了,有没有人遇到事怎么回事?我试了好几次都是一样的结果。
  >登陆窗口(form)调用了model(连Access数据库)

[ 本帖最后由 lyj841120 于 2009-8-18 11:31 编辑 ]
作者: linhd030    时间: 2009-8-17 11:42
关注中
作者: lyj841120    时间: 2009-8-17 12:06
那位达人帮帮忙啊,一时搞不定了。
作者: lyj841120    时间: 2009-8-17 13:49
论坛里没人知道吗?怎么没人回啊。
作者: supermichael    时间: 2009-8-17 14:05
干嘛要付分才能浏览 啊。。。。。。。。。。
作者: lyj841120    时间: 2009-8-17 14:10
干嘛要付分才能浏览 啊。。。。。。。。。。
不好意思,搞错了 !
作者: dreamever    时间: 2009-8-17 15:06
不好意思不太明白你的问题是什么,是说在录制过程你插入了一条数据库验证点,但是在设置验证点选项的过程中,登录窗口就卡在那里不动了,而且任务管理器中也显示失去响应了,是这种情况吗?
我觉的不妨先简单排查一下,1、手动连接数据库,看是否出现连接不成功的情况;2、在软件卡住的时候,试着切换一下窗口,有时候会有一些弹出窗口,但是没有当前显示;3、被测软件或者QTP本身的问题,你可以试着换一个其他的数据库或软件,也插入一个数据库验证点,看是否出现了卡住不动的情况。

[ 本帖最后由 dreamever 于 2009-8-17 15:08 编辑 ]
作者: lyj841120    时间: 2009-8-17 18:58
谢楼上的。
问题是这样的:我还在初步录制阶段,登陆窗口(form)实现了调用一个model(连Access数据库)验证用户输入的ID和密码是否正确。在用QTP录制的时候输入ID和密码后点登陆,就一直处于录制中,我试了好几次都市一样的。也看了没有什么窗口弹出。我单独运行VB程序是没有问题的,手动连接数据库也是没有问题的。
作者: dabeixiong    时间: 2009-8-17 22:16
录制不动说明你没有操作或者对象不能被qtp识别或者机器卡了。
显示录制中是很正常的,如果你录着录着自己就停了很可能是闹鬼了要不就是你待得地方风水不好-。-!
作者: dreamever    时间: 2009-8-18 09:44
那就是说其实是你在点击登录按钮以后,QTP就卡在那里了。跟 你所说的那个form是否调用model其实是没什么关系的,也就是说在你录制脚本的过程中,即使没有你说的那个“登陆窗口(form)实现了调用一个model(连Access数据库)验证用户输入的ID和密码是否正确”的操作步骤,QTP也一样会卡在那里,不知道我这么理解对不对。
检查一下你机器上的防火墙软件,看看QTP是否被屏蔽了。我使用的是卡巴斯基和RFT,以前录制的时候出现过脚本突然停止不动的情况,当时查了一下卡巴的日志,发现是卡巴自动把RFT的注入进程屏蔽了。权且先做个参考吧。
作者: lyj841120    时间: 2009-8-18 10:21
先谢楼上的各位!我刚才把登陆窗口(form)调用model(连Access数据库)的代码注释掉,直接显示下一个画面,生成EXE。再用QTP录制,就是OK的。看来还是跟调用model(连Access数据库)有关系啊!是什么原因呢?是不是QTP对象库不识别Model还是要设置什么地方?

[ 本帖最后由 lyj841120 于 2009-8-18 10:24 编辑 ]
作者: lyj841120    时间: 2009-8-18 11:19
我找到原因了,是密码输入框的问题,暗码输入就是卡着不动了,改成明码就OK了。

有什么办法没有,大家帮帮忙啊!
作者: dreamever    时间: 2009-8-18 11:40
原来是暗码的问题……什么是暗码?
作者: lyj841120    时间: 2009-8-18 11:45
原来是暗码的问题……什么是暗码?


VB里做密码输入框的时候,text有一个属性PasswordChar,把它的值改成*后,在text输入密码的时候就显示是*****。
作者: dreamever    时间: 2009-8-18 11:54
那应该没影响的啊,现在软件的密码框基本都会显示成*,基本上不可能有明码了。
是不是改成暗码以后密码就不正确,连接数据库严正的时候软件脚本卡在那里了?
作者: lyj841120    时间: 2009-8-18 12:11
那应该没影响的啊,现在软件的密码框基本都会显示成*,基本上不可能有明码了。
是不是改成暗码以后密码就不正确,连接数据库严正的时候软件脚本卡在那里了?


你是指输入了错误的密码还是通过QTP就直接是暗码到数据库检索。
但是我只运行程序是没有什么问题的。要说输入了错误的密码的话,我可试了好几次,也没有报出错误框来,就是卡在那里不动了。而且我把程序中的密码框改成明码再录制就是OK的。不知道是什么地方要设置,比如说编码或是什么的!
作者: lvguobin    时间: 2009-8-18 12:14

作者: lvguobin    时间: 2009-8-18 12:15
连录制都不行,关数据库鸟事。
作者: lyj841120    时间: 2009-8-18 14:01
就没有人能解决吗?卡在这里了。
作者: hsjzfling    时间: 2009-8-18 15:06
没遇到过这样的问题,不过可以先尝试查看防火墙的日志,排除掉防火墙的问题,再查看被测软件的安全日志,确认是不是被测程序的安全功能屏蔽了QTP。

若查不出原因,也可以尝试在激活密码框的焦点之后使用WSH的SendKeys方法来输入密码,看是否奏效。关于Sendkeys的用法可以查看帮助,有详细的说明和例子
作者: lyj841120    时间: 2009-8-18 16:17
没遇到过这样的问题,不过可以先尝试查看防火墙的日志,排除掉防火墙的问题,再查看被测软件的安全日志,确认是不是被测程序的安全功能屏蔽了QTP。

若查不出原因,也可以尝试在激活密码框的焦点之后使用WSH的SendKeys方法来输入密码,看是否奏效。关于Sendkeys的用法可以查看帮助,有详细的说明和例子


防火墙的日志和软件的安全日志读看了没有,我试把防火墙关了在录也不行,现在正在试你说的WSH的SendKeys方法。
作者: lyj841120    时间: 2009-8-18 16:50
若查不出原因,也可以尝试在激活密码框的焦点之后使用WSH的SendKeys方法来输入密码,看是否奏效。关于Sendkeys的用法可以查看帮助,有详细的说明和例子



我先录制,到密码框的时候激活焦点,然后
        dim WshShell = WScript.CreateObject("WScript.Shell");
        WshShell.SendKeys("123456");
        set WshShell = nothing
点登陆,报没有输入密码。看来是没有输入成功,请问是我方法不对还是什么问题啊!
作者: hsjzfling    时间: 2009-8-18 17:04
你在QTP中执行的那段代码??难道不会报错。。。
1. 先在QTP中获取密码框的焦点,比如添加一步点击密码框的操作,可以用F7的方式单步添加;若对象库中已存在密码框的对象,也可以手动写一下;也可以在填完用户名之后按Enter或者Tab等键将焦点移动到密码框(看系统是否支持咯),这一动作若不能录制下来,也可以用sendkeys方法来实现,发送个"{Enter}"或者"{Tab}"
2. 在Click密码框之后使用wsh来发送密码
Set WshShell=CreateObject("WScript.Shell")
WshShell.SendKeys "123456"
作者: lyj841120    时间: 2009-8-18 18:11
我的代码如下:
With VbWindow("login")
        .Move 397,266
        .VbEdit("UserID").Set "liangyj"
        .VbEdit("PassWord").Click
        Set WshShell=CreateObject("WScript.Shell")
        WshShell.SendKeys "123456"
        .Activate
        .VbButton("Login").Click
End With

可试还是不行。

[ 本帖最后由 lyj841120 于 2009-8-18 18:12 编辑 ]




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2