嚴小婷
2013.10.27
QTP第三天
環境變量設置、使用、導入
語句導入:
Environment.LoadFromFile("C:\Users\usera\Desktop\qtp3\Test1\環境變量.xml")
workfolder1 = Environment.Value("workfolder1")
導入DataTable
DataTable.ImportSheet workfolder1&"\TestCase.xls", "main", "Global"
Action傳參的使用
MainAction(Action1)進行insert call to new Action,name爲login,選擇After the current step
MainAction(Action1)的Action properties的Parameter添加INPUT1和OUTPUT1
login(子Action)的Action properties的Parameter添加INPUT2 和OUTPUT2
login(子Action)的call properties—Parameter---(參數化爲MainAction的變量)
MainAction的內容如下:
Parameter("INPUT1")="test1"
RunAction "login", oneIteration, Parameter("INPUT1"), Parameter("OUTPUT1")
print Parameter("OUTPUT1")
子Action內容如下:
'If Parameter("INPUT2 ")="hi" Then
' Parameter("OUTPUT2")="pass"
' else
' Parameter("OUTPUT2")="faile"
'End If
往報告中添加內容:成功OR失敗
reporter.ReportEvent micPass,"Login pass","Login successful"
reporter.ReportEvent micFail,"Login fail","Login failed"
描述性編程
WebElement("innertext:="&uname,"y:=42")
‘直接描述性編程
‘計算器的的代碼:
Dim calcstr,lens,i,Expect,actual
calcstr=datatable("calcstr")
Expect=datatable("Expect")
lens=len(calcstr)
SystemUtil.CloseProcessByName "calc.exe"
SystemUtil.Run "calc"
Window("text:=計算器").Activate
Window("text:=計算器").WinButton("text:=C").Click
For i = 1 To lens
Select Case mid(calcstr,i,1)
Case "+" Window("text:=計算器").WinButton("text:=\"&mid(calcstr,i,1)).Click
Case "*" Window("text:=計算器").WinButton("text:=\"&mid(calcstr,i,1)).Click
case Else Window("text:=計算器").WinButton("text:="&mid(calcstr,i,1)).Click
End Select
Next
actual=Window("text:=計算器").WinEdit("nativeclass:=Edit").GetROProperty("text")
'print actual
'print Expect
If cdbl(actual)= cdbl(Expect) Then
Reporter.ReportEvent micPass, "OK", "OK"
Else
Reporter.ReportEvent micFail, "NO", "NO"
End If
‘使用對象描述性編程
‘計算器的的代碼:
SystemUtil.CloseProcessByName "calc.exe"
SystemUtil.Run "calc"
Window("text:=計算器").Activate
Window("text:=計算器").WinButton("text:=C").Click
Dim mywindow,mybutton,objCol,i ' 定義
Set mywindow=description.Create()'創建虛擬對象
Set mybutton=description.Create()
mywindow("Class Name").value="Window"'進行對象屬性描述
mywindow("text").value="計算器"
mybutton("Class Name").value="WinButton"
'mybutton("text").value="1"
mybutton("text").value="\d+"'正則表達式
mybutton("x").value="62"
'Window(mywindow).WinButton(mybutton).Click'使用
Set objCol=Window(mywindow).ChildObjects(mybutton)
For i=0 to objCol.count-1
objCol(i).Click
Next
Set mywindow=nothing'釋放
Set mybutton=nothing
‘使用對象描述性編程
‘隨機回帖
Dim mylink,mylinks,MyValue
set mylink=description.Create()
mylink("x").value=62
mylink("href").value="http://172.168.1.202:8000/upload/read\.php\?tid=\d+"
Set mylinks=Browser(":=").Page(":=").WebTable("html tag:=TABLE","Index:=2").ChildObjects(mylink)
Randomize ' Initialize random-number generator.
MyValue = Int((mylinks.count * Rnd) ) ' Generate random value between 1 and 6.
'print MyValue
'print mylinks.count
'print (cstr(mylinks(MyValue).GetRoProperty("href")))
Browser(":=").Navigate (cstr(mylinks(MyValue).GetRoProperty("href")))
錯誤處理方法1:
On Error Resume Next'進行忽略錯誤
Dim result
result=1/0'錯誤
result=1/2
print Err.number'錯誤號
print Err.Description'錯誤內容
Err.Clear'錯誤清楚
print Err.Description
On Error GoTo 0'取消忽略錯誤
錯誤處理方法2
File—settings—run
錯誤處理方法3:場景恢復
觸發事件
恢復操作
恢復後運行設置
恢復
具體步驟如下自行探索(圖片上傳比較難)
事先判斷button能不能用,能用就點擊,不能就不點擊
RegisterUserFunc "WinButton", "Click", "MyClick" ,True
Window("Flight Reservation").WinButton("Button_2").Click
Window("Flight Reservation").WinButton("FLIGHT").Click
Function MyClick (objButton)
If objButton.GetROProperty("enabled") Then
Reporter.ReportEvent micDone, "Button satus", "enabled"
MyClick=objButton.Click
else
Reporter.ReportEvent micWarning, "Button satus", "disabled"
End If
End Function