freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

qtp(自動(dòng)化功能測試工具)知識積累(編輯修改稿)

2024-08-31 13:20 本頁面
 

【文章內(nèi)容簡介】 ,初學(xué)者就可能考慮使用這兩種方式錄制,事實(shí)上,只要是 C/S(其實(shí)部分結(jié)構(gòu)簡單一點(diǎn)的 B/S)結(jié)構(gòu),基本上都能夠避免所遇到的這些問題,具體方法,參見第二部分。當(dāng)選擇“模擬錄制” 或“ 低級錄制 ”時(shí),請考慮下列規(guī)則: 只有當(dāng) QuickTest 的正常錄制模式不能準(zhǔn)確錄制您的操作時(shí),才應(yīng)使用“模擬錄制”或“低級錄制”。 “模擬錄制 ”和“低級錄制”要求比正常錄制模式更多的磁盤空間。對于特定的步驟,您可以在錄制會(huì)話期間切換到“模擬錄制”或“ 低級錄制 ”。在以“ 模擬錄制”或“低級錄制”模式錄制了必要的步驟之后,就可以返回到正常錄制模式來完成錄制會(huì)話的其余部分。15第二部分 對象庫和對象屬性10. 對象識別和智能標(biāo)識對象的屬性識別主要來自 QTP 識別的網(wǎng)頁(或者其它)本身的控件設(shè)計(jì),因此對象的屬性是靈活多變的,有時(shí)候我們需要添加一個(gè)或多個(gè)屬性,有時(shí)需要?jiǎng)h除一個(gè)或多個(gè)屬性,具體的情形要根據(jù)當(dāng)時(shí)的情況而定。錄制或編寫測試腳本的時(shí)候要注意多觀察:哪些屬性能夠唯一表示一個(gè)對象,哪些屬性值是隨機(jī)變化的,哪些屬性需要多次運(yùn)行時(shí)都能夠匹配。? 對于對象屬性是變化的,可以參數(shù)化/或者用正則表達(dá)式(參見第一部分基礎(chǔ)知識) ,即在選定的對象的屬性值里面采用正則表達(dá)式(具體書寫規(guī)則參見“正則表達(dá)式”一節(jié))或者使用參數(shù)表(不是很靈活)來對其進(jìn)行賦值。這樣 QTP 運(yùn)行時(shí)會(huì)自動(dòng)查找對象進(jìn)行匹配,比較方便,不需要反復(fù)添加對象。? 報(bào)匹配多個(gè)對象錯(cuò)誤,可以 spy(如下圖) 查看對象,添加一個(gè)該對象另一個(gè)唯一標(biāo)識屬性,而這些能夠唯一標(biāo)識的屬性需要自己仔細(xì)觀察來尋找,通常這些唯一標(biāo)識對象的屬性往往是可變化的,如果需要獲取對象屬性值,這種方法事實(shí)上并不是很明智。例如 Web 復(fù)選框類 WebCheckBox 的的對象屬性基本上都是一樣的,錄制時(shí)的區(qū)別可能只是自動(dòng)在他的運(yùn)行時(shí)屬性里添加 index 或 location 使錄制的對象變?yōu)開_3 等等,否則運(yùn)行時(shí)就會(huì)提醒無法唯一表示對象,而 QTP 本身的智能表示機(jī)制就可以解決這個(gè)問題,不需要手工添加屬性來區(qū)別。1617? 上圖中顯示能夠?yàn)橐粎^(qū)別于其它幾行的對象是憑證號對應(yīng)的列,其對象屬性值 1117 是不同與其它對象的唯一標(biāo)識,然而在對象捕捉的時(shí)候如果將此對象屬性值也包含在內(nèi)的話,下次運(yùn)行時(shí)如果第一行 1117 號票據(jù)已經(jīng)不存在的話,QTP 就會(huì)報(bào)“找不到對象”錯(cuò)誤。所以對于多個(gè)完全相同的對象,可以采用添加 index,location,createtime等特殊屬性的“定位法” 來識別對象。例如:index: 按照程序源碼,繪制對象的先后標(biāo)識對象,所以與其它相同對象是相互依賴,當(dāng)其它對象發(fā)生變化后,原先的所有對象 index 屬性要發(fā)生變化,開始是 0。東亞銀行前端交易頁面某些交易(例如 RB7H,RB1904 等)進(jìn)行時(shí)需要獲取webelement 的變化的屬性值“innertext”,為了能夠?qū)⒔灰走M(jìn)行下去,只能使用方法三里的方法:刪除屬性 “innertext”,然后通過調(diào)整 index 的值來定位所需要獲取的屬性的屬性值所在的位置。location:根據(jù)對象的位置進(jìn)行確定,從上到下,從左到右CreateTime:按照對象被瀏覽器打開的先后標(biāo)識對象)在對象庫里添加一個(gè)自動(dòng)含有 index 標(biāo)識屬性的對象,然后每次通過 SetToproperty 來改變 index 值,對對象進(jìn)行數(shù)據(jù)驅(qū)動(dòng),使其操作另一個(gè)對象,但腳本始終操作原先index 屬性值的對象;這時(shí)考慮把該對象刪除掉,重新添加一個(gè)不自動(dòng)含有 index 標(biāo)識屬性的該類對象,然后,手工添加 index 標(biāo)識屬性,后來腳本能正常 工作了,可見兩次的對象屬性完全一致,但形成方式不一樣,導(dǎo)致的結(jié)果往往也不一樣。? 而 QTP 自身為了解決相似問題在 windows 控件里都會(huì)添加 window id 這個(gè)屬性,它是個(gè)隨機(jī)變化的屬性,每次都會(huì)隨機(jī)產(chǎn)生一個(gè)與上次不同的值,所以這樣反而無法在下一次運(yùn)行時(shí)對對象進(jìn)行匹配,總是提示找不到對象,有時(shí)可以刪除對象的變化的屬性18來解決識別問題,再進(jìn)行錄制腳本的時(shí)候可以事先在工具\(yùn)對象標(biāo)識(如圖)里面通過配置各個(gè)類的屬性操作來刪除這些可變屬性,重新進(jìn)行錄制或添加對象就可以了。選擇相應(yīng)的插件類型(如 Web、Activex 等) ,然后對相應(yīng)的類(如 WebElement)分別在強(qiáng)制屬性和輔助屬性里點(diǎn)擊“添加/刪除”按鈕,配置你所需要的能夠?yàn)橐粯?biāo)示你所需要的對象的屬性。如需啟用智能標(biāo)識,則選中“啟用智能表識” ,然后點(diǎn)擊“配置”按鈕(如圖): 同樣在“基本篩選屬性”和“可篩選屬性”里面通過點(diǎn)擊“添加/刪除”按鈕來選擇進(jìn)行對象智能標(biāo)識的屬性。? 另外換一種思維方式,采取等效的方法;比如用鍵盤代替鼠標(biāo)或用操作系統(tǒng)本身特性去解決問題。這種方法可忽略對象庫中的對象,不需要識別,前提是除去判斷語句;19但是這種寫法——使用鍵盤模擬函數(shù)只能夠處理彈出對話框或 msgbox 中只有一個(gè)按鈕的情況,或者兩種但是默認(rèn)停留在需要點(diǎn)擊的地方。相關(guān)信息參見下文“鍵盤模擬” 。11. 萬能鍵盤模擬函數(shù) micVoid, keybd_event, , keybd_event, micByte,micByte,micDWord,micULong 32(參數(shù)) ,0,0,0由于 space 鍵代碼為 32,所以上述代碼模擬了點(diǎn)擊 space 鍵操作,其它鍵盤操作代替可由下表查得:更多的鍵盤代碼請參見: 虛擬鍵盤碼一覽表12. 鍵盤模擬函數(shù): 的應(yīng)用set WshShell =CreateObject() {ENTER}     39。模擬鍵盤進(jìn)行操作鍵盤鍵函數(shù)一覽表Key ArgumentBACKSPACE {BACKSPACE}, {BS}, or {BKSP}BREAK {BREAK}CAPS LOCK {CAPSLOCK}DEL or DELETE {DELETE} or {DEL}DOWN ARROW {DOWN}END {END}ENTER {ENTER} or ~ESC {ESC}HELP {HELP}20HOME {HOME}INS or INSERT {INSERT} or {INS}LEFT ARROW {LEFT}NUM LOCK {NUMLOCK}PAGE DOWN {PGDN}PAGE UP {PGUP}PRINT SCREEN {PRTSC}RIGHT ARROW {RIGHT}SCROLL LOCK {SCROLLLOCK}TAB {TAB}UP ARROW {UP}F1 {F1}F2 {F2}F3 {F3}F4 {F4}F5 {F5}F6 {F6}F7 {F7}F8 {F8}F9 {F9}F10 {F10}F11 {F11}F12 {F12}13. 等待時(shí)間的藝術(shù)某個(gè)對象是否出現(xiàn)不明確或者應(yīng)用系統(tǒng)響應(yīng)時(shí)間不確定的時(shí)候,我們往往采取 Wait 的方法,而且這個(gè)時(shí)間是不確定,所以一般初學(xué)者會(huì)考慮使用最大時(shí)間值(系統(tǒng)最慢的情形) 。其實(shí)完全沒有必要等這么長時(shí)間,而且如果系統(tǒng)忽快忽慢怎么辦?總不能每次“跑腳本”之前都去修改一次吧,這樣腳本少還可以,腳本多(一個(gè)或多個(gè)測試集往往牽涉到幾十上百個(gè)測試腳本)了呢?這樣的話,腳本維護(hù)的代價(jià)太昂貴了!這種情況下可以考慮寫一些循環(huán)語句代替 wait 語句,這些語句寫得合理的話,會(huì)在系統(tǒng)響應(yīng)的第一時(shí)間做下一步操作,而長時(shí)間無響應(yīng)就可以通過跳出條件來終止運(yùn)行,報(bào)告系統(tǒng)連接超時(shí)就可以了。因?yàn)檫@種速度的系統(tǒng)版本客戶是不會(huì)要的,一般情況下這種測試是沒有意義的。下面是我曾經(jīng)使用的一些例子:? 系統(tǒng)必須作出響應(yīng)的情形,無須跳出,只待系統(tǒng)正常,否則手動(dòng)干預(yù):Do If Browser(teller).Page(teller).Frame(content).WebList(ACCT_STATUS). GetROProperty(value) = Then Else Exit Do End If Loop ? 使用 WaitProperty 函數(shù),該函數(shù)的作用基本上和 If……Exist(second )……End If 比較類似。但是它的判斷結(jié)果有 True 和 False 兩種,在 If 的判斷語句的時(shí)候很方便,因?yàn)闂l件成立可以執(zhí)行下一步,反之如果需要不成立而去執(zhí)行下一步,他的作用就不是21If……Exist(second)……End If 所能比的了。WaitProperty(visible,true,10000)第一個(gè)引號內(nèi)參數(shù)是對象的屬性名稱,第二個(gè)是該屬性的值,第三個(gè)就是等待的時(shí)間,單位是毫秒,具體的應(yīng)用如:If Browser(teller).Page(teller).WebElement(手續(xù)費(fèi)打印完畢! ).WaitProperty(innertext, 手續(xù)費(fèi)打印完畢!,60000) = False Then Browser(teller).Page(teller).Image(ToolBar_Refresh_0).Click Elseif Browser(teller).Dialog(Microsoft Inter Explorer).Exist(10)Then Browser(teller).Dialog(Microsoft Inter Explorer).WinButton(確定).Click Browser(teller).Page(teller).Image(ToolBar_Refresh_0).Click micFail, 發(fā)出托收票據(jù), 交易失敗 ExitAction(1) End If ? 定義彈出框存在性狀態(tài),使用循環(huán)語句判斷Dim blnDone, counterblnDone=falsecounter=1 While blnDone Wait (1) blnDone=Window(iexplore).WinObject(OK).Exist counter=counter+1 If counter=10 then blnDone=True End ifWend? 循環(huán)判斷,跳出條件是 i=10Dim ii=1while ((window(iexplore).WinObject(OK).Exist) and (i10)) window(Iexplore).WinObject(OK).Clicki=i+1wend14. 驗(yàn)證彈出錯(cuò)誤類型  If Browser(teller).Dialog(Explorer).exist(1) thenem=browser(teller ).dialog(Explorer ).static(密碼錯(cuò)誤!).getRoproperty(text)   If em((error_info))then msgbox(em) micFail,系統(tǒng)登陸, 密碼錯(cuò)誤 End If Browser(teller).Dialog(Explorer).close‘或者 Browser(teller).Dialog(Explorer).WinButton(確定).Click End if22一:對于 Dialog 中,雖然提示信息對象名稱是用戶密碼錯(cuò)誤 ,但如果信息對象名稱是“該用戶不存在 ”,不用更改會(huì)自動(dòng)識別,我想主要是錄制第一遍時(shí), “用戶密碼錯(cuò)誤”只是讓運(yùn)行時(shí)能找到這個(gè)控制,而不管它是什么內(nèi)容,因?yàn)樵趯ο髠}庫中,text 不是決定該對象的屬性。事實(shí)上,可以經(jīng)過對象屬性配置,在 Static 對象的強(qiáng)制屬性中添加 text 屬性,然后上面的語句就可以這樣寫了:If Browser(teller).Dialog(Explorer). static(密碼錯(cuò)誤!).exist(1) thenmsgbox(密
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1