TestSettings->Run注:①Global全局變量循環一次,本地Action表全部運行一次②刪除表的內容:Edit->Delete③修改列名:鼠標右擊對應的列Example4:Flight程序登錄驗證DataTable:us" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

自動化測試(三):QTP參數化

系統 2151 0

1 Datatable參數化

???????? Global表的數據可以被所有的action訪問,Action的數據只能被對應的Action訪問

???????? 本地表循環的次數設置:Action Call Properties

???????? Global表循環的次數設置:File -> Test Settings -> Run

?

注:

???????? ① Global全局變量循環一次,本地Action表全部運行一次

???????? ② 刪除表的內容:Edit -> Delete

???????? ③ 修改列名:鼠標右擊對應的列

?

Example4 Flight程序登錄驗證

Data Table

?

username

password

errmsg

1

?

mercury

Please enter agent name

2

mer

mercury

Agent name must be at least 4 characters long

3

mercury

?

Please enter passwoed

4

mercury

mercury

null

Text

dialog("Login").WinEdit("Agent Name:").Set datatable("username","login")

dialog("Login").WinEdit("Password").Set datatable("password","login")

dialog("Login").WinButton("OK").Click

expected_result = datatable("errmsg","login")

If dialog("Login").Dialog("Flight Reservations").Exist Then

???????? actual_result = dialog("Login").Dialog("Flight Reservations").Static("errmsg").GetROProperty("text")

if expected_result = actual_result Then

?????????????????? reporter.ReportEvent micPass, "登陸驗證","輸入錯誤的用戶名和密碼,彈出正確的提示信息!"

else

?????????????????? reporter.ReportEvent micFail, "登陸驗證","輸入錯誤的用戶名和密碼,彈出錯誤的提示信息!"

End if

dialog("Login").Dialog("Flight Reservations").WinButton("確定").Click

else

???????? If expected_result = "null" Then

?????????????????? If window("Fight Reservations").Exist Then

??????????????????????????? Reporter.ReportEvent micPass, "登陸驗證","輸入正確的用戶名和密碼,登陸系統成功!"

?????????????????? else

??????????????????????????? Reporter.ReportEvent micFail, "登陸驗證","輸入正確的用戶名和密碼,登陸系統失敗!"

?????????????????? End If

???????? else

?????????????????? Reporter.ReportEvent micFail, "登陸驗證","輸無效的用戶名和密碼,系統沒有任何響應!"

???????? End If

End If

?

Practice2 Agileone自動登錄驗證

Data Table

username

password

errmsg

?

admin

出錯啦: 用戶名不能為空 ...

adm

admin

出錯啦: 找不到該用戶名 ...

admin

adm

出錯啦: 密碼輸入錯誤 ...

admin

admin

null

Text

Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").WebEdit("WebEdit").Set? datatable("username","Action1")

Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").WebEdit("WebEdit_2").Set datatable( "password","Action1")

Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").Image("loginbt").Click

expected_result = datatable("errmsg","Action1")

If? Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").WebElement("errmsg").Exist Then

???????? actual_result = Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").WebElement("errmsg").GetROProperty("innertext")

???????? If? expected_result = actual_result Then

?????????????????? reporter.ReportEvent micPass,"登陸驗證","輸入錯誤的用戶名和密碼,提示正確的提示信息!"

?????????????????? else

?????????????????? reporter.ReportEvent micFail,"登陸驗證","輸入錯誤的用戶名和密碼,提示錯誤的提示信息!"

???????? End If

else

???????? If expected_result = "null" Then

?????????????????? If? Browser("AgileOne - Welcome to").Page("AgileOne - Power to Agile").WebElement("wellcome").Exist Then

???????? reporter.ReportEvent micPass,"登陸驗證","輸入正確的用戶名和密碼,登陸系統成功!"

???????? Browser("AgileOne - Welcome to").Page("AgileOne - Power to Agile").Link("exit").Click

???????? else

???????? reporter.ReportEvent micFail,"登陸驗證","輸入正確的用戶名和密碼,系統登陸失敗!"

?????????????????? End If

?????????????????? else

?????????????????? reporter.ReportEvent micFail,"登陸驗證","輸入無效的用戶名和密碼,系統無響應!"

???????? End If

End If

2 Excle參數化

利用datatable 對象導入

???????? Import:將指定的Excle的所有數據導入,第一個sheet導入Global,第二個導入Action1,以此類推

???????? ImportSheet:可將指定的sheet頁導入到指定的表中,第一行默認導入為列標題

???????? QTP只支持Excle2003,將Excle另存為Excle2003

Example1 datatabe.ImportSheet"C:\123.xls","Sheet1","Action1" (在代碼開始前加入)

?

通過環境變量

???????? 環境變量設置:File -> Setting -> Environment -> Variable:User-defined 添加環境變量,用戶定義的環境變量,需要自己定義變量名和值,定義好后就可以用這些變量去參數化腳本中的常量。

Example2 Dialog("Login").WinEdit("Agent Name:").Set Environment("password")

?

Example3 Excle讀取、寫入操作(Filith程序)

datatable

username

password

errmsg

actual_result

test_result

?

mercury

Please enter agent name

?

?

mer

mercury

Agent name must be at least 4 characters long

?

?

mercury

?

Please enter passwoed

?

?

mercury

mercury

null

?

?

Text

datatabe.ImportSheet"C:\123.xls","login","Action1"

For i=1 to datatable.GetSheet("Action1").GetRowCount

???????? dialog("Login").WinEdit("Agent Name:").Set datatable("username","Action1")

???????? dialog("Login").WinEdit("Password").Set datatable("password","Action1")

???????? dialog("Login").WinButton("OK").Click

???????? If dialog("Login").Dialog("Flight Reservations").Exist Then

?????????????????? expected_result = datatable("errmsg","login")

?????????????????? actual_result = dialog("Login").Dialog("Flight Reservations").Static("errmsg").GetROProperty("text")

?????????????????? if expected_result = actual_result Then

??????????????????????????? datatable("actual_result", "Action1")=actual_result

??????????????????????????? datatable("test_result", "Action1")="pass"

?????????????????? else

??????????????????????????? datatable("actual_result", "Action1")=actual_result

??????????????????????????? datatable("test_result", "Action1")="Fail"

?????????????????? End If

?????????????????? dialog("Login").Dialog("Flight Reservations").WinButton("確定").Click

???????? End If

???????? datatable.GetSheet("Action1").SetNextRow

Next

datatable.Export"C:\Flight_result.xls"

?

Practice1 Agileone登錄讀取、寫入Excle(window7,需調試)

寫入Excle 的函數:

Function QTP_WriteExcel(sExcelName,SheetNum,x,y,Content)

Set xlsobj=createobject("excel.application")

Set xlsbook=xlsobj.Workbooks.Open(sExcelName)

Set xlssheet=xlsbook.Sheets(SheetNum)

xlssheet.cells(x,y)=Content

xlsbook.Save

xlsbook.Close

End Function

調用: QTP_WriteExcel"C:\Users\In_october\Desktop\agileone.xls","sheet2",5,5,"abcde"

Text

Function QTP_WriteExcel(sExcelName,SheetNum,x,y,Content)

Set xlsobj=createobject("excel.application")

Set xlsbook=xlsobj.Workbooks.Open(sExcelName)

Set xlssheet=xlsbook.Sheets(SheetNum)

xlssheet.cells(x,y)=Content

xlsbook.Save

xlsbook.Close

End Function

?

Col=5

Row=2

datatable.ImportSheet"C:\Users\In_october\Desktop\agileone.xls","Sheet1","Action1"

Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").WebEdit("WebEdit").Set? datatable("username","Action1")

Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").WebEdit("WebEdit_2").Set datatable( "password","Action1")

Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").Image("loginbt").Click

expected_result = datatable("errmsg","Action1")

If? Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").WebElement("errmsg").Exist Then

???????? actual_result = Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").WebElement("errmsg").GetROProperty("innertext")

???????? QTP_WriteExcel"C:\Users\In_october\Desktop\agileone.xls","sheet2",Row,Col,actual_result

???????? Row=Row+1

???????? If? expected_result = actual_result Then

?????????????????? reporter.ReportEvent micPass,"登陸驗證","輸入錯誤的用戶名和密碼,提示正確的提示信息!"

?????????????????? else

?????????????????? reporter.ReportEvent micFail,"登陸驗證","輸入錯誤的用戶名和密碼,提示錯誤的提示信息!"

???????? End If

else

???????? If expected_result = "null" Then

?????????????????? If? Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").WebElement("wellcome").Exist Then

???????? reporter.ReportEvent micPass,"登陸驗證","輸入正確的用戶名和密碼,登陸系統成功!"

???????? Browser("AgileOne - Welcome to").Page("AgileOne - Welcome to").Link("exit").Click

???????? else

???????? reporter.ReportEvent micFail,"登陸驗證","輸入正確的用戶名和密碼,系統登陸失敗!"

?????????????????? End If

?????????????????? else

?????????????????? reporter.ReportEvent micFail,"登陸驗證","輸入無效的用戶名和密碼,系統無響應!"

???????? End If

End If

3 對象庫管理

保存共享數據庫: Action1的對象數據庫 -> File -> Export Local Objects -> Save

關聯共享數據庫: Action2關聯Action1的對象數據庫:右鍵點擊Action2 –> Association Repository to local -> 選擇文件,Open,關聯的對象數據庫不能修改

關聯的對象數據庫修改: 1.本地修改,加入到本地對象數據庫 2.全局修改,在Objict Repository中修改

Action 管理: 調用Action? 增加Action? 劃分Action? Action管理的原則

Action 管理的原則:

???????? 1.每個Action其實就是一個用戶場景,如登錄,訂票,退出等

???????? 2.每個業務流程由若干個用戶場景組成,即由若干個Action組成,在業務流程測試時需要首先分析該流程可以劃分為多少個用戶場景

???????? 3.Action劃分的粒度以是否方便作為可復用Action被其他業務流程復用為標準,不能太粗也不能太細

?

Example1 訂票業務場景(Flight程序)

???????? 訂票業務場景,劃分為3個業務場景:login,order,logout? Reusable Action打勾才能被其他的調用

???????? 1.創建對象庫,新建3個Action:login,order,logout

???????? 2.-> Record業務流程

???????? 3.Save Test

???????? 4.新建Action:Call to Copy of Action 選擇Test

???????? 5.劃分Action:定位鼠標,-> Split Action

自動化測試(三):QTP參數化


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品夜夜夜夜夜久久 | 欧洲成人免费高清视频 | 国产精品视_精品国产免费 国产精品视频2021 | 国产激情小视频 | 在线精品国产 | 国产日本欧美在线观看 | 国产欧美视频综合二区 | 国产成人亚洲综合小说区 | 天天操天天搞 | 久草加勒比 | 又黄又爽又成人免费视频 | 久色影视 | 四虎永久在线观看视频精品 | 九九九视频 | 婷婷色在线视频 | 国产一区日韩二区欧美三 | 国产成人久久综合热 | 日韩最新中文字幕 | 日本欧美黄色 | 欧美人交性视频在线香蕉 | 99久久国内精品成人免费 | 亚洲精品国产精品精 | 中文字幕三级在线不卡 | 成人午夜爽爽爽免费视频 | 久热这里只有精品99国产6 | 免费香蕉一区二区在线观看 | 四虎黄色影视 | 九九热这里都是精品 | 四虎在线最新地址公告 | 免费看在线爱爱小视频 | 曰曰啪天天拍视频在线 | 国产成人精品第一区二区 | 99久久综合国产精品免费 | 国产一级毛片欧美视频 | 九九视频精品全部免费播放 | 国产乱人视频在线播放不卡 | 久久久最新精品 | 日本高清h色视频在线观看 日本高清不卡二区 | 久久99热只有频精品6不卡 | 伊人久久视频 | 久久久精品久久久久三级 |