下面是我按照要求录制的脚本代码:
1 )数据表格自己创建就行了,当然创建的excel表格必须与设置参数化时的名称一致,不然在运行脚本时容易出现错误。
2)要求中要关联函数库,所以先新建一个函数库,将登陆代码封装到函数库以后,直接点击关联函数库就可以了。
3)乘坐人员、起飞城市和到达城市设置了参数化,所以在运行的时候要进行迭代,注意检查点的设置。
4)描述性编程要注意在标示的时候,尽量把所有对应的结果都写上,以免不能识别而导致运行失败。
5)最最重要的就是不管做什么事情一定要有耐心,还要细心。
录制时的要求如下:
1. 根据以上测试用例步骤按如下要求开发UFT测试脚本:
1) 在C盘创建目录: “C:\UFT\学号_姓名”,使用自动化测试框架分别保存脚本、数据、共享对象库、函数库文件等;
2) 录制业务脚本和创建两个Action: Login和CreateFLightOrder,并封装Login的业务代码到BusinessFunction函数文件的Login(Username,Password)函数中。
3) 该业务流程的第3步骤使用下列信息进行参数化,并使用外部Excel表格导入脚本中。
选择Passengers,选择Departing From,选择Arriving In
|
Passengers |
Departing From |
Arriving In |
|
2 |
London |
New York |
|
3 |
New York |
Paris |
4) 完成该业务流程测试用例的所有检查点:
a. 在Summary区域检查Total Price(including taxes)=(出发机票价格+返回机票价格)*Passengers+Taxes
b. 在FLIGHT CONFIRMATION页面上,检查显示了Your itinerary has been booked! 信息
c. 在Flight Confirmation表格里面,检查以下内容:
检查Departing下面的出发机票价格、Returning下面的返回机票价格、总价TotalPrice与第5步的Summary区域里面的价格信息一致
5) 用描述性编程完成用例的第6步骤
函数库的代码如下:
Function Login(Username,Password)
SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe","http://newtours.demoaut.com/"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set Username
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").Set Password
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 27,11
End Function
登陆(login)的代码如下:
call Login("Training","mercury")
创建订单(CreateOrder)的代码:
Dim count
count=datatable.GetSheet("Global").GetRowCount
If count=0 Then
datatable.ImportSheet "C:\UFT_XXX\data.xlsx","sheet1","Global"
End If
Browser("Find a Flight: Mercury").Page("Find a Flight: Mercury").WebList("passCount").Select DataTable("Passengers", dtGlobalSheet)
Browser("Find a Flight: Mercury").Page("Find a Flight: Mercury").WebList("fromPort").Select DataTable("Departing_From", dtGlobalSheet)
Browser("Find a Flight: Mercury").Page("Find a Flight: Mercury").WebList("fromDay").Select "13"
Browser("Find a Flight: Mercury").Page("Find a Flight: Mercury").WebList("toPort").Select DataTable("Arriving_In", dtGlobalSheet)
Browser("Find a Flight: Mercury").Page("Find a Flight: Mercury").WebList("toDay").Select "16"
Browser("Find a Flight: Mercury").Page("Find a Flight: Mercury").WebRadioGroup("servClass").Select "Business"
Browser("Find a Flight: Mercury").Page("Find a Flight: Mercury").Image("findFlights").Click 46,12
Browser("Find a Flight: Mercury").Page("Select a Flight: Mercury").WebRadioGroup("outFlight").Select "Blue Skies Airlines$361$271$7:10"
Browser("Find a Flight: Mercury").Page("Select a Flight: Mercury").WebRadioGroup("inFlight").Select "Blue Skies Airlines$631$273$14:30"
Browser("Find a Flight: Mercury").Page("Select a Flight: Mercury").Image("reserveFlights").Click 63,10
Browser("Find a Flight: Mercury").Page("Book a Flight: Mercury").WebElement("Total Price (including").Check CheckPoint("Total Price (including taxes):")
'Browser("Find a Flight: Mercury").Page("Book a Flight: Mercury").WebTable("London to Paris").Check CheckPoint("London to Paris")
Dim gopri,backpri,tickets,tax,sum
gopri=cdbl(Browser("Find a Flight: Mercury").Page("Book a Flight: Mercury").WebTable("London to Paris").GetCellData(3,3))
backpri=cdbl(Browser("Find a Flight: Mercury").Page("Book a Flight: Mercury").WebTable("London to Paris").GetCellData(6,3))
tickets=cdbl(Browser("Find a Flight: Mercury").Page("Book a Flight: Mercury").WebTable("London to Paris").GetCellData(7,2))
tax=cdbl(mid(Browser("Find a Flight: Mercury").Page("Book a Flight: Mercury").WebTable("London to Paris").GetCellData(8,2),2))
sum=cdbl(mid(Browser("Find a Flight: Mercury").Page("Book a Flight: Mercury").WebTable("London to Paris").GetCellData(9,2),2))
If sum=tax+(gopri+backpri)*tickets Then
Reporter.ReportEvent micPass, "检查总价与票数*往返票价和是否相等","等于"
else
Reporter.ReportEvent micFail, "检查总价与票数*往返票价和是否相等和","不等于"
End If
With Browser("name:=Book a Flight: Mercury Tours","title:=Book a Flight: Mercury Tours").Page("title:=Book a Flight: Mercury Tours")
.WebEdit("html tag:=INPUT","name:=passFirst0","type:=text").Set "HP1"
.WebEdit("html tag:=INPUT","name:=passLast0","type:=text").Set "HP1"
.WebEdit("html tag:=INPUT","name:=passFirst1","type:=text").Set "HP2"
.WebEdit("html tag:=INPUT","name:=passLast1","type:=text").Set "HP2"
.WebEdit("html tag:=INPUT","name:=creditnumber","type:=text").Set "88888888"
.Image("alt:=","html tag:=INPUT","image type:=Image Button","name:=buyFlights").Click 62,12
End With
Dim Gopr,Backpr,Total
Gopr=Browser("Find a Flight: Mercury").Page("Flight Confirmation: Mercury").WebTable("Flight Confirmation #").GetCellData(3,1)
Dim arr1,Gopr1,arr2,Gopr2,Gopr3
arr1=split(Gopr,"$")
Gopr1=arr1(1)
arr2=split(Gopr1,"each")
Gopr2=arr2(0)
Gopr3=cdbl(Gopr2)
Backpr=Browser("Find a Flight: Mercury").Page("Flight Confirmation: Mercury").WebTable("Flight Confirmation #").GetCellData(5,1)
Dim arr3,Backpr1,arr4,Backpr2,Backpr3
arr3=split(Backpr,"$")
Backpr1=arr3(1)
arr4=split(Backpr1,"each")
Backpr2=arr4(0)
Backpr3=cdbl(Backpr2)
Total=Browser("Find a Flight: Mercury").Page("Flight Confirmation: Mercury").WebTable("Flight Confirmation #").GetCellData(12,1)
Dim Total1,arr5,Total2,Total3
Total1=right(Total,8)
arr5=split(Total1,"USD")
Total2=arr5(0)
Total3=cdbl(Total2)
If Gopri=Gopr3 Then
Reporter.ReportEvent micPass,"检查生成的出发票价与预定的出发票价是否相等","相等"
else
Reporter.ReportEvent micFail,"检查生成的出发票价与预定的出发票价是否相等","不相等"
End If
If Bcakpri=Bcakpr3 Then
Reporter.ReportEvent micPass,"检查生成的返回票价与预定的返回票价是否相等","相等"
else
Reporter.ReportEvent micFail,"检查生成的返回票价与预定的返回票价是否相等","不相等"
End If
If sum=Total3 Then
Reporter.ReportEvent micPass,"检查生成的总票价与预定的总票价是否相等","相等"
else
Reporter.ReportEvent micFail,"检查生成的总票价与预定的总票价是否相等","不相等"
End If
Browser("Find a Flight: Mercury").Page("Flight Confirmation: Mercury").WebElement("Your itinerary has been").Check CheckPoint("Your itinerary has been booked!")
Browser("Find a Flight: Mercury").Close
每一次成长都是自己最好的见证,加油。
本文档介绍了如何使用UFT录制并编写飞机订票系统的自动化测试脚本,包括创建数据表格、关联函数库、参数化设置和检查点验证。通过描述性编程确保脚本能够正确执行订票流程,并对总价、航班信息进行一致性验证。
2179





