51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 26092|回复: 84
打印 上一主题 下一主题

QTP Tutorial 中的订票操作参数化后无法运行第二行的解决方法

[复制链接]
  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2007-4-4 12:31:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    Description:
    根据 QTP_Tutorial 里面的步骤介绍,先录制预定从 New York 到 San Francisco 航班的机票的操作,然后增加检查点 Checkpoint,最后对fromPort 进行参数化。最后的脚本如下:

    Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "mercury"
    Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").Set "mercury"
    Rem 为了说明问题,上面一行是我对原来录制的脚本修改后的结果。如果是录制的脚本,上面一行应为
    Rem Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "... "
    Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 21,2
    Wait(5)
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Select DataTable("depatture", dtGlobalSheet)
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromMonth").Select "December"
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromDay").Select "29"
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toPort").Select "San Francisco"
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toMonth").Select "December"
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toDay").Select "31"
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebRadioGroup("servClass").Select "Business"
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 65,7
    Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Image("reserveFlights").Click 77,10
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebTable("New York to San Francisco").Check CheckPoint("New York to San Francisco")
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Check CheckPoint("Book a Flight: Mercury")
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Set "Demie"
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Check CheckPoint("passFirst0")
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast0").Set "Sun"
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("creditnumber").Set "8888888888888888"
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Image("buyFlights").Click 35,3
    Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Check CheckPoint("New York")
    Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Image("home").Click
    Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours_2").Sync

    [ 本帖最后由 walker1020 于 2007-11-22 23:28 编辑 ]

    本帖子中包含更多资源

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

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

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    推荐
     楼主| 发表于 2007-4-12 17:34:23 | 只看该作者
    原帖由 风之无痕 于 2007-4-12 09:35 发表
    谢谢你的回答,我想知道要学好这个工具都需要什么编程基础或者别的什么计算机知识的基础?


    如果只是为了学习 QTP,那么只需要学习 VBScript 就可以了。当然,我们不是为了学习工具而学习它。为了测试工作的需要,你还需要
    了解甚至熟悉测试系统的语言,例如我现在测试的是 J2EE架构的流程管理软件,那么我要知道 J2EE 方面的相关知识,还要知道企业流程方面的有关知识。学无止境。测试也一样。

    [ 本帖最后由 walker1020 于 2007-4-12 17:40 编辑 ]
    回复 支持 1 反对 0

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    2#
     楼主| 发表于 2007-4-4 12:40:09 | 只看该作者
    回放时,QTP正常运行完DataTable的第一行,但当第二次运行时,报告错误:

    Cannot identify the object "fromPort" (of class WebList). Verify that this object's properties match an object currently displayed in your application.
    Line (6): "Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Select DataTable("depatture", dtGlobalSheet)".

    [ 本帖最后由 walker1020 于 2007-11-22 23:29 编辑 ]

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2007-4-4 12:45:06 | 只看该作者

    寻找错误

    设置断点后,发现是运行完第二行代码后,登陆不成功,自然就找不到这个对象了。仔细检查后发现:在运行第二行的参数时,登陆的时候,userName填完以后,填写password后,userName又变成空的。当然登陆就失败了。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2007-4-4 12:50:51 | 只看该作者
    Solution:
    删除最后一行,问题就解决了。

    Analysis:
    问题出在最后一行的Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours_2") 页面与初始页面 Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours") 不是一个页面,登陆自然不会成功。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2007-4-4 12:53:55 | 只看该作者

    说明

    这是我在帮助一位朋友解决此问题后写的详细结果过程。可能需要初学者都遇到过这个问题,愿我的解答能释去你们的疑惑。为了帮助更多的朋友,把正确的代码共享出来。具体代码请看附件。下载此代码不需要任何积分!
    为了便于理解,我已经增加了不少注释。

    [ 本帖最后由 walker1020 于 2007-4-4 13:13 编辑 ]

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-4-4 13:35:11 | 只看该作者
    呵呵,walker兄弟热心,支持你
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-4-4 13:51:04 | 只看该作者

    回复 #5 walker1020 的帖子

    good
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-4-4 22:32:22 | 只看该作者
    谢谢,我遇到过这个问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-4-10 10:22:15 | 只看该作者

    QTP参数化问题

    在最后一节的运行和分析多操作时,“FlightOrder”操作将运行两次,但在第二次循环时就不能识别对象了,请问是怎么回事?应该如何修改?
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    10#
     楼主| 发表于 2007-4-10 21:07:43 | 只看该作者
    请 limxi520 参考一下我在 #5的附件里面的脚本,看看两者有什么区别。如果问题还有得到解决,那么 就把第二次循环时就不能识别对象的那部分代码放上来吧。这样可以帮你。没有脚本根本没有办法帮你!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-4-11 09:03:11 | 只看该作者
    To walker:
    请问每次停止录制都会出现Sync事件是什么意思?这是进Find a Flight页面循环两次的脚本,第二次循环就不能识别对象了,请帮忙看一下应该如何修改?
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Select "London"
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromMonth").Select DataTable("p_fromMonth", dtLocalSheet)
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromDay").Select "29"
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toPort").Select DataTable("ArrivalCity", dtLocalSheet)
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toMonth").Select DataTable("p_toMonth", dtLocalSheet)
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("toDay").Select "31"
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("findFlights").Click 51,9
    Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").Image("reserveFlights").Click 77,6
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Set "zhang"
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast0").Set "ming"
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("creditnumber").Set "123456"
    Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").Image("buyFlights").Click 90,14
    Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Image("backtoflights").Click
    Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Sync
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    12#
     楼主| 发表于 2007-4-11 14:00:33 | 只看该作者
    原帖由 limxi520 于 2007-4-11 09:03 发表
    To walker:
    请问每次停止录制都会出现Sync事件是什么意思?这是进Find a Flight页面循环两次的脚本,第二次循环就不能识别对象了,请帮忙看一下应该如何修改?
    Browser("Welcome: Mercury Tours").Page("Find ...


    比较你在 #11放的代码和我在 #1的代码,我猜测你在最后一个页面上点击的是BACK TO FLIGHTS 按钮,而不是QTP Tutorial  里面要求的 BACK TO HOME 按钮。 点击 按钮后,QTP 会为你自动生成代码
    Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Image("home").Click

    而不是你现在的
    Browser("Welcome: Mercury Tours").Page("Flight Confirmation: Mercury").Image("backtoflights").Click

    另外,请把下面一行删除:
    Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours_2").Sync

    [ 本帖最后由 walker1020 于 2007-4-11 14:08 编辑 ]

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    13#
     楼主| 发表于 2007-4-11 14:31:21 | 只看该作者

    To limxi520

    如果你按照我在 # 12的操作去做,问题应该得到解决。提醒你一下:做测试一定要细心!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-4-11 16:59:46 | 只看该作者
    搂主,你真行,我还没有作呢,在后面肯定能用上!还有我想问下,如果没有实际的项目,怎么才能练QTP除了那个预订票例子以外?
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    15#
     楼主| 发表于 2007-4-11 18:36:32 | 只看该作者

    To 风之无痕

    对一道数学题,如果你能用 N 种方法去解决,那么你的收获肯定要远远比解答 N个同类的问题的收获大。QTP Tutorial说的那个预订票例子的所有操作(录制、参数化、置检查点、回放等),你都理解吗? 在 Expert View里面的代码你都理解其含义吗?
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    16#
     楼主| 发表于 2007-4-11 18:37:36 | 只看该作者
    这是一个初学者练习QTP的最好的例子,因为有讲解,还可以来论坛发帖。呵呵!sdlkfj5
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-4-12 09:35:40 | 只看该作者
    谢谢你的回答,我想知道要学好这个工具都需要什么编程基础或者别的什么计算机知识的基础?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-4-12 15:13:29 | 只看该作者
    谢谢,我也遇到了这个问题,不过我都是手动再录入一次登录名和密码后,就可继续运行了,方法比较笨,也不知道原因在哪,不过现在好了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-4-12 16:08:25 | 只看该作者

    回复 #1 walker1020 的帖子

    傲傲管用,顶一下!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-19 04:31 , Processed in 0.084532 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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