性、局部圖像,以及優(yōu)先級(jí)結(jié)果定位待測(cè)控件對(duì)象。
[0044]本實(shí)施例中,通過根據(jù)待測(cè)控件對(duì)象和局部圖像生成對(duì)應(yīng)的腳本,以模擬用戶對(duì)待測(cè)控件對(duì)象的操作,根據(jù)待測(cè)控件對(duì)象的特征屬性和局部圖像定位待測(cè)控件對(duì)象,并根據(jù)對(duì)應(yīng)的腳本對(duì)待測(cè)控件對(duì)象進(jìn)行自動(dòng)化測(cè)試,能夠提高自動(dòng)化測(cè)試腳本的穩(wěn)健性和通用性,擴(kuò)展自動(dòng)化測(cè)試方法的實(shí)現(xiàn)范圍。
[0045]圖2是本發(fā)明另一實(shí)施例提出的自動(dòng)化測(cè)試方法的流程示意圖,該自動(dòng)化測(cè)試方法包括:
[0046]S201:獲取待測(cè)控件對(duì)象的特征屬性和局部圖像。
[0047]其中,控件是指Windows圖形界面的組成部分,可以接受鍵盤或鼠標(biāo)等輸入設(shè)備的輸入,從而完成某個(gè)特定的功能。常見的控件例如按鈕、選項(xiàng)按鈕、編輯框、列表框、滾動(dòng)條,以及靜態(tài)控件等。
[0048]在本發(fā)明的實(shí)施例中,待測(cè)控件對(duì)象為需要運(yùn)用自動(dòng)化測(cè)試方法進(jìn)行測(cè)試的控件。
[0049]在本發(fā)明的實(shí)施例中,待測(cè)控件對(duì)象的特征屬性可以是待測(cè)控件對(duì)象的控件屬性中,控件特征明顯,能夠唯一標(biāo)識(shí)該待測(cè)控件對(duì)象的控件屬性。
[0050]待測(cè)控件對(duì)象的特征屬性例如可以包括待測(cè)控件對(duì)象的id標(biāo)識(shí),用于唯一標(biāo)識(shí)該待測(cè)控件對(duì)象;文本是計(jì)算機(jī)的一種文檔類型,該類文檔主要用于記載和儲(chǔ)存文字信息,而不是圖像、聲音和格式化數(shù)據(jù),可以用于標(biāo)識(shí)該待測(cè)控件對(duì)象的功能;控件類型,用于標(biāo)識(shí)待測(cè)控件對(duì)象的種類。
[0051]在本發(fā)明的實(shí)施例中,待測(cè)控件對(duì)象的局部圖像為對(duì)該待測(cè)控件對(duì)象所截取的局部圖像,例如,截取到的待測(cè)控件對(duì)象的局部圖像可以用A表示。
[0052]例如,假設(shè)待測(cè)控件對(duì)象為具有返回上一步驟的按鈕,則控件對(duì)象的id標(biāo)識(shí)可以為“button”,文本可以為“返回”,控件類型可以為“按鈕”。
[0053]在迭代更新快速、機(jī)海戰(zhàn)術(shù)盛行的Android智能機(jī)時(shí)代,項(xiàng)目周期短、測(cè)試周期縮短,決定了對(duì)軟件自動(dòng)化測(cè)試的迫切需求。相關(guān)技術(shù)中的自動(dòng)化測(cè)試方法主要是根據(jù)坐標(biāo)或控件點(diǎn)擊,在添加檢查點(diǎn)時(shí),主要是根據(jù)獲取相關(guān)控件或判斷控件屬性變化。如果在軟件設(shè)備版本更替的過程中,控件變化會(huì)降低自動(dòng)化測(cè)試腳本通用性,從而影響自動(dòng)化測(cè)試效率。
[0054]具體地,在本發(fā)明的實(shí)施例中,可以在自動(dòng)化測(cè)試的腳本錄制階段選定待測(cè)控件對(duì)象,并獲取待測(cè)控件對(duì)象的所有控件屬性,選取控件特征明顯,能夠唯一標(biāo)識(shí)該待測(cè)控件對(duì)象的控件屬性作為特征屬性,進(jìn)一步,截取待測(cè)控件對(duì)象的局部圖像,以使后續(xù)在自動(dòng)化測(cè)試的腳本回放階段可以通過特征屬性,或者局部圖像定位該待測(cè)控件對(duì)象。
[0055]其中,錄制是在人工基于某個(gè)設(shè)備對(duì)被測(cè)應(yīng)用進(jìn)行操作的過程中,通過自動(dòng)化工具自動(dòng)記錄并操作步驟、輸入數(shù)據(jù)等信息。
[0056]回放是基于錄制的腳本測(cè)試步驟選擇不同的設(shè)備自動(dòng)還原之前人工操作的過程,是用例的回放。
[0057]S202:根據(jù)待測(cè)控件對(duì)象生成與待測(cè)控件對(duì)象對(duì)應(yīng)的第一腳本測(cè)試步驟,以及根據(jù)局部圖像生成與局部圖像對(duì)應(yīng)的第二腳本測(cè)試步驟。
[0058]可選地,可以在自動(dòng)化測(cè)試的腳本回放階段,通過根據(jù)優(yōu)先級(jí)結(jié)果運(yùn)行第一腳本測(cè)試步驟和第二腳本測(cè)試步驟,以模擬用戶對(duì)待檢測(cè)控件對(duì)象的操作。
[0059]可選地,在自動(dòng)化測(cè)試的腳本錄制階段,可以根據(jù)對(duì)待測(cè)控件對(duì)象的操作需求,生成與待測(cè)控件對(duì)象和局部圖像生成對(duì)應(yīng)的腳本,例如,可以將用戶對(duì)待測(cè)控件對(duì)象的每一個(gè)操作步驟及被操作的控件對(duì)象記錄下來,生成腳本測(cè)試步驟,用以模擬用戶對(duì)待測(cè)控件對(duì)象的操作。
[0060]例如,如果待測(cè)控件對(duì)象為按鈕,在實(shí)際的待測(cè)控件按鈕的應(yīng)用場(chǎng)景中,用戶需要點(diǎn)擊按鈕,則生成點(diǎn)擊按鈕和點(diǎn)擊按鈕的局部圖像這兩個(gè)腳本測(cè)試步驟,如果待測(cè)控件對(duì)象為滾動(dòng)條,用戶需要拉動(dòng)滾動(dòng)條,則生成拉動(dòng)滾動(dòng)條和拉動(dòng)滾動(dòng)條的局部圖像這兩個(gè)腳本測(cè)試步驟。
[0061]S203:根據(jù)預(yù)設(shè)規(guī)則確定待測(cè)控件對(duì)象和局部圖像的優(yōu)先級(jí),得到優(yōu)先級(jí)結(jié)果。
[0062]其中,優(yōu)先級(jí)結(jié)果包括控件優(yōu)先、圖像優(yōu)先,或者控件和圖像并行。
[0063]在本發(fā)明的實(shí)施例中,預(yù)設(shè)規(guī)則可以為:判斷待檢測(cè)控件對(duì)象的特征屬性是否能夠唯一標(biāo)識(shí)該待測(cè)控件對(duì)象,如果待檢測(cè)控件對(duì)象的特征屬性能夠唯一標(biāo)識(shí)該待測(cè)控件對(duì)象,則確定優(yōu)先級(jí)結(jié)果為控件優(yōu)先,如果待檢測(cè)控件對(duì)象的特征屬性不能夠充分唯一標(biāo)識(shí)該待檢測(cè)控件對(duì)象,則確定優(yōu)先級(jí)結(jié)果為圖像優(yōu)先,另外,也可以根據(jù)自動(dòng)化測(cè)試應(yīng)用場(chǎng)景的需求來確定待測(cè)控件對(duì)象和局部圖像的優(yōu)先級(jí),如果在自動(dòng)化測(cè)試應(yīng)用場(chǎng)景中,待檢測(cè)控件對(duì)象的局部圖像的圖像質(zhì)量較高,特征點(diǎn)明顯,則可以直接確定優(yōu)先級(jí)結(jié)果為圖像優(yōu)先,本發(fā)明對(duì)此不做限制。
[0064]S204:根據(jù)第一腳本測(cè)試步驟、第二腳本測(cè)試步驟,以及優(yōu)先級(jí)結(jié)果生成對(duì)應(yīng)的腳本,以模擬用戶對(duì)待測(cè)控件對(duì)象的操作。
[0065]其中,第一腳本測(cè)試步驟為與待測(cè)控件對(duì)象對(duì)應(yīng)的腳本測(cè)試步驟,第二腳本測(cè)試步驟為與待檢測(cè)控件對(duì)象的局部圖像對(duì)應(yīng)的腳本測(cè)試步驟。
[0066]在本發(fā)明的實(shí)施例中,可以根據(jù)第一腳本測(cè)試步驟、第二腳本測(cè)試步驟,以及優(yōu)先級(jí)結(jié)果生成對(duì)應(yīng)的腳本,其中,對(duì)應(yīng)的腳本的回放過程例如,當(dāng)優(yōu)先級(jí)結(jié)果為控件優(yōu)先時(shí),執(zhí)行第一腳本測(cè)試步驟;當(dāng)優(yōu)先級(jí)結(jié)果為圖像優(yōu)先時(shí),執(zhí)行第二腳本測(cè)試步驟;當(dāng)優(yōu)先級(jí)結(jié)果為控件和圖像并行時(shí),執(zhí)行第一腳本測(cè)試步驟,或者,執(zhí)行第二腳本測(cè)試步驟。
[0067]S205:根據(jù)待測(cè)控件對(duì)象的特征屬性、局部圖像,以及優(yōu)先級(jí)結(jié)果定位待測(cè)控件對(duì)象。
[0068]在本發(fā)明的實(shí)施例中,通過待檢測(cè)控件對(duì)象的特征屬性定位待檢測(cè)控件對(duì)象,也可以通過待檢測(cè)控件對(duì)象的局部圖像定位待檢測(cè)控件對(duì)象,或者,也可以結(jié)合待檢測(cè)控件對(duì)象的特征屬性和局部圖像定位待檢測(cè)控件對(duì)象。
[0069]在本發(fā)明的實(shí)施例中,根據(jù)待測(cè)控件對(duì)象的特征屬性和局部圖像的優(yōu)先級(jí),來確定使用合適的方式定位待測(cè)控件對(duì)象。
[0070]可選地,若通過待檢測(cè)控件對(duì)象的局部圖像定位待檢測(cè)控件對(duì)象,或者,通過結(jié)合待檢測(cè)控件對(duì)象的特征屬性和局部圖像定位待檢測(cè)控件對(duì)象時(shí),可以對(duì)待測(cè)控件對(duì)象的局部圖像進(jìn)行模版匹配和特征點(diǎn)查找,以定位待測(cè)控件對(duì)象。
[0071]可選地,如圖3所示,圖3是本發(fā)明另一實(shí)施例提出的自動(dòng)化測(cè)試方法的流程示意圖,在步驟S205中,還可以包括:
[0072]S301:判斷優(yōu)先級(jí)結(jié)果是否為控件優(yōu)先。
[0073]在本發(fā)明的實(shí)施例中,在實(shí)際的待測(cè)控件對(duì)象的應(yīng)用場(chǎng)景下,可以首先判斷待檢測(cè)控件對(duì)象的優(yōu)先級(jí)結(jié)果,如果優(yōu)先級(jí)結(jié)果為控件優(yōu)先,即表明待檢測(cè)控件對(duì)象的特征屬性能夠唯一標(biāo)識(shí)待測(cè)控件對(duì)象,則觸發(fā)執(zhí)行步驟S302,如果優(yōu)先級(jí)結(jié)果不為控件優(yōu)先,則可以進(jìn)一步判斷優(yōu)先級(jí)結(jié)果是否為其他可選的優(yōu)先級(jí)。
[0074]S302:如果優(yōu)先級(jí)結(jié)果為控件優(yōu)先,則根據(jù)待測(cè)控件對(duì)象的特征屬性定位待測(cè)控件對(duì)象。
[0075]在本發(fā)明的實(shí)施例中,如果優(yōu)先級(jí)結(jié)果為控件優(yōu)先,則獲取實(shí)際的待測(cè)控件對(duì)象的應(yīng)用場(chǎng)景中,獲取整個(gè)應(yīng)用場(chǎng)景中的(應(yīng)用場(chǎng)景例如,系統(tǒng)界面)的全部控件對(duì)象和全部控件對(duì)象的控件特征,用自動(dòng)化測(cè)試的腳本錄制階段的待檢測(cè)控件對(duì)象的特征屬性,與獲取到的全部控件對(duì)象的控件特征進(jìn)行逐個(gè)比對(duì),以在應(yīng)用場(chǎng)景中定位到待檢測(cè)控件。
[0076]本實(shí)施例中,通過在優(yōu)先級(jí)結(jié)果為控件優(yōu)先時(shí),根據(jù)待測(cè)控件對(duì)象的特征屬性定位待測(cè)控件對(duì)象,使得在待檢測(cè)控件的局部圖像不能夠充分唯一標(biāo)識(shí)待檢測(cè)控件對(duì)象時(shí),能夠通過特征屬性定位待測(cè)控件對(duì)象,有效保證自動(dòng)化測(cè)試腳本的回放階段中腳本定位的精確性,提升自動(dòng)化測(cè)試效果。
[0077]可選地,如圖4所示,圖4是本發(fā)明另一實(shí)施例提出的自動(dòng)化測(cè)試方法的流程示意圖,在步驟S205中,還可以包括:
[0078]S401:判斷優(yōu)先級(jí)結(jié)果是否為圖像優(yōu)先。
[0079]在本發(fā)明的實(shí)施例中,在實(shí)際的待測(cè)控件對(duì)象的應(yīng)用場(chǎng)景下,可以首先判斷待檢測(cè)控件對(duì)象的優(yōu)先級(jí)結(jié)果,如果優(yōu)先級(jí)結(jié)果為圖像優(yōu)先,即表明待檢測(cè)控件對(duì)象的局部圖像能夠唯一標(biāo)識(shí)待測(cè)控件對(duì)象,則觸發(fā)執(zhí)行步驟S402,如果優(yōu)先級(jí)結(jié)果不為圖像優(yōu)先,則可以進(jìn)一步判斷優(yōu)先級(jí)結(jié)果是否為其他可選的優(yōu)先級(jí)。
[0080]S402:如果優(yōu)先級(jí)結(jié)果為圖像優(yōu)先,則根據(jù)待測(cè)控件對(duì)象的局部圖像定位待測(cè)控件對(duì)象。
[0081]在本發(fā)明的實(shí)施例中,如果優(yōu)先級(jí)結(jié)果為圖像優(yōu)先,則獲取實(shí)際的待測(cè)控件對(duì)象的應(yīng)用場(chǎng)景中,截取整個(gè)應(yīng)用場(chǎng)景所在設(shè)備的屏幕圖像B,用自動(dòng)化測(cè)試的腳本錄制階段的待檢測(cè)控件對(duì)象的局部圖像A與屏幕圖像B進(jìn)行圖像匹配,以定位待測(cè)控件對(duì)象。
[0082]可選地,根據(jù)待測(cè)控件對(duì)象的局部圖像定位待測(cè)控件對(duì)象,包括:對(duì)待測(cè)控件對(duì)象的局部圖像進(jìn)行模版匹配和特征點(diǎn)查找,以定位待測(cè)控件對(duì)象。
[0083]其中,模板匹配是以屏幕圖像B的左上角為起點(diǎn),設(shè)置與局部圖像A的面積大小一致的匹配框C,以此將匹配框C在屏幕圖像B上向右或向下移動(dòng),獲取匹配框C中所框出的屏幕圖像B的局部圖像B’,其中,局部圖像B’為圖像序列,對(duì)比局部圖像A與局部圖像B’中的每個(gè)局部圖像的各像素點(diǎn)的相似度,最終獲取局部圖像B’中像素點(diǎn)的相似度最大的局部圖像A’,此像素點(diǎn)的相似度最大的局部圖像A’中的控件對(duì)象,即為需要定位的待測(cè)控件對(duì)象。
[0084]特征點(diǎn)匹配是提取局部圖像A和屏幕圖像B的特征點(diǎn),其中,特征點(diǎn)例如灰度,或者位置,對(duì)比局部圖像A和屏幕圖像B中每個(gè)特征點(diǎn)的相似度,當(dāng)有多個(gè)特征點(diǎn)相似,且相似的特征點(diǎn)對(duì)應(yīng)的坐標(biāo)值在誤差范圍內(nèi),則表示在屏幕圖像B中有與局部圖像A相似的圖像,將屏幕圖像B中與局部圖像A相似的圖像所框出的控件作為需要定位的待測(cè)控件對(duì)象。
[0085]本實(shí)施例中,通過在優(yōu)先級(jí)結(jié)果為圖像優(yōu)先時(shí),根據(jù)待測(cè)控件對(duì)象的局部圖像定位待測(cè)控件對(duì)象,使得在待檢測(cè)控件的特征屬性不能夠充分唯一標(biāo)識(shí)待檢測(cè)控件對(duì)象時(shí),能夠通過局部圖像定位待測(cè)控件對(duì)象,有效保證自動(dòng)化測(cè)試腳本的回放階段中腳本定位的精確性,提升自動(dòng)化測(cè)試效果。
[0086]可選地,如圖5所示,圖5是本發(fā)