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

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統(tǒng) 2297 0

1 Datatable參數(shù)化

???????? Global表的數(shù)據(jù)可以被所有的action訪問,Action的數(shù)據(jù)只能被對應(yīng)的Action訪問

???????? 本地表循環(huán)的次數(shù)設(shè)置:Action Call Properties

???????? Global表循環(huán)的次數(shù)設(shè)置:File -> Test Settings -> Run

?

注:

???????? ① Global全局變量循環(huán)一次,本地Action表全部運行一次

???????? ② 刪除表的內(nèi)容:Edit -> Delete

???????? ③ 修改列名:鼠標右擊對應(yīng)的列

?

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, "登陸驗證","輸入正確的用戶名和密碼,登陸系統(tǒng)成功!"

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

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

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

???????? else

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

???????? 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,"登陸驗證","輸入正確的用戶名和密碼,登陸系統(tǒng)成功!"

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

???????? else

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

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

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

?????????????????? reporter.ReportEvent micFail,"登陸驗證","輸入無效的用戶名和密碼,系統(tǒng)無響應(yīng)!"

???????? End If

End If

2 Excle參數(shù)化

利用datatable 對象導(dǎo)入

???????? Import:將指定的Excle的所有數(shù)據(jù)導(dǎo)入,第一個sheet導(dǎo)入Global,第二個導(dǎo)入Action1,以此類推

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

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

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

?

通過環(huán)境變量

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

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,需調(diào)試)

寫入Excle 的函數(shù):

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

調(diào)用: 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,"登陸驗證","輸入正確的用戶名和密碼,登陸系統(tǒng)成功!"

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

???????? else

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

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

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

?????????????????? reporter.ReportEvent micFail,"登陸驗證","輸入無效的用戶名和密碼,系統(tǒng)無響應(yīng)!"

???????? End If

End If

3 對象庫管理

保存共享數(shù)據(jù)庫: Action1的對象數(shù)據(jù)庫 -> File -> Export Local Objects -> Save

關(guān)聯(lián)共享數(shù)據(jù)庫: Action2關(guān)聯(lián)Action1的對象數(shù)據(jù)庫:右鍵點擊Action2 –> Association Repository to local -> 選擇文件,Open,關(guān)聯(lián)的對象數(shù)據(jù)庫不能修改

關(guān)聯(lián)的對象數(shù)據(jù)庫修改: 1.本地修改,加入到本地對象數(shù)據(jù)庫 2.全局修改,在Objict Repository中修改

Action 管理: 調(diào)用Action? 增加Action? 劃分Action? Action管理的原則

Action 管理的原則:

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

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

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

?

Example1 訂票業(yè)務(wù)場景(Flight程序)

???????? 訂票業(yè)務(wù)場景,劃分為3個業(yè)務(wù)場景:login,order,logout? Reusable Action打勾才能被其他的調(diào)用

???????? 1.創(chuàng)建對象庫,新建3個Action:login,order,logout

???????? 2.-> Record業(yè)務(wù)流程

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

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

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

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 三门峡市| 天门市| 叙永县| 车致| 闻喜县| 十堰市| 铁岭市| 醴陵市| 孝感市| 唐山市| 荥阳市| 普陀区| 美姑县| 开鲁县| 塔河县| 岐山县| 土默特左旗| 化德县| 南川市| 芮城县| 尉氏县| 新丰县| 于田县| 奈曼旗| 扎兰屯市| 怀远县| 宜良县| 华蓥市| 界首市| 蕉岭县| 荔浦县| 达州市| 太和县| 准格尔旗| 吴忠市| 江永县| 鞍山市| 古蔺县| 辽阳县| 齐河县| 探索|