2023-05-26 11:27:18來源:勵(lì)普網(wǎng)
(資料圖片僅供參考)
在WinRunner(以下簡(jiǎn)稱WR)的實(shí)際項(xiàng)目中,對(duì)象不識(shí)別的情況非常頻繁,但如何去處理這些對(duì)象,可能有些朋友還不知道一些技巧,因此想借此文跟大家分享一些東西,希望對(duì)大家有用。
在做自動(dòng)化測(cè)試項(xiàng)目時(shí)處理WR的不識(shí)別對(duì)象時(shí),我一般按四步走:1加載相關(guān)插件2對(duì)象映射3自定義函數(shù)4自定義插件/建虛擬對(duì)象
首先說一下為什么要這么處理
1加載相關(guān)插件,這主要是因?yàn)榧虞d插件的速度最快,效果也最好(優(yōu)先級(jí)較高)
2對(duì)象映射,這主要是因?yàn)槟憧梢誀恳话l(fā)而動(dòng)全身,全局性很好(優(yōu)先級(jí)排第二)
3自定義函數(shù),這主要是因?yàn)樽远x函數(shù)的靈活性比較大,可操作性強(qiáng)
4自定義插件,也就是通俗的講通過編寫DLL來實(shí)現(xiàn)工具的擴(kuò)展,因?yàn)槠浼夹g(shù)難度比較大,而且效果也不是非常好(除非你有深厚的Windows底層編碼能力),但插樁類的自定義插件會(huì)好些,所以只有當(dāng)前三個(gè)辦法失效的情況下才采用;而建虛擬對(duì)象,和自定義插件并列最后,主要是因?yàn)樗囊浦残圆缓茫绻叭N方法失效并擴(kuò)展DLL自己有技術(shù)又有難度,那么我更推薦用虛擬對(duì)象。
然后我們來詳細(xì)說說如何進(jìn)行操作:
1,加載相關(guān)插件在啟功WR時(shí)會(huì)出現(xiàn)一個(gè)插件選擇窗體,可以選擇你想要的插件,如果沒有,可以到WR的主界面的Tools“GeneralOptions“Startup里面的DisplayAdd-inManager,勾選上這個(gè)選項(xiàng)后就可以在下次打開WR時(shí)彈出插件加載提示了。
2,對(duì)象映射,在WR的主界面里選擇TOOLS-GuiMapConfiguration- Add- 將手型按鈕指向你所要映射的對(duì)象上后單擊,然后點(diǎn)OK,回到GuiMapConfiguration界面點(diǎn)Confige,到ConfigeClass界面對(duì)映射的對(duì)象進(jìn)行一個(gè)配置,比如映射到的目標(biāo)對(duì)象類,這里大家要注意一點(diǎn):當(dāng)前要進(jìn)行映射的對(duì)象必須有目標(biāo)對(duì)象類的基本特征,例如你不可以把一個(gè)編輯框映射到按扭上去;還有我們一般會(huì)把MSM-ID刪掉,因?yàn)樗鲜菚?huì)變,導(dǎo)致腳本回放不成功。這里配置的主要原則是用盡量少的屬性描述對(duì)象,最后需要把GeneratedTSLScript里的內(nèi)容拷貝到固定位置,比如你的測(cè)試工程的初始化代碼文件里,為什么要拷貝到那里呢?因?yàn)槿绻悴槐4妫院竽忝看胃鼡QWR環(huán)境時(shí)都要再進(jìn)行同類的配置,非常的煩瑣。
3,自定義函數(shù)這里主要分兩塊:相對(duì)坐標(biāo)和鍵盤模擬,相對(duì)坐標(biāo)的思想是取到特定對(duì)象的相對(duì)坐標(biāo),然后通過坐標(biāo)對(duì)對(duì)象進(jìn)行各種操作;而鍵盤模擬則是通過模擬敲擊鍵盤來實(shí)現(xiàn)對(duì)對(duì)象的操作(前提條件是對(duì)象必須可以被鍵盤操作到)。這里我給兩個(gè)實(shí)例:
#***********************************
#
#Description---------ThisfunctionisusedtoLEFTClickanObject
#
#Parameter-----------win---WindowName,obj---ObjectName
#
#ReturnValue-------None
#
#Tester----------------LantainWei
#
#***********************************
publicfunctionObj_LClick(inwin,inobj)
{
autoobj_width,obj_height;
set_window(win);
obj_get_info(obj, width ,obj_width);
obj_get_info(obj, height ,obj_height);
obj_mouse_click(obj,int(obj_width/2),int(obj_height/2),LEFT);
}
#***********************************
#
#Description---------Thisfunctionisusedtoselectitemfromalist
#
#Parameter-----------obj---ObjectName,sItem---Itemwhichyouwantselected
#
#ReturnValue-------None
#
#Tester----------------LantainWei
#
#***********************************
publicfunctionList_Select(obj,sItem)
{
autosText;
obj_get_text(obj,sText);
while(match(sText, * sItem * )==0)
{
obj_type(obj, kDown
obj_get_text(obj,sText);
}
}
4,自定義插件該方法涉及到的方面比較多,這次就不細(xì)說,下次我再整理一下,再寫一篇關(guān)于自定義插件的文章,這次主要講一下虛擬對(duì)象的創(chuàng)建。具體的操作我就不細(xì)說,大家可以參看WR的幫助,這里我只想告訴大家注意一點(diǎn):你要?jiǎng)?chuàng)建的虛擬對(duì)象必須有你虛擬成的類的基本特性,具體的解釋和映射相似。
最后我想說明的一點(diǎn),不要盲目崇拜腳本的通用性,可移植性。比如有時(shí)你可以通過一個(gè)簡(jiǎn)單的坐標(biāo)設(shè)置就可以操作到對(duì)象,那就沒有必要再寫一大堆腳本來操作對(duì)象,雖然這樣做通用性和可移植性上去了,但維護(hù)性和成本也同樣上去了。自動(dòng)化測(cè)試的目的降低成本,快速準(zhǔn)確測(cè)試,任何背離這兩項(xiàng)原則的大家都可以放棄,所以以上方法大家還需要根據(jù)實(shí)際項(xiàng)目來進(jìn)行對(duì)待。
雅思 托福 GRE IB SAT GMAT A-Level ACT 多鄰國英語測(cè)試 OSSD 英語四六級(jí) 出國英語 詞匯 AEAS 英語口語 商務(wù)英語 考研英語 青少英語 成人英語 個(gè)人提升英語 高中英語 劍橋英語 AP課程 一級(jí)建造師 二級(jí)建造師 消防工程師 消防設(shè)施操作員 BIM 造價(jià)工程師 環(huán)評(píng)師 監(jiān)理工程師 咨詢工程師 安全工程師 建筑九大員 注冊(cè)電氣工程師 一級(jí)注冊(cè)建筑師 公路水運(yùn)檢測(cè) 通信工程 裝配式工程師 二級(jí)注冊(cè)建筑師 PLC智能制造 智慧消防工程師 智慧建造工程師 全過程工程咨詢師 EPC工程總承包 碳排放管理師 應(yīng)急救援員 初級(jí)會(huì)計(jì)師 中級(jí)會(huì)計(jì)師 注冊(cè)會(huì)計(jì)師(cpa) CFA ACCA CMA 基金從業(yè) 證券從業(yè) 會(huì)計(jì)證 初中級(jí)經(jīng)濟(jì)師 薪稅師 會(huì)計(jì)實(shí)操 企業(yè)合規(guī)師 FRM 會(huì)計(jì)就業(yè) 教師資格 食品安全管理師 人力資源管理 鄉(xiāng)村規(guī)劃師 心理咨詢師 健康管理師 家庭教育指導(dǎo)師 普通話 公共營(yíng)養(yǎng)師 物業(yè)經(jīng)理 網(wǎng)絡(luò)主播 專利代理師 教師招聘 少兒編程 書法培訓(xùn) 繪畫美術(shù) 音樂 舞蹈 棋類 國畫 樂器 擊劍 機(jī)器人編程 小孩子注意力訓(xùn)練 兒童專注力 體適能 少兒小主播 信奧賽C++ 籃球 羽毛球 足球培訓(xùn) 嵌入式培訓(xùn) 軟件測(cè)試 Web前端 linux云計(jì)算 大數(shù)據(jù) C/C++開發(fā) 電子商務(wù) Java開發(fā) 影視后期 剪輯包裝 游戲設(shè)計(jì) php 商業(yè)插畫 產(chǎn)品經(jīng)理 Python photoshop UXD全鏈路 UI設(shè)計(jì) 室內(nèi)設(shè)計(jì) 電商視覺設(shè)計(jì) IT認(rèn)證 PMP項(xiàng)目管理