51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 996|回复: 4
打印 上一主题 下一主题

QTP问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-3-4 19:25:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、先建一个access表TestNumberOne  TestNumberTwo
                                            1                               2
                                             3                              4
                                             5                               6
                                            7                                8


2、QTP的代码为:
Dim cnn 'As ADODB.Connection
Dim Rst 'As ADODB.Recordset
Dim strcnn' As String
Dim TestNumberOne 'As String
Dim TestNumberTwo 'As String

strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\AAA\桌面\qtp\qtpDataBase.mdb;Persist Security Info=False"

Set cnn =CreateObject("ADODB.Connection")
cnn.Open strcnn
Set Rst = CreateObject("ADODB.Recordset")
Rst.Open "select * from testdata", cnn
Rst.MoveFirst

Do While Rst.EOF <> True
TestNumberOne = Trim(Rst.Fields(0))

TestNumberTwo =Trim( Rst.Fields(1))

Window("计算器").WinButton(TestNumberOne).Click
Window("计算器").WinButton("+").Click
Window("计算器").WinButton(TestNumberTwo).Click
Window("计算器").WinButton("=").Click
Rst.MoveNext
Loop


Rst.Close
Set Rst = Nothing
Set cnn = Nothing

运行后的结果报错:The "3"WinButton was not found in the Bofect Rspository.Check the Object Repository to Confirm that the object exists or to find the correct name for the object.
它只有运行录制的1+2。后面的都不能运行。如果把3改成别的数报错。给我的感觉,并没有从数据库中读出数据。单步调试,第二次到Window("计算器").WinButton(TestNumberOne).Click就出错。

有谁能告诉我这是为什么。连EXCEL也是一样的问题。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-3-5 13:38:07 | 只看该作者
WinButton(TestNumberTwo)

括号中的内容是测试对像的名字。你应该修改对象的属性值,而不是修改对象的名字。新的对象名在对象存储库不存在所以抱错。
1,2不报错是因为你录制脚本的时候,录制的操作是1+2,这两个对象在对象存储库中已经存在。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-3-6 09:53:03 | 只看该作者
能不能再说的详细一些!我是在网上听的课程,周围也没有人可以问。
能不能把具体的改的地方写的详细一些。谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-3-6 12:07:43 | 只看该作者
QTP的对象识别原理:
录制过程中,将被测对象识别出来以后,保存在对象存储库中,你在脚本中看到的只是对象的名称,对象的识别信息存放在对象存储库中,QTP回放通过名称到对象存储库中查找对象。

如果你想达到动态识别对象的目的,你要修改对象的识别信息,而不是修改对象的名称,对象的名称可以随便命名,只要脚本中和对象存储库中的一致就可以。

在你这个例子里,你将对象的识别属性的值进行参数化就可以了。你现在犯的错误是,修改了对象的名字,而对象存储库中并不存在你修改后名称的对象。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-3-7 00:15:48 | 只看该作者
太不好意思了,我好象很笨。还是不太清楚你说的改对象存储库中的名字,在什么地方改。
你说将对象的识别属性的值进行参数化就可以了。我在keyword view也觉得它和WEB的不一样,不知道在哪里改。
你晚上有时间吗,能不能通过远程协助,你帮我看看。谢谢了!!
我的MSN:hlx666666@hotmail.com
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-27 22:22 , Processed in 0.063085 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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