51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5504|回复: 14
打印 上一主题 下一主题

[原创] QTO参数化请教?(QTP自带的飞机订票系统参数化问题求救)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-12-21 11:09:49 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我是个QTP新手,就用QTP自带的飞机订票系统来学习。但是参数化不会,失败了。求老手赐教。

file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot.png
  1. Dialog("Login").Activate
  2. Dialog("Login").WinEdit("Agent Name:").Set "mercury"
  3. Dialog("Login").WinEdit("Password:").SetSecure "4d10154623f52e115d81b29cb8a50e19a164ceec"
  4. Dialog("Login").WinButton("OK").Click
  5. Window("Flight Reservation").ActiveX("MaskEdBox").Type "122510"
  6. Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable("出发地点", dtGlobalSheet)
  7. Window("Flight Reservation").WinComboBox("Fly To:").Select DataTable("到达地点", dtGlobalSheet)
  8. Window("Flight Reservation").WinButton("FLIGHT").Click
  9. Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "20259   DEN   07:12 AM   LON   02:23 PM   AA     $112.20"
  10. Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
  11. Window("Flight Reservation").WinEdit("Name:").Set "kaka"
  12. Window("Flight Reservation").WinButton("Insert Order").Click
  13. Window("Flight Reservation").Close
复制代码
file:///C:/Documents%20and%20Settings/Administrator/%E6%A1%8C%E9%9D%A2/QTP1.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2011-2-10 15:29:09 | 只看该作者
回复 14# 17800455
楼上的哥们, 要不你也帮帮忙,不要在专家视图里写。就用 用录制。在 关键字视图里面操作一个。
把订票 的 出发地  到达地 和 订票人等 参数化一下。 帮忙把 源码复制一下。 万分感激。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-13 14:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    14#
    发表于 2010-12-31 15:20:06 | 只看该作者
    do

    loop while true    你为什么要写个死循环  你怕qtp不读dataTable表中的数据吗。

    在qtp中设置一下就行了。让读所有的。应该在setting里的运行,这是设置全局的。

    如果你用别的action的话要在action中设置一下。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2010-12-29 12:05:26 | 只看该作者
    回复 12# 肖欢伟


        你需要把脚本里的对象全部添加到对象库中
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2010-12-29 10:14:37 | 只看该作者
    回复  肖欢伟


        不用函数写的话就把Function里面的东西拿出来,最好函数化,看的比较清楚,容易修改 ...
    wz403692767 发表于 2010-12-21 14:24


    哥们,我把你给我的代码复制进去,允许。报错。报错内容写的是
    Line (3): "If Dialog("Login").Exist(2) = False Then".
    不知道是什么原因。你给看看?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2010-12-21 15:24:28 | 只看该作者
    回复 10# 肖欢伟


        QQ:403692767     
        我也就接触了一个月,有机会一起探讨
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2010-12-21 15:14:35 | 只看该作者
    回复  肖欢伟


        不用函数写的话就把Function里面的东西拿出来,最好函数化,看的比较清楚,容易修改 ...
    wz403692767 发表于 2010-12-21 14:24



        恩,真的非常感谢。可以加你QQ吗?以后有什么问题可以请教你。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2010-12-21 14:24:43 | 只看该作者
    回复 7# 肖欢伟


        不用函数写的话就把Function里面的东西拿出来,最好函数化,看的比较清楚,容易修改


    1. 'Login
    2. Do
    3.   If Dialog("Login").Exist(2) = False Then
    4.     SystemUtil.Run "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
    5.   Else
    6.     Dialog("Login").WinEdit("Agent Name:").Set "admin"
    7.     Dialog("Login").WinEdit("Password:").Set "mercury"
    8.     Dialog("Login").WinButton("OK").Click
    9.     Exit do
    10.   End If
    11. Loop While True

    12. 'Order
    13. Do
    14.   If Window("Flight Reservation").Exist(2) = False Then
    15.     Wait 2
    16.   Else
    17.     Exit do
    18.   End If
    19. Loop While True
    20. If Window("Flight Reservation").Exist(5) Then
    21.   Window("Flight Reservation").ActiveX("MaskEdBox").Type DataTable("Date",dtGlobalSheet)
    22.   Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable("From",dtGlobalSheet)
    23.   Window("Flight Reservation").WinComboBox("Fly To:").Select DataTable("To",dtGlobalSheet)
    24.   Window("Flight Reservation").WinButton("FLIGHT").Click
    25.   Wait 2
    26.   Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select 0
    27.   Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    28.   Wait 1
    29.   Window("Flight Reservation").WinEdit("Name:").Set DataTable("Name",dtGlobalSheet)
    30.   Window("Flight Reservation").WinEdit("Tickets:").Set "1"
    31.   Window("Flight Reservation").WinButton("Insert Order").Click
    32. End If

    33. 'Exit
    34. Window("Flight Reservation").WinButton("Insert Order").WaitProperty "enabled",false,100000
    35. Window("Flight Reservation").Close
    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2010-12-21 14:22:02 | 只看该作者
    在qtp help菜单中有一个QuickTest Professional Tutorial,打开它里面有教你如何参数化
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2010-12-21 13:56:24 | 只看该作者
    回复 5# wz403692767

    你这个都是用函数写的哦。比较高深一点,可以不用函数写,更“傻瓜式”一点么?就是尽量简单易懂一点,尤其像我这种小白。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2010-12-21 13:51:09 | 只看该作者
    我临时写了一个完整的,自己参考下,写的不好请见谅,有些没有参数化
    DataTable
    wz403692767 发表于 2010-12-21 12:29


    恩。谢谢你。非常感谢。 我在去研究研究。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-12-21 12:29:43 | 只看该作者
    本帖最后由 wz403692767 于 2010-12-21 12:32 编辑
    1. '================================
    2. ' 函数:LoginFlight
    3. ' 功能:登录订票系统
    4. ' 参数:FightPath,订票系统目录
    5. '================================
    6. Public Function LoginFlight(FlightPath)
    7.   Do
    8.     If Dialog("Login").Exist(2) = False Then
    9.       SystemUtil.Run FlightPath
    10.     Else
    11.       Dialog("Login").WinEdit("Agent Name:").Set "admin"
    12.       Dialog("Login").WinEdit("Password:").Set "mercury"
    13.       Dialog("Login").WinButton("OK").Click
    14.       Exit do
    15.     End If
    16.   Loop While True
    17. End Function
    18. '===============================
    19. ' 函数:OrderFlight
    20. ' 功能:订票
    21. ' 参数:无
    22. '===============================
    23. Public Function OrderFlight
    24.   Do
    25.     If Window("Flight Reservation").Exist(2) = False Then
    26.       Wait 2
    27.     Else
    28.       Exit do
    29.     End If
    30. Loop While True
    31. If Window("Flight Reservation").Exist(5) Then
    32.   Window("Flight Reservation").ActiveX("MaskEdBox").Type DataTable("Date",dtGlobalSheet)
    33.   Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable("From",dtGlobalSheet)
    34.   Window("Flight Reservation").WinComboBox("Fly To:").Select DataTable("To",dtGlobalSheet)
    35.   Window("Flight Reservation").WinButton("FLIGHT").Click
    36.   Wait 2
    37.   Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select 0
    38.   Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    39.   Wait 1
    40.   Window("Flight Reservation").WinEdit("Name:").Set DataTable("Name",dtGlobalSheet)
    41.   Window("Flight Reservation").WinEdit("Tickets:").Set "1"
    42.   Window("Flight Reservation").WinButton("Insert Order").Click
    43. End If
    44. End Function
    45. '====================================
    46. ' 函数:ExitFlight
    47. ' 功能:退出订票系统
    48. ' 参数:无
    49. '====================================
    50. Public Function ExitFlight
    51.   Window("Flight Reservation").WinButton("Insert Order").WaitProperty "enabled",false,100000
    52.   Window("Flight Reservation").Close
    53. End Function
    54. '====================================
    55. ' Main 函数
    56. '====================================
    57. FlightPath = "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
    58. LoginFlight(FlightPath)
    59. OrderFlight
    60. ExitFlight
    复制代码

    我临时写了一个完整的,自己参考下,写的不好请见谅,有些没有参数化
    DataTable

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2010-12-21 11:30:17 | 只看该作者
    出发地点      到达地点
    1   Denver        London
    2  Paris            Frankfurt
    3  Portland      Seattle

    -------------------------公司电脑装不了FALSH 所以传不了截图,等下回去用自己的电脑传。样子就是这样的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2010-12-21 11:23:04 | 只看该作者
    把你的DataTable截出来看看
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
     楼主| 发表于 2010-12-21 11:11:26 | 只看该作者
    本帖最后由 肖欢伟 于 2010-12-21 11:15 编辑

    哪位好心人能弄一个 飞机订票系统然后再参数化一下(就是“起始地点”和“到达地点”的参数化或者还有“订票人”)
    我只会在关键字视图里面点击 VALUE值右键参数化,然后把相应的参数写在 表里面,接下来就不知道改哪里了。。。。。。。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-20 12:14 , Processed in 0.086504 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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