51Testing软件测试论坛

标题: 把飞机定票系统的基本操作写完了!(检查的什么都还不会。。。) [打印本页]

作者: sogoc    时间: 2007-4-25 22:39
标题: 把飞机定票系统的基本操作写完了!(检查的什么都还不会。。。)
If not Browser("Browser").Page("Page").WebEdit("name:=userName").Exist Then
        Muser=DataTable("用户名",gtGlobalSheet)
        Mpwd=DataTable("密码",gtGlobalSheet)
        If Muser<>"" and Mpwd<>"" Then
                SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","","C:\Documents and Settings\Administrator","open"
                Browser("Browser").Page("Page").Sync
                Browser("Browser").Navigate "http://newtours.mercuryinteractive.com"
                Browser("Browser").Page("Page").WebEdit("name:=userName").Set Muser
                Browser("Browser").Page("Page").WebEdit("name:=password").Set Mpwd
                Browser("Browser").Page("Page").Image("name:=login").Click
                Browser("Browser").Page("Page").Sync
        End If
End If
MType=DataTable("Type",gtGlobalSheet)
If MType="Round Trip" Then
        Browser("Browser").Page("Page").WebRadioGroup("name:=tripType","index:=0").Select "#0"
Else
        Browser("Browser").Page("Page").WebRadioGroup("name:=tripType","index:=0").Select "#1"
End If
MUserCount=DataTable("Passengers",gtGlobalSheet)
MDepartingFrom=DataTable("DepartingFrom",gtGlobalSheet)
MDay1=DataTable("Day1",gtGlobalSheet)
MMonth1=DataTable("Month1",gtGlobalSheet)
MDay2=DataTable("Day2",gtGlobalSheet)
MMonth2=DataTable("Month2",gtGlobalSheet)
MArrivingIn=DataTable("ArrivingIn",gtGlobalSheet)
MServiceClass=DataTable("ServiceClass",gtGlobalSheet)
MAirline=DataTable("Airline",gtGlobalSheet)
Browser("Browser").Page("Page").WebList("name:=passCount").Select MUserCount
Browser("Browser").Page("Page").WebList("name:=fromPort").Select MDepartingFrom
Browser("Browser").Page("Page").WebList("name:=fromMonth").Select MMonth1
Browser("Browser").Page("Page").WebList("name:=fromDay").Select MDay1
Browser("Browser").Page("Page").WebList("name:=toPort").Select MArrivingIn
Browser("Browser").Page("Page").WebList("name:=toMonth").Select MMonth2
Browser("Browser").Page("Page").WebList("name:=toDay").Select MDay2
If MServiceClass="" and MServiceClass="Economy class" Then
        Browser("Browser").Page("Page").WebRadioGroup("name:=servClass").Select "#0"
ElseIf MServiceClass="Economy class" Then
        Browser("Browser").Page("Page").WebRadioGroup("name:=servClass").Select "#1"
Else
        Browser("Browser").Page("Page").WebRadioGroup("name:=servClass").Select "#2"
End If
Browser("Browser").Page("Page").WebList("name:=airline").Select MAirline
Browser("Browser").Page("Page").Image("name:=findFlights").Click
Browser("Browser").Page("Page").Sync
MDEPART=DataTable("DEPART",gtGlobalSheet)
MRETURN=DataTable("RETURN",gtGlobalSheet)
If MDEPART="" and MDEPART="1" Then
        Browser("Browser").Page("Page").WebRadioGroup("name:=outFlight").Select "#0"
ElseIf MDEPART="2" Then
        Browser("Browser").Page("Page").WebRadioGroup("name:=outFlight").Select "#1"
ElseIf MDEPART="3" Then
        Browser("Browser").Page("Page").WebRadioGroup("name:=outFlight").Select "#2"
Else
        Browser("Browser").Page("Page").WebRadioGroup("name:=outFlight").Select "#3"
End If
If MRETURN="" and MRETURN="1" Then
        Browser("Browser").Page("Page").WebRadioGroup("name:=inFlight").Select "#0"
ElseIf MRETURN="2" Then
        Browser("Browser").Page("Page").WebRadioGroup("name:=inFlight").Select "#1"
ElseIf MRETURN="3" Then
        Browser("Browser").Page("Page").WebRadioGroup("name:=inFlight").Select "#2"
Else
        Browser("Browser").Page("Page").WebRadioGroup("name:=inFlight").Select "#3"
End If
Browser("Browser").Page("Page").Image("name:=reserveFlights").Click
Browser("Browser").Page("Page").Sync
MCustomerF=DataTable("CustomerF",gtGlobalSheet)
MCF=Split(MCustomerF,"/",-1,1)
MCustomerL=DataTable("CustomerL",gtGlobalSheet)
MCL=Split(MCustomerL,"/",-1,1)
MMeal=DataTable("Meal",gtGlobalSheet)
MM=Split(MMeal,"/",-1,1)
MCardType=DataTable("CardType",gtGlobalSheet)
MNumber=DataTable("Number",gtGlobalSheet)
MFirstName=DataTable("FirstName",gtGlobalSheet)
MMiddle=DataTable("Middle",gtGlobalSheet)
MExpirationM=DataTable("ExpirationM",gtGlobalSheet)
MExpirationY=DataTable("ExpirationY",gtGlobalSheet)
MLast=DataTable("Last",gtGlobalSheet)
MBillingAddress=DataTable("BillingAddress",gtGlobalSheet)
For i=0 to (MUserCount-1)
        Browser("Browser").Page("Page").WebEdit("name:=passFirst"&i).Set MCF(i)
        Browser("Browser").Page("Page").WebEdit("name:=passLast"&i).Set MCL(i)
        If MM(i)<>"" Then
                Browser("Browser").Page("Page").WebList("name:=pass."&i&".meal").Select MM(i)
        End If
Next
If MCardType<>"" Then
        Browser("Browser").Page("Page").WebList("name:=creditCard").Select MCardType
End If
Browser("Browser").Page("Page").WebEdit("name:=creditnumber").Set MNumber
If MExpirationM<>"" Then
        Browser("Browser").Page("Page").WebList("name:=cc_exp_dt_mn").Select MExpirationM
End If
If MExpirationY<>"" Then
        Browser("Browser").Page("Page").WebList("name:=cc_exp_dt_yr").Select MExpirationY
End If
MFirstName=DataTable("FirstName",gtGlobalSheet)
MMiddle=DataTable("Middle",gtGlobalSheet)
MLast=DataTable("Last",gtGlobalSheet)
Browser("Browser").Page("Page").WebEdit("name:=cc_frst_name").Set MFirstName
Browser("Browser").Page("Page").WebEdit("name:=cc_mid_name").Set MMiddle
Browser("Browser").Page("Page").WebEdit("name:=cc_last_name").Set MLast
Browser("Browser").Page("Page").WebEdit("name:=cc_last_name").Set MLast
MBillAddress=DataTable("BillingAddress",gtGlobaiSheet)
MBillAddress1=DataTable("BillAddress1",gtGlobalSheet)
MBillAddress2=DataTable("BillAddress2",gtGlobaiSheet)
MBillCity=DataTable("BillCity",gtGlobalSheet)
MBillStateProvince=DataTable("BillStateProvince",gtGlobaiSheet)
MBillPostalCode=DataTable("BillPostalCode",gtGlobalSheet)
MBillCountry=DataTable("BillCountry",gtGlobalSheet)
If MBillAddress<>"" Then
        Browser("Browser").Page("Page").WebCheckBox("name:=ticketLess","index:=0").Set "on"
        Browser("Browser").Page("Page").WebEdit("name:=billAddress1").Set MBillAddress1
        Browser("Browser").Page("Page").WebEdit("name:=billAddress2").Set MBillAddress2
        Browser("Browser").Page("Page").WebEdit("name:=billCity").Set MBillCity
        Browser("Browser").Page("Page").WebEdit("name:=billState").Set MBillStateProvince
        Browser("Browser").Page("Page").WebEdit("name:=billZip").Set MBillPostalCode
        Browser("Browser").Page("Page").WebList("name:=billCountry").Select MBillCountry
End If
MDeliveryAddress=DataTable("DeliveryAddress",gtGlobaiSheet)
MdelAddress1=DataTable("delAddress1",gtGlobalSheet)
MdelAddress2=DataTable("delAddress2",gtGlobaiSheet)
MdelCity=DataTable("delCity",gtGlobalSheet)
MdelStateProvince=DataTable("delStateProvince",gtGlobaiSheet)
MdelPostalCode=DataTable("delPostalCode",gtGlobalSheet)
MdelCountry=DataTable("delCountry",gtGlobalSheet)
If MDeliveryAddress<>"" Then
        Browser("Browser").Page("Page").WebCheckBox("name:=ticketLess","index:=1").Set "on"
        Browser("Browser").Page("Page").WebEdit("name:=delAddress1").Set MdelAddress1
        Browser("Browser").Page("Page").WebEdit("name:=delAddress2").Set MdelAddress2
        Browser("Browser").Page("Page").WebEdit("name:=delCity").Set MdelCity
        Browser("Browser").Page("Page").WebEdit("name:=delState").Set MdelStateProvince
        Browser("Browser").Page("Page").WebEdit("name:=delZip").Set MdelPostalCode
        Browser("Browser").Page("Page").WebList("name:=delCountry").Select MdelCountry
End If
If Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("确定").Exist Then
        Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
End If
Browser("Browser").Page("Page").Image("name:=buyFlights").Click
Browser("Browser").Page("Page").Sync
MChangeWeb=DataTable("ChangeWeb",gtGlobalSheet)
If MChangeWeb="BACK TO FLIGHTS" Then
        Browser("Browser").Page("Page").Image("url:=http://newtours.mercuryinteractive.com/tour/mercuryreservation.php").Click
ElseIf MChangeWeb="BACK TO HOME" Then
        Browser("Browser").Page("Page").Image("url:=http://newtours.mercuryinteractive.com/tour/mercurywelcome.php").Click
        Browser("Browser").Close
ElseIf MChangeWeb="LOG OUT" Then
        Browser("Browser").Page("Page").Image("url:=http://newtours.mercuryinteractive.com/tour/mercurysignoff.php").Click
        Browser("Browser").Close
End If


慢慢来。。。已经基本写好了。。。基本代码,我现在问别人怎么检查机票的正确性~~!!

[ 本帖最后由 sogoc 于 2007-4-26 14:37 编辑 ]
作者: sogoc    时间: 2007-4-26 08:50
自己又学到一个东西了,昨天好象在哪边看到&这个字符
今天测试了下果然可以~~~嘿嘿~~
Browser("Browser").Page("Page").WebEdit("name:=passFirst"&i).Set MCF(i)
这样写就可以了。。。HOHO~~~
作者: walker1020    时间: 2007-4-26 09:27
不错!自己有疑问,然后想办法解决了,这样才有收获,才有进步。
作者: sogoc    时间: 2007-4-26 10:50
准备把这个飞机定票做完整,希望可以学点QTP基本的,然后再慢慢学别的。。。
作者: dslpg    时间: 2007-4-27 14:55
请问WebRadioGroup("name:=outFlight")里面的":="是什么意思啊?
没有vb经验。不好意思
作者: polestark    时间: 2007-4-27 16:03
用的描述性编程
作者: 梦醒十分    时间: 2007-4-28 11:38
标题: 看来还使用了“通配的对象库”技术。
看来还使用了“通配的对象库”技术。
作者: 没有蛀牙    时间: 2007-4-28 12:29
问一下,第一个if语句里面,为什么要用not
作者: wangyong3552128    时间: 2007-4-28 12:34
写的不错呀,你的编程还行
作者: sogoc    时间: 2007-4-28 17:01
原帖由 没有蛀牙 于 2007-4-28 12:29 发表
问一下,第一个if语句里面,为什么要用not


If not Browser("Browser").Page("Page").WebEdit("name:=userName").Exist Then
        Muser=DataTable("用户名",gtGlobalSheet)
        Mpwd=DataTable("密码",gtGlobalSheet)
        If Muser<>"" and Mpwd<>"" Then
                SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","","C:\Documents and Settings\Administrator","open"
                Browser("Browser").Page("Page").Sync
                Browser("Browser").Navigate "http://newtours.mercuryinteractive.com"
                Browser("Browser").Page("Page").WebEdit("name:=userName").Set Muser
                Browser("Browser").Page("Page").WebEdit("name:=password").Set Mpwd
                Browser("Browser").Page("Page").Image("name:=login").Click
                Browser("Browser").Page("Page").Sync
        End If
End If

判断第一个页面是否存在!
因为在飞机定票系统里面最后一页可以选择回到机票重新定的(第二页),所以我判定第一页是否存在,如果存在就要输入用户名密码进行登陆了,如果不存在那就代表第二页了,我要重新定机票了~~~

我在最后
MChangeWeb=DataTable("ChangeWeb",gtGlobalSheet)
If MChangeWeb="BACK TO FLIGHTS" Then
        Browser("Browser").Page("Page").Image("url:=http://newtours.mercuryinteractive.com/tour/mercuryreservation.php").Click
ElseIf MChangeWeb="BACK TO HOME" Then
        Browser("Browser").Page("Page").Image("url:=http://newtours.mercuryinteractive.com/tour/mercurywelcome.php").Click
        'Browser("Browser").Close
ElseIf MChangeWeb="LOG OUT" Then
        Browser("Browser").Page("Page").Image("url:=http://newtours.mercuryinteractive.com/tour/mercurysignoff.php").Click
        'Browser("Browser").Close
End If
这个判断点哪个,点第一个就要回第二页(重新购买机票),如果点第二第三,我是想说就不管了,后来没写了,本来还应该在上面添加几个ElseIf的
作者: jackydao    时间: 2007-4-28 17:35
If Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("确定").Exist Then
        Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
End If


那这句话的判断是不是少了一个not啊sdlkfj8
作者: wangyong3552128    时间: 2007-4-29 11:39
如果存在.....
if ......then

如果不存在....
if not ....then

有很大区别的?
作者: tianzhu622    时间: 2007-5-9 15:52
差距啊。。。。努力。。。。
作者: rivermen    时间: 2007-5-10 10:06
第一段可以改为:



'##################################################################################
'         此处可以用到描述性编程,把先期打开的IE窗口全关闭
Dim WinIe,Ie,i,m
Set WinIe=description.Create()
WinIe("regexpwndtitle").value=" Microsoft Internet Explorer"  '所有页面的regexpwndtitle属性值都是" Microsoft Internet Explorer",也可以用其他属性
Set Ie=desktop.ChildObjects(WinIe)
m=Ie.count
For i=1 to m
        Ie(i-1).close                 ' 0为最后打开的一个,可关闭打开的几个,,循环改成for i=1 to m
Next

'##################################################################################


事先关闭所有的IE窗口,然后重新打开
SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","","C:\Documents and Settings\Administrator","open"
作者: rivermen    时间: 2007-5-10 10:18
原帖由 rivermen 于 2007-5-10 10:06 发表
第一段可以改为:



'##################################################################################
'         此处可以用到描述性编程,把先期打开的IE窗口全关闭
Dim WinIe,Ie,i,m
Set WinI ...



If not Browser("Browser").Page("Page").WebEdit("name:=userName").Exist Then
                 reporter.ReportEvent 2,"判断页面是否存在","页面不存在!"
        Muser=DataTable("用户名",gtGlobalSheet)
        Mpwd=DataTable("密码",gtGlobalSheet)
        If Muser<>"" and Mpwd<>"" Then
                SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","","C:\Documents and Settings\Administrator","open"
                Browser("Browser").Page("Page").Sync
                Browser("Browser").Navigate "http://newtours.mercuryinteractive.com"
                Browser("Browser").Page("Page").WebEdit("name:=userName").Set Muser
                Browser("Browser").Page("Page").WebEdit("name:=password").Set Mpwd
                Browser("Browser").Page("Page").Image("name:=login").Click
                Browser("Browser").Page("Page").Sync
        End If
else
        reporter.ReportEvent 2,"判断页面是否存在","页面存在!"
End If

我运行之前关闭了所有的IE,运行第一个if 判断(If not Browser("Browser").Page("Page").WebEdit("name:=userName").Exist ),足足用了2分钟
作者: wangyong3552128    时间: 2007-5-24 13:02
当然了,它搜索不到 Browser 对象,有点慢,你不关闭了所有的IE,看看。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2