51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3517|回复: 9
打印 上一主题 下一主题

[原创] QTP测试登陆问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-8-17 18:07:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用QTP测试QTP自带的flight程序登陆部分
录制的脚本如下:
Dim hint_msg
Dim hint
‘参数化user和password值
Dialog("Login").WinEdit("Agent Name:").Set DataTable("user", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").SetSecure DataTable("password", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
hint = DataTable("hint", dtGlobalSheet)
'如果弹出错误提示框,通过对比hint 与判断错误提示框信息是否一致来判断程序是否正确进行判断
If Dialog("Login").Dialog("Flight Reservations").Exist  Then
        hint_msg = Dialog("Login").Dialog("Flight Reservations").Static.GetROProperty("text")

   If (hint = hint_msg) Then
                 Reporter.ReportEvent micpass, "登陆", "程序判断正确."
  else
                Reporter.ReportEvent micFail, "登陆", "程序判断错误."
   End If

   Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
   
End If


运行脚本后QTP弹出下面窗口
The "Flight Reservations" object was not found in the Object Repository.
Check the Object Repository to confirm that the object exists or to find the correct name for the object.
Line (9): "If Dialog("Login").Dialog("Flight Reservations").Exist Then".

但是Dialog("Login").Dialog("Flight Reservations")是弹出来了,为什么会提示不存在
大家帮忙看下我的脚本哪里出错了,谢谢了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2006-8-17 18:26:43 | 只看该作者
    在ialog("Login").WinButton("OK").Click 后 增加下面的一行试试看:
    wait(5)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2006-8-17 18:53:34 | 只看该作者
    加wait(5) 还是一样,不能成功运行脚本
    我在录制脚本的时候没有 将Dialog("Login").Dialog("Flight Reservations")对话框录制进去

    我的意图是当输入错误的用户名或密码的时候,系统弹出错误提示对话框
    我根据错误提示对话框中的提示信息与dtGlobalSheet中的hint值比较
    如果相等的话,程序判断正确
    不相等的话,程序判断错误

    是不是要的录制脚本的时候添加Dialog("Login").Dialog("Flight Reservations")对话框
    加了后要怎么样进行判断
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2006-8-17 19:49:13 | 只看该作者
    if Dialog("Login").Window("Flight Reservations").Exist  
    这句呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2006-8-17 20:26:17 | 只看该作者
    是不是网络太慢了,把wait(5)改成wait(60)可不可以啊?
    你试试吧,我也遇到过,导师告诉我是连接超时
    不过看你那好像不是哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2006-8-18 02:34:19 | 只看该作者
    我是在本地测试的
    所以应该不会存在连接超时的问题
    大家使用QTP测试测试网站登陆的时候是采用什么办法进行测试的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2006-8-18 10:05:09 | 只看该作者

    回 juliet7438

    根据你在#3 的描述,我觉得你应该先到对象库里面看看 有没有  Dialog("Login").Window("Flight Reservations")  这个对象。如果没有,那么肯定就会报告 Flight Reservations 不存在的错误了,因为 运行到
        Dialog("Login").Dialog("Flight Reservations").Exist  
    的时候,如果对象库中没有Dialog("Login").Dialog("Flight Reservations") 这个对象,那么 QTP 用哪个对象和 你的Web 或程序中的 对象进行比较,从而判断Dialog("Login").Dialog("Flight Reservations") 是否存在呢? 简单的说,就是如果
    Dialog("Login").Dialog("Flight Reservations") 不存在, 那么 QTP 判断你的 Web 上此对象是否存在的标准都没有了,当然报告说 "Flight Reservations" object was not found。 无论实际运行过程中 Flight Reservations 存在与否, 对象库中 Flight Reservations  这个对象都应该有!

    所以,你应先把 Dialog("Login").Window("Flight Reservations") 添加到对象库里面去。这可以通过补录脚本或用描述性编程的方法来实现。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2006-8-18 10:43:03 | 只看该作者
    当输入正确的用户名和密码的时候,程序是不会弹出 Dialog("Login").Window("Flight Reservations") 对话框
    只有在输入错误的用户名或密码的时候,才会弹出

    这样要怎样对Dialog("Login").Window("Flight Reservations") 进行判断啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2006-8-18 11:12:05 | 只看该作者
    仔细看了一下你的描述,我猜测是 Flight Reservations 在对象库里面,并且是用 text 作为 QTP 识别它的依据。建议你把 对象库中识别 此对象的 text 去掉,增加别的在运行过程中不变的属性,总之是让  QTP能唯一识别出它来就可以了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2006-9-1 18:49:14 | 只看该作者
    首先说一下楼主测的不是那个WEB网站,
    而是QTP自己带的那个windows的程序。呵呵。

    其次是关于为什么总是说找不到对象的问题。
    如果你录了,就应该在的,呵呵,不管是补录的,还是当时就录了,
    一个简单的办法,就是出现那个对话框的时候插一个检查点,(可一录完了加)然后再把检查点注释掉,我觉得这个办法往OR里面加对象挺方便的。

    最后,建议楼主再看一下MI本身提供的那个叫LoginBoundry脚本。找不到给我PM,呵呵。
    我觉得在设计思路上,MI的想法比你的好理解。
    测试前构造测试数据的时候,应该知道预计结果,应该给出什么情况是对的,什么情况是错的,

    只有这样,你run完的结果,才能都是绿的,才有意义吧。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-28 11:15 , Processed in 0.092853 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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