QTO参数化请教?(QTP自带的飞机订票系统参数化问题求救)
我是个QTP新手,就用QTP自带的飞机订票系统来学习。但是参数化不会,失败了。求老手赐教。file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot.pngDialog("Login").Activate
Dialog("Login").WinEdit("Agent Name:").Set "mercury"
Dialog("Login").WinEdit("Password:").SetSecure "4d10154623f52e115d81b29cb8a50e19a164ceec"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").ActiveX("MaskEdBox").Type "122510"
Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable("出发地点", dtGlobalSheet)
Window("Flight Reservation").WinComboBox("Fly To:").Select DataTable("到达地点", dtGlobalSheet)
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "20259 DEN 07:12 AM LON 02:23 PM AA $112.20"
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set "kaka"
Window("Flight Reservation").WinButton("Insert Order").Click
Window("Flight Reservation").Close
file:///C:/Documents%20and%20Settings/Administrator/%E6%A1%8C%E9%9D%A2/QTP1.jpg 本帖最后由 肖欢伟 于 2010-12-21 11:15 编辑
哪位好心人能弄一个 飞机订票系统然后再参数化一下(就是“起始地点”和“到达地点”的参数化或者还有“订票人”)
我只会在关键字视图里面点击 VALUE值右键参数化,然后把相应的参数写在 表里面,接下来就不知道改哪里了。。。。。。。 把你的DataTable截出来看看 出发地点 到达地点
1 Denver London
2Paris Frankfurt
3Portland Seattle
-------------------------公司电脑装不了FALSH 所以传不了截图,等下回去用自己的电脑传。样子就是这样的 本帖最后由 wz403692767 于 2010-12-21 12:32 编辑
'================================
' 函数:LoginFlight
' 功能:登录订票系统
' 参数:FightPath,订票系统目录
'================================
Public Function LoginFlight(FlightPath)
Do
If Dialog("Login").Exist(2) = False Then
SystemUtil.Run FlightPath
Else
Dialog("Login").WinEdit("Agent Name:").Set "admin"
Dialog("Login").WinEdit("Password:").Set "mercury"
Dialog("Login").WinButton("OK").Click
Exit do
End If
Loop While True
End Function
'===============================
' 函数:OrderFlight
' 功能:订票
' 参数:无
'===============================
Public Function OrderFlight
Do
If Window("Flight Reservation").Exist(2) = False Then
Wait 2
Else
Exit do
End If
Loop While True
If Window("Flight Reservation").Exist(5) Then
Window("Flight Reservation").ActiveX("MaskEdBox").Type DataTable("Date",dtGlobalSheet)
Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable("From",dtGlobalSheet)
Window("Flight Reservation").WinComboBox("Fly To:").Select DataTable("To",dtGlobalSheet)
Window("Flight Reservation").WinButton("FLIGHT").Click
Wait 2
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select 0
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Wait 1
Window("Flight Reservation").WinEdit("Name:").Set DataTable("Name",dtGlobalSheet)
Window("Flight Reservation").WinEdit("Tickets:").Set "1"
Window("Flight Reservation").WinButton("Insert Order").Click
End If
End Function
'====================================
' 函数:ExitFlight
' 功能:退出订票系统
' 参数:无
'====================================
Public Function ExitFlight
Window("Flight Reservation").WinButton("Insert Order").WaitProperty "enabled",false,100000
Window("Flight Reservation").Close
End Function
'====================================
' Main 函数
'====================================
FlightPath = "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
LoginFlight(FlightPath)
OrderFlight
ExitFlight
我临时写了一个完整的,自己参考下,写的不好请见谅,有些没有参数化
DataTable
我临时写了一个完整的,自己参考下,写的不好请见谅,有些没有参数化
DataTable
wz403692767 发表于 2010-12-21 12:29 http://bbs.51testing.com/images/common/back.gif
恩。谢谢你。非常感谢。 我在去研究研究。:) 回复 5# wz403692767
你这个都是用函数写的哦。比较高深一点,可以不用函数写,更“傻瓜式”一点么?就是尽量简单易懂一点,尤其像我这种小白。。。。:) 在qtp help菜单中有一个QuickTest Professional Tutorial,打开它里面有教你如何参数化 回复 7# 肖欢伟
不用函数写的话就把Function里面的东西拿出来,最好函数化,看的比较清楚,容易修改
'Login
Do
If Dialog("Login").Exist(2) = False Then
SystemUtil.Run "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
Else
Dialog("Login").WinEdit("Agent Name:").Set "admin"
Dialog("Login").WinEdit("Password:").Set "mercury"
Dialog("Login").WinButton("OK").Click
Exit do
End If
Loop While True
'Order
Do
If Window("Flight Reservation").Exist(2) = False Then
Wait 2
Else
Exit do
End If
Loop While True
If Window("Flight Reservation").Exist(5) Then
Window("Flight Reservation").ActiveX("MaskEdBox").Type DataTable("Date",dtGlobalSheet)
Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable("From",dtGlobalSheet)
Window("Flight Reservation").WinComboBox("Fly To:").Select DataTable("To",dtGlobalSheet)
Window("Flight Reservation").WinButton("FLIGHT").Click
Wait 2
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select 0
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Wait 1
Window("Flight Reservation").WinEdit("Name:").Set DataTable("Name",dtGlobalSheet)
Window("Flight Reservation").WinEdit("Tickets:").Set "1"
Window("Flight Reservation").WinButton("Insert Order").Click
End If
'Exit
Window("Flight Reservation").WinButton("Insert Order").WaitProperty "enabled",false,100000
Window("Flight Reservation").Close
回复肖欢伟
不用函数写的话就把Function里面的东西拿出来,最好函数化,看的比较清楚,容易修改 ...
wz403692767 发表于 2010-12-21 14:24 http://bbs.51testing.com/images/common/back.gif
恩,真的非常感谢。可以加你QQ吗?以后有什么问题可以请教你。 回复 10# 肖欢伟
QQ:403692767
我也就接触了一个月,有机会一起探讨 回复肖欢伟
不用函数写的话就把Function里面的东西拿出来,最好函数化,看的比较清楚,容易修改 ...
wz403692767 发表于 2010-12-21 14:24 http://bbs.51testing.com/images/common/back.gif
哥们,我把你给我的代码复制进去,允许。报错。报错内容写的是
Line (3): "If Dialog("Login").Exist(2) = False Then".
不知道是什么原因。你给看看? 回复 12# 肖欢伟
你需要把脚本里的对象全部添加到对象库中 do
loop while true 你为什么要写个死循环你怕qtp不读dataTable表中的数据吗。
在qtp中设置一下就行了。让读所有的。应该在setting里的运行,这是设置全局的。
如果你用别的action的话要在action中设置一下。 回复 14# 17800455
楼上的哥们, 要不你也帮帮忙,不要在专家视图里写。就用 用录制。在 关键字视图里面操作一个。
把订票 的 出发地到达地 和 订票人等 参数化一下。 帮忙把 源码复制一下。 万分感激。
页:
[1]