51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5513|回复: 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

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

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

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

使用道具 举报

该用户从未签到

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
回复 支持 反对

使用道具 举报

该用户从未签到

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


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

使用道具 举报

该用户从未签到

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

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

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


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



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

使用道具 举报

该用户从未签到

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


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

使用道具 举报

该用户从未签到

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


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


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

使用道具 举报

该用户从未签到

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


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

使用道具 举报

  • 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中设置一下。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-20 20:37 , Processed in 0.071531 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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