欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

頁面校驗(yàn)方法及裝置與流程

文檔序號(hào):11654169閱讀:208來源:國知局
頁面校驗(yàn)方法及裝置與流程

本發(fā)明涉及軟件測試領(lǐng)域,特別涉及一種頁面校驗(yàn)方法及裝置。



背景技術(shù):

隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,以及諸如智能手機(jī)、平板電腦等移動(dòng)終端的飛速進(jìn)步,移動(dòng)終端中可運(yùn)行的應(yīng)用越來越廣泛,越來越多的企業(yè)投入到應(yīng)用的開發(fā)中。由于在應(yīng)用的開發(fā)過程中,應(yīng)用可能存在缺陷或故障,這些缺陷或故障可能會(huì)造成各類損失,甚至?xí)頌?zāi)難性的后果,因此,應(yīng)用的質(zhì)量問題已成為企業(yè)的關(guān)注焦點(diǎn)。為了保證應(yīng)用的質(zhì)量,應(yīng)用測試是應(yīng)用開發(fā)流程中一個(gè)必不可少的環(huán)節(jié)。在進(jìn)行應(yīng)用測試時(shí),需要在被測試的應(yīng)用中執(zhí)行相應(yīng)的測試用例,得到測試用例運(yùn)行的測試頁面,并對(duì)測試頁面進(jìn)行校驗(yàn),基于校驗(yàn)結(jié)果判斷應(yīng)用測試是否成功。

相關(guān)技術(shù)中,在對(duì)測試頁面進(jìn)行校驗(yàn)時(shí),需要在測試頁面中的定位某一比對(duì)元素,若獲取該比對(duì)元素成功,則頁面校驗(yàn)成功;若獲取該比對(duì)元素失敗,則頁面校驗(yàn)失敗。

在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)至少存在以下問題:

目前,在進(jìn)行頁面校驗(yàn)時(shí),僅可根據(jù)一個(gè)比對(duì)元素對(duì)測試頁面進(jìn)行校驗(yàn),導(dǎo)致在對(duì)測試頁面進(jìn)行校驗(yàn)時(shí),容易發(fā)生錯(cuò)誤,準(zhǔn)確性不高。



技術(shù)實(shí)現(xiàn)要素:

為克服相關(guān)技術(shù)中存在的問題,本發(fā)明提供一種頁面校驗(yàn)方法及裝置。

根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種頁面校驗(yàn)方法,所述方法包括:

當(dāng)測試用例執(zhí)行完成后,獲取預(yù)設(shè)數(shù)目的比對(duì)元素,每個(gè)比對(duì)元素至少包括一個(gè)預(yù)期頁面元素,所述每個(gè)比對(duì)元素用于確定測試用例執(zhí)行完成后得到的測試頁面是否與預(yù)期頁面一致;

基于頁面元素的至少一種查找方式,在所述測試頁面上對(duì)所述預(yù)設(shè)數(shù)目的比對(duì)元素進(jìn)行定位;

若所述至少一種查找方式中任一種查找方式未定位到所述預(yù)設(shè)數(shù)目的比對(duì)元素,則所述測試頁面校驗(yàn)失??;

若所述至少一種查找方式中任一種查找方式定位到所述預(yù)設(shè)數(shù)目的比對(duì)元素,則所述測試頁面校驗(yàn)成功。

本發(fā)明實(shí)施例提供的方法,當(dāng)測試用例執(zhí)行完成后,通過至少一種查找方式在測試用例執(zhí)行完成后的測試頁面上定位預(yù)設(shè)數(shù)目的比對(duì)元素,使得可以根據(jù)多個(gè)比對(duì)元素對(duì)測試頁面進(jìn)行校驗(yàn),而且可以通過多種查找方式對(duì)比對(duì)元素進(jìn)行定位,避免對(duì)測試頁面進(jìn)行校驗(yàn)后得到的校驗(yàn)結(jié)果發(fā)生錯(cuò)誤,提高了準(zhǔn)確性。

在另一個(gè)實(shí)施例中,所述基于頁面元素的至少一種查找方式,在所述測試頁面上對(duì)所述預(yù)設(shè)數(shù)目的比對(duì)元素進(jìn)行定位包括:

基于所述至少一種查找方式中的第一查找方式,在所述測試頁面上定位所述比對(duì)元素;

若所述第一查找方式在所述測試頁面上成功定位所述比對(duì)元素,則完成對(duì)所述比對(duì)元素的定位;

若所述第一查找方式在所述測試頁面上未定位到所述比對(duì)元素,則基于所述至少一種查找方式中的第二查找方式,在所述測試頁面上定位所述比對(duì)元素;

分別執(zhí)行所述至少一種查找方式,直至定位到所述比對(duì)元素。

本發(fā)明實(shí)施例提供的方法,當(dāng)至少一種查找方式中的第一查找方式未定位到比對(duì)元素,則基于至少一種查找方式中的第二查找方式對(duì)比對(duì)元素進(jìn)行定位,而且例遍至少一種查找方式中的每一種查找方式,直至查找到預(yù)設(shè)數(shù)目的比對(duì)元素,若全部的查找方式均未定位到比對(duì)元素,則測試頁面校驗(yàn)失敗,使得可以根據(jù)多種查找方式確定預(yù)設(shè)數(shù)目的比對(duì)元素,提高了測試頁面校驗(yàn)的準(zhǔn)確性。

在另一個(gè)實(shí)施例中,所述當(dāng)測試用例執(zhí)行完成后,獲取預(yù)設(shè)數(shù)目的比對(duì)元素之后,所述方法還包括:

若所述至少一種查找方式僅為第三查找方式,則基于第三查找方式,在所述測試頁面上定位所述預(yù)設(shè)數(shù)目的比對(duì)元素;

若在預(yù)設(shè)時(shí)間內(nèi)定位到所述預(yù)設(shè)數(shù)目的比對(duì)元素,則所述測試頁面校驗(yàn)成功;

若在預(yù)設(shè)時(shí)間內(nèi)未定位到所述預(yù)設(shè)數(shù)目的比對(duì)元素,則所述測試頁面校驗(yàn)失敗。

本發(fā)明實(shí)施例提供的方法,在僅基于第三查找方式定位比對(duì)元素時(shí),判斷比對(duì)元素是否出現(xiàn)在測試頁面上,當(dāng)定位到比對(duì)元素出現(xiàn)在測試頁面上時(shí),則確定測試頁面校驗(yàn)成功,當(dāng)未定位到比對(duì)元素出現(xiàn)在測試頁面上時(shí),開始等待,若在預(yù)設(shè)時(shí)間內(nèi)定位到比對(duì)元素出現(xiàn)在測試頁面上,則確定測試頁面校驗(yàn)成功,使得在測試用例執(zhí)行存在延時(shí)時(shí),可以更加智能化地在測試頁面上定位比對(duì)元素。

在另一個(gè)實(shí)施例中,所述基于頁面元素的至少一種查找方式,在所述測試頁面上對(duì)所述預(yù)設(shè)數(shù)目的比對(duì)元素進(jìn)行定位還包括:

若所述比對(duì)元素為安卓android端名稱文本屬性固定不變的頁面元素,則基于資源標(biāo)識(shí)resource-id對(duì)所述比對(duì)元素進(jìn)行定位;

若所述比對(duì)元素為android端動(dòng)態(tài)生成的可變的頁面元素,則基于路徑語言xpath對(duì)所述比對(duì)元素進(jìn)行定位;

若所述比對(duì)元素為ios端名稱文本屬性固定不變的頁面元素,則基于可訪問標(biāo)識(shí)accessibility_id或標(biāo)識(shí)符identifier對(duì)所述比對(duì)元素進(jìn)行定位;

若所述比對(duì)元素為ios端動(dòng)態(tài)生成的可變的頁面元素,則基于ios測試腳本uiautomation對(duì)所述比對(duì)元素進(jìn)行定位。

本發(fā)明實(shí)施例提供的方法,對(duì)于不同移動(dòng)終端中不同類型的比對(duì)元素可以設(shè)置不同的查找方式,更加的智能化,使得對(duì)測試頁面的校驗(yàn)更加準(zhǔn)確。

在另一個(gè)實(shí)施例中,所述方法還包括:

若所述測試頁面校驗(yàn)失敗,則通過網(wǎng)絡(luò)web訪問直通式處理stf平臺(tái);

基于所述stf平臺(tái),訪問控制control界面;

在所述control界面獲取遠(yuǎn)程調(diào)試remote_debug地址;

基于命令提示符,連接所述remote_debug地址,當(dāng)所述remote_debug地址連接成功,則進(jìn)行遠(yuǎn)程調(diào)試,完成所述測試頁面校驗(yàn)。

本發(fā)明實(shí)施例提供的方法,當(dāng)測試頁面校驗(yàn)失敗時(shí),可以獲取remote_debug地址,并基于remote_debug地址對(duì)測試頁面校驗(yàn)失敗的移動(dòng)終端進(jìn)行遠(yuǎn)程調(diào)試,無需對(duì)移動(dòng)終端進(jìn)行本地調(diào)試,節(jié)省了大量的人力物力。

根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種頁面校驗(yàn)裝置,所述裝置包括:

元素獲取模塊,用于當(dāng)測試用例執(zhí)行完成后,獲取預(yù)設(shè)數(shù)目的比對(duì)元素,每個(gè)比對(duì)元素至少包括一個(gè)預(yù)期頁面元素,所述每個(gè)比對(duì)元素用于確定測試用例執(zhí)行完成后得到的測試頁面是否與預(yù)期頁面一致;

第一定位模塊,用于基于頁面元素的至少一種查找方式,在所述測試頁面上對(duì)所述預(yù)設(shè)數(shù)目的比對(duì)元素進(jìn)行定位;

失敗模塊,還用于若所述至少一種查找方式中任一種查找方式未定位到所述預(yù)設(shè)數(shù)目的比對(duì)元素,則所述測試頁面校驗(yàn)失?。?/p>

成功模塊,還用于若所述至少一種查找方式中任一種查找方式定位到所述預(yù)設(shè)數(shù)目的比對(duì)元素,則所述測試頁面校驗(yàn)成功。

本發(fā)明實(shí)施例提供的裝置,當(dāng)測試用例執(zhí)行完成后,通過至少一種查找方式在測試用例執(zhí)行完成后的測試頁面上定位預(yù)設(shè)數(shù)目的比對(duì)元素,使得可以根據(jù)多個(gè)比對(duì)元素對(duì)測試頁面進(jìn)行校驗(yàn),而且可以通過多種查找方式對(duì)比對(duì)元素進(jìn)行定位,避免對(duì)測試頁面進(jìn)行校驗(yàn)后得到的校驗(yàn)結(jié)果發(fā)生錯(cuò)誤,提高了準(zhǔn)確性。

在另一個(gè)實(shí)施例中,所述第一定位模塊包括:

第一定位子模塊,用于基于所述至少一種查找方式中的第一查找方式,在所述測試頁面上定位所述比對(duì)元素;

完成子模塊,用于若所述第一查找方式在所述測試頁面上成功定位所述比對(duì)元素,則完成對(duì)所述比對(duì)元素的定位;

所述第一定位子模塊,還用于若所述第一查找方式在所述測試頁面上未定位到所述比對(duì)元素,則基于所述至少一種查找方式中的第二查找方式,在所述測試頁面上定位所述比對(duì)元素;

所述第一定位子模塊,還用于分別執(zhí)行所述至少一種查找方式,直至定位到所述比對(duì)元素。

在另一個(gè)實(shí)施例中,所述裝置還包括:

第二定位模塊,用于若所述至少一種查找方式僅為第三查找方式,則基于第三查找方式,在所述測試頁面上定位所述預(yù)設(shè)數(shù)目的比對(duì)元素;

所述成功模塊,用于若在預(yù)設(shè)時(shí)間內(nèi)定位到所述預(yù)設(shè)數(shù)目的比對(duì)元素,則所述測試頁面校驗(yàn)成功;

所述失敗模塊,用于若在預(yù)設(shè)時(shí)間內(nèi)未定位到所述預(yù)設(shè)數(shù)目的比對(duì)元素,則所述測試頁面校驗(yàn)失敗。

在另一個(gè)實(shí)施例中,所述定位模塊還包括:

第二定位子模塊,用于若所述比對(duì)元素為安卓android端名稱文本屬性固定不變的頁面元素,則基于資源標(biāo)識(shí)resource-id對(duì)所述比對(duì)元素進(jìn)行定位;

第三定位子模塊,用于若所述比對(duì)元素為android端動(dòng)態(tài)生成的可變的頁面元素,則基于路徑語言xpath對(duì)所述比對(duì)元素進(jìn)行定位;

第四定位子模塊,用于若所述比對(duì)元素為ios端名稱文本屬性固定不變的頁面元素,則基于可訪問標(biāo)識(shí)accessibility_id或標(biāo)識(shí)符identifier對(duì)所述比對(duì)元素進(jìn)行定位;

第五定位子模塊,用于若所述比對(duì)元素為ios端動(dòng)態(tài)生成的可變的頁面元素,則基于ios測試腳本uiautomation對(duì)所述比對(duì)元素進(jìn)行定位。

在另一個(gè)實(shí)施例中,所述裝置還包括:

第一訪問模塊,用于若所述測試頁面校驗(yàn)失敗,則通過網(wǎng)絡(luò)web訪問直通式處理stf平臺(tái);

第二訪問模塊,用于基于所述stf平臺(tái),訪問控制control界面;

地址獲取模塊,用于在所述control界面獲取遠(yuǎn)程調(diào)試remote_debug地址;

連接模塊,用于基于命令提示符,連接所述remote_debug地址,當(dāng)所述remote_debug地址連接成功,則進(jìn)行遠(yuǎn)程調(diào)試,完成所述測試頁面校驗(yàn)。

應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。

附圖說明

此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說明書一起用于解釋本發(fā)明的原理。

圖1是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的流程圖;

圖2a是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2b是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2c是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的流程圖;

圖2d是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2e是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2f是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2g是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2h是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2i是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2j是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2k是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2l是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖2m是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的示意圖;

圖3a是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)裝置的框圖;

圖3b是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)裝置的框圖;

圖3c是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)裝置的框圖;

圖3d是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)裝置的框圖;

圖3e是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)裝置的框圖;

圖4是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)裝置400的框圖。

具體實(shí)施方式

這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。

圖1是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)方法的流程圖,如圖1所示,該方法包括以下步驟。

在步驟101中,當(dāng)測試用例執(zhí)行完成后,獲取預(yù)設(shè)數(shù)目的比對(duì)元素,每個(gè)比對(duì)元素至少包括一個(gè)預(yù)期頁面元素,每個(gè)比對(duì)元素用于確定測試用例執(zhí)行完成后得到的測試頁面是否與預(yù)期頁面一致。

在步驟102中,基于頁面元素的至少一種查找方式,在測試頁面上對(duì)預(yù)設(shè)數(shù)目的比對(duì)元素進(jìn)行定位。

在步驟103中,若至少一種查找方式中任一種查找方式未定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)失敗。

在步驟104中,若至少一種查找方式中任一種查找方式定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)成功。

本發(fā)明實(shí)施例提供的方法,當(dāng)測試用例執(zhí)行完成后,通過至少一種查找方式在測試用例執(zhí)行完成后的測試頁面上定位預(yù)設(shè)數(shù)目的比對(duì)元素,使得可以根據(jù)多個(gè)比對(duì)元素對(duì)測試頁面進(jìn)行校驗(yàn),而且可以通過多種查找方式對(duì)比對(duì)元素進(jìn)行定位,避免對(duì)測試頁面進(jìn)行校驗(yàn)后得到的校驗(yàn)結(jié)果發(fā)生錯(cuò)誤,提高了準(zhǔn)確性。

在另一個(gè)實(shí)施例中,基于頁面元素的至少一種查找方式,在測試頁面上對(duì)預(yù)設(shè)數(shù)目的比對(duì)元素進(jìn)行定位包括:

基于至少一種查找方式中的第一查找方式,在測試頁面上定位比對(duì)元素;

若第一查找方式在測試頁面上成功定位比對(duì)元素,則完成對(duì)比對(duì)元素的定位;

若第一查找方式在測試頁面上未定位到比對(duì)元素,則基于至少一種查找方式中的第二查找方式,在測試頁面上定位比對(duì)元素;

分別執(zhí)行至少一種查找方式,直至定位到比對(duì)元素。

在另一個(gè)實(shí)施例中,當(dāng)測試用例執(zhí)行完成后,獲取預(yù)設(shè)數(shù)目的比對(duì)元素之后,方法還包括:

若至少一種查找方式僅為第三查找方式,則基于第三查找方式,在測試頁面上定位預(yù)設(shè)數(shù)目的比對(duì)元素;

若在預(yù)設(shè)時(shí)間內(nèi)定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)成功;

若在預(yù)設(shè)時(shí)間內(nèi)未定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)失敗。

在另一個(gè)實(shí)施例中,基于頁面元素的至少一種查找方式,在測試頁面上對(duì)預(yù)設(shè)數(shù)目的比對(duì)元素進(jìn)行定位還包括:

若比對(duì)元素為安卓android端名稱文本屬性固定不變的頁面元素,則基于資源標(biāo)識(shí)resource-id對(duì)比對(duì)元素進(jìn)行定位;

若比對(duì)元素為android端動(dòng)態(tài)生成的可變的頁面元素,則基于路徑語言xpath對(duì)比對(duì)元素進(jìn)行定位;

若比對(duì)元素為ios端名稱文本屬性固定不變的頁面元素,則基于可訪問標(biāo)識(shí)accessibility_id或標(biāo)識(shí)符identifier對(duì)比對(duì)元素進(jìn)行定位;

若比對(duì)元素為ios端動(dòng)態(tài)生成的可變的頁面元素,則基于ios測試腳本uiautomation對(duì)比對(duì)元素進(jìn)行定位。

在另一個(gè)實(shí)施例中,該方法還包括:

若測試頁面校驗(yàn)失敗,則通過網(wǎng)絡(luò)web訪問直通式處理stf平臺(tái);

基于stf平臺(tái),訪問控制control界面;

在control界面獲取遠(yuǎn)程調(diào)試remote_debug地址;

基于命令提示符,連接remote_debug地址,當(dāng)remote_debug地址連接成功,則進(jìn)行遠(yuǎn)程調(diào)試,完成測試頁面校驗(yàn)。

上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本公開的可選實(shí)施例,在此不再一一贅述。

本發(fā)明實(shí)施例為一套完整的應(yīng)用測試自動(dòng)化執(zhí)行業(yè)務(wù)流程,該應(yīng)用測試自動(dòng)化執(zhí)行業(yè)務(wù)流程可以利用ci(continuousintegration,持續(xù)集成)平臺(tái)構(gòu)建,該應(yīng)用測試自動(dòng)化執(zhí)行業(yè)務(wù)流程用于自動(dòng)執(zhí)行對(duì)應(yīng)用的測試,可以由下述七部分組成:

第一部分:自動(dòng)重啟adb(androiddebugbridge,安卓調(diào)試橋)服務(wù)以及被測試的移動(dòng)終端。

在本發(fā)明實(shí)施例中,對(duì)應(yīng)用進(jìn)行測試時(shí),需要以移動(dòng)終端為載體進(jìn)行測試,因此,被測試的應(yīng)用所在的移動(dòng)終端需要連接到機(jī)房的服務(wù)器上,由服務(wù)器控制移動(dòng)終端執(zhí)行測試用例,完成對(duì)應(yīng)用的測試。其中,在將移動(dòng)終端連接到服務(wù)器時(shí),可以基于adb服務(wù)進(jìn)行連接,為了防止adb服務(wù)發(fā)生錯(cuò)誤或者移動(dòng)終端發(fā)生無響應(yīng)的狀況,因此,服務(wù)器可以周期性的自動(dòng)重啟被測試的應(yīng)用所在的移動(dòng)終端的adb服務(wù)以及被測試的應(yīng)用所在的移動(dòng)終端。

服務(wù)器自動(dòng)重啟被測試的應(yīng)用所在的移動(dòng)終端的adb服務(wù)以及被測試的應(yīng)用所在的移動(dòng)終端的操作可基于代碼實(shí)現(xiàn),其中,服務(wù)器自動(dòng)重啟的核心代碼如圖2a所示,服務(wù)器可以提供周期設(shè)置入口,當(dāng)檢測到開發(fā)人員點(diǎn)擊周期設(shè)置入口時(shí),顯示周期設(shè)置頁面,在周期設(shè)置頁面顯示多種備選周期以及周期輸入框;開發(fā)人員可以直接點(diǎn)擊選擇備選周期作為服務(wù)器周期性自動(dòng)重啟的時(shí)間,也可以在周期輸入框中輸入需要設(shè)置的周期,以便完成對(duì)服務(wù)器自動(dòng)重啟的周期設(shè)置。當(dāng)服務(wù)器每個(gè)周期檢測到需要進(jìn)行自動(dòng)重啟時(shí),則自動(dòng)生成重啟指令;當(dāng)檢測到重啟指令生成時(shí),獲取當(dāng)前已經(jīng)連接的全部移動(dòng)終端的終端地址,將重啟指令發(fā)送至終端地址指示的全部移動(dòng)終端。

為了使服務(wù)器獲知移動(dòng)終端是否重啟完成,對(duì)于全部移動(dòng)終端中的每個(gè)移動(dòng)終端,當(dāng)接收到重啟指令時(shí),移動(dòng)終端便會(huì)進(jìn)行重啟,并在完成重啟后生成成功指令,基于與服務(wù)器之間的連接,將成功指令返回給服務(wù)器;當(dāng)服務(wù)器接收到全部移動(dòng)終端返回的成功指令時(shí),便確定當(dāng)前自動(dòng)重啟成功,完成對(duì)全部移動(dòng)終端的自動(dòng)重啟。

第二部分:移動(dòng)終端連接狀態(tài)檢查。

在本發(fā)明實(shí)施例中,為了避免服務(wù)器與移動(dòng)終端之間的連接發(fā)生異常,服務(wù)器需要對(duì)和全部移動(dòng)終端之間的連接進(jìn)行檢查,檢查與移動(dòng)終端之間的連接是否正常,若檢查到與某個(gè)移動(dòng)終端之間的連接發(fā)生異常,則在主屏幕上進(jìn)行提示,以使開發(fā)人員獲知當(dāng)前移動(dòng)終端與服務(wù)器之間的連接發(fā)生異常,并對(duì)連接進(jìn)行修復(fù)。

其中,服務(wù)器在檢查與移動(dòng)終端之間的連接是否正常時(shí),可以采用心跳方式或輪詢方式進(jìn)行檢查。當(dāng)服務(wù)器采用心跳方式檢查與移動(dòng)終端之間的連接是否正常時(shí),與服務(wù)器連接的移動(dòng)終端可以周期性的向服務(wù)器發(fā)送心跳信號(hào),心跳信號(hào)用于指示當(dāng)前移動(dòng)終端與服務(wù)器之間的連接正常,若服務(wù)器可以周期性的接收到移動(dòng)終端發(fā)送的心跳信號(hào),則服務(wù)器可確定與移動(dòng)終端之間的連接正常;若服務(wù)器未能在每個(gè)周期接收到移動(dòng)終端返回的心跳信號(hào),則服務(wù)器可確定與移動(dòng)終端之間的連接發(fā)生異常,需要對(duì)連接進(jìn)行修復(fù)。當(dāng)服務(wù)器采用輪詢方式檢查與移動(dòng)終端之間的連接是否正常時(shí),服務(wù)器可以周期性的向移動(dòng)終端發(fā)送查詢信號(hào),以使移動(dòng)終端在接收到查詢信號(hào)后,向服務(wù)器返回確認(rèn)信號(hào);若移動(dòng)終端與服務(wù)器之間的連接正常,則移動(dòng)終端在接收到服務(wù)器發(fā)送的查詢信號(hào)后,便可向服務(wù)器返回確認(rèn)信號(hào),以使服務(wù)器獲知與移動(dòng)終端之間的連接正常;若移動(dòng)終端與服務(wù)器之間的連接異常,則移動(dòng)終端可能未接收到服務(wù)器發(fā)送的查詢信號(hào),亦或無法向服務(wù)器返回確認(rèn)信號(hào),這樣服務(wù)器便無法接收到移動(dòng)終端的確認(rèn)信號(hào),服務(wù)器可確定與移動(dòng)終端之間的連接發(fā)生異常,需要進(jìn)行修復(fù)。

需要說明的是,對(duì)于服務(wù)器檢查與移動(dòng)終端之間的連接是否正常的方式,本發(fā)明對(duì)此不進(jìn)行具體限定。

第三部分:應(yīng)用自動(dòng)打包。

在本發(fā)明實(shí)施例中,對(duì)應(yīng)用進(jìn)行測試之前,為了保證所測試的版本是應(yīng)用的最新版本,以便對(duì)應(yīng)用的最新版本進(jìn)行完善,需要對(duì)已經(jīng)連接的移動(dòng)終端中被測試的應(yīng)用進(jìn)行檢測,判斷移動(dòng)終端中安裝的被測試的應(yīng)用是否為應(yīng)用的最新版本,若移動(dòng)終端中安裝的被測試的應(yīng)用并非最新版本的應(yīng)用,則需要獲取可將當(dāng)前應(yīng)用更新至最新版本的應(yīng)用安裝包,對(duì)應(yīng)用進(jìn)行自動(dòng)打包。

在判斷移動(dòng)終端中安裝的被測試的應(yīng)用是否為應(yīng)用的最新版本時(shí),可以獲取移動(dòng)終端中安裝的應(yīng)用的版本號(hào)以及應(yīng)用的具體內(nèi)容,若根據(jù)應(yīng)用的版本號(hào)以及應(yīng)用的具體內(nèi)容確定應(yīng)用當(dāng)前的版本為最新版本,則可基于移動(dòng)終端中當(dāng)前安裝的應(yīng)用繼續(xù)執(zhí)行下述第四部分;若根據(jù)應(yīng)用的版本號(hào)以及應(yīng)用的具體內(nèi)容確定應(yīng)用當(dāng)前的版本并非最新版本,則根據(jù)移動(dòng)終端中當(dāng)前安裝應(yīng)用的應(yīng)用標(biāo)識(shí)和應(yīng)用的當(dāng)前版本號(hào),獲取可將當(dāng)前應(yīng)用更新至最新版本的應(yīng)用安裝包,對(duì)應(yīng)用進(jìn)行自動(dòng)打包,以使后續(xù)可以根據(jù)當(dāng)前應(yīng)用的最新版本確定在對(duì)移動(dòng)終端中安裝的應(yīng)用進(jìn)行測試時(shí)需要執(zhí)行的測試用例。其中,應(yīng)用的具體內(nèi)容可為應(yīng)用中當(dāng)前可顯示的全部頁面的頁面標(biāo)識(shí),這樣在判斷移動(dòng)終端中安裝的被測試應(yīng)用是否為應(yīng)用的最新版本時(shí),可以獲取應(yīng)用的版本號(hào)以及應(yīng)用的具體內(nèi)容,判斷應(yīng)用的版本號(hào)與最新版本號(hào)是否一致,并獲取最新版本的應(yīng)用中可顯示的全部頁面的頁面標(biāo)識(shí),與移動(dòng)終端中安裝的被測試應(yīng)用可顯示的全部頁面的頁面標(biāo)識(shí)進(jìn)行比對(duì),若移動(dòng)終端中安裝的被測試應(yīng)用的版本號(hào)與最新版本號(hào)一致,且最新版本的應(yīng)用中可顯示的全部頁面的頁面標(biāo)識(shí)與移動(dòng)終端中安裝的被測試應(yīng)用可顯示的全部頁面的頁面標(biāo)識(shí)一致,則表示終端中安裝的被測試應(yīng)用為應(yīng)用的最新版本;若移動(dòng)終端中安裝的被測試應(yīng)用的版本號(hào)與最新版本號(hào)不一致,且最新版本的應(yīng)用中可顯示的全部頁面的頁面標(biāo)識(shí)與移動(dòng)終端中安裝的被測試應(yīng)用可顯示的全部頁面的頁面標(biāo)識(shí)存在不一致的頁面標(biāo)識(shí),則表示終端中安裝的被測試應(yīng)用并非為應(yīng)用的最新版本。

第四部分:拉取最新測試用例的用例代碼。

在本發(fā)明實(shí)施例中,為了確保后續(xù)可以根據(jù)最新的測試用例對(duì)應(yīng)用進(jìn)行測試,對(duì)應(yīng)用的最新版本進(jìn)行完善,因此,需要根據(jù)最新版本的應(yīng)用拉取最新測試用例的用例代碼。

在拉取最新測試用例的用例代碼時(shí),服務(wù)器可在用例代碼數(shù)據(jù)庫中根據(jù)最新版本的被測應(yīng)用的應(yīng)用標(biāo)識(shí)確定被測應(yīng)用的用例代碼,并對(duì)用例代碼進(jìn)行拉取。其中,用例代碼數(shù)據(jù)庫將應(yīng)用標(biāo)識(shí)與應(yīng)用對(duì)應(yīng)的用例代碼對(duì)應(yīng)進(jìn)行存儲(chǔ),每個(gè)應(yīng)用對(duì)應(yīng)的用例代碼均為開發(fā)人員根據(jù)應(yīng)用構(gòu)建得到的。

第五部分:為各應(yīng)用構(gòu)建測試用例,基于測試用例對(duì)應(yīng)用進(jìn)行測試。

在本發(fā)明實(shí)施例中,根據(jù)用例代碼即可在測試用例數(shù)據(jù)庫中確定用例代碼對(duì)應(yīng)的測試用例。在獲取到被測應(yīng)用的測試用例后,服務(wù)器將應(yīng)用的應(yīng)用標(biāo)識(shí)與被測應(yīng)用的測試用例對(duì)應(yīng)存儲(chǔ)至本地,以便后續(xù)基于與被測應(yīng)用對(duì)應(yīng)的測試用例對(duì)被測應(yīng)用進(jìn)行測試。

在開始基于測試用例對(duì)應(yīng)用進(jìn)行測試之前,由于一個(gè)應(yīng)用可能需要執(zhí)行至少一個(gè)測試用例,以及可能存在多個(gè)應(yīng)用需要進(jìn)行測試,因此,為了同時(shí)執(zhí)行至少一個(gè)測試用例,通常引入并發(fā)模式執(zhí)行測試。在并發(fā)模式中,需要為至少一個(gè)測試用例設(shè)置設(shè)備參數(shù),該設(shè)備參數(shù)用于指示測試用例運(yùn)行的移動(dòng)終端,設(shè)備參數(shù)可用-u表示。在為至少一個(gè)測試用例設(shè)置設(shè)備參數(shù)后,為了實(shí)現(xiàn)至少一個(gè)測試用例的并發(fā),可將屬于同一主任務(wù)的至少一個(gè)子任務(wù)與至少一個(gè)測試用例進(jìn)行關(guān)聯(lián),并基于多任務(wù)插件,執(zhí)行該主任務(wù),以使設(shè)備參數(shù)指示的移動(dòng)終端可以同時(shí)執(zhí)行至少一個(gè)測試用例,實(shí)現(xiàn)測試用例的并發(fā)。其中,多任務(wù)插件可為jenkinsmultijobphase(集成多任務(wù))插件功能,上述基于多任務(wù)插件對(duì)測試用例進(jìn)行并發(fā)執(zhí)行的過程可以基于圖2b所示的代碼實(shí)現(xiàn)。

為了在各個(gè)子任務(wù)執(zhí)行完成后收集執(zhí)行子任務(wù)的測試結(jié)果,可為至少一個(gè)子任務(wù)中的每個(gè)子任務(wù)配置關(guān)聯(lián)任務(wù),并基于關(guān)聯(lián)子任務(wù)將執(zhí)行各個(gè)子任務(wù)后得到的測試結(jié)果傳輸至結(jié)果收集任務(wù),以便結(jié)果收集任務(wù)實(shí)現(xiàn)對(duì)測試結(jié)果的收集。

當(dāng)測試用例執(zhí)行完畢后,執(zhí)行測試用例的移動(dòng)終端可顯示測試頁面,為了判斷測試用例在移動(dòng)終端上是否執(zhí)行成功,服務(wù)器需要對(duì)測試頁面進(jìn)行校驗(yàn),判斷得到的測試頁面與預(yù)期頁面是否一致,若確定得到的測試頁面與預(yù)期頁面一致,則確定對(duì)測試頁面進(jìn)行校驗(yàn)成功;若確定得到的測試頁面與預(yù)期頁面不一致,則確定對(duì)測試頁面進(jìn)行校驗(yàn)失敗。其中,在對(duì)測試頁面進(jìn)行校驗(yàn)時(shí),參見圖2c,可以基于下述步驟201至步驟205實(shí)現(xiàn)。

在步驟201中,當(dāng)測試用例執(zhí)行完成后,獲取預(yù)設(shè)數(shù)目的比對(duì)元素,每個(gè)比對(duì)元素至少包括一個(gè)預(yù)期頁面元素,每個(gè)比對(duì)元素用于確定測試用例執(zhí)行完成后得到的測試頁面是否與預(yù)期頁面一致。

在本發(fā)明實(shí)施例中,為了判斷測試用例執(zhí)行完成后得到的測試頁面與預(yù)期頁面是否一致,需要基于預(yù)期頁面上的比對(duì)元素進(jìn)行確定,也即若預(yù)期頁面上的比對(duì)元素可在測試頁面上定位成功,則可以確定測試頁面與預(yù)期頁面一致;若預(yù)期頁面上的比對(duì)元素在測試頁面上定位失敗,則可以確定測試頁面與預(yù)期頁面不一致。由于基于單一的比對(duì)元素確定測試頁面與預(yù)期頁面是否一致得到的結(jié)果準(zhǔn)確性較低,因此,在本發(fā)明中設(shè)置了預(yù)設(shè)數(shù)目的比對(duì)元素,且每個(gè)比對(duì)元素至少包括一個(gè)預(yù)期頁面元素,可以通過執(zhí)行圖2d所示的代碼實(shí)現(xiàn),保證了對(duì)測試頁面校驗(yàn)的準(zhǔn)確性。

在步驟202中,基于頁面元素的至少一種查找方式,在測試頁面上對(duì)預(yù)設(shè)數(shù)目的比對(duì)元素進(jìn)行定位,若至少一種查找方式中任一種查找方式定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)成功;若至少一種查找方式中任一種查找方式未定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則執(zhí)行下述步驟203。

在本發(fā)明實(shí)施例中,基于頁面元素的至少一種查找方式,在測試頁面上對(duì)預(yù)設(shè)數(shù)目的比對(duì)元素進(jìn)行定位時(shí),可以根據(jù)查找方式的個(gè)數(shù),進(jìn)行方式的比對(duì)元素定位,參見下述情況一和情況二。

情況一、查找方式至少包括第一查找方式和第二查找方式。

在測試頁面上定位預(yù)設(shè)數(shù)目的比對(duì)元素時(shí),可以通過執(zhí)行圖2e所示的代碼實(shí)現(xiàn)。首先可以基于少一種查找方式中的第一查找方式,在測試頁面上定位比對(duì)元素,若第一查找方式在測試頁面上成功定位比對(duì)元素,則完成對(duì)比對(duì)元素的定位,也即測試頁面校驗(yàn)成功;若第一查找方式在測試頁面上未定位到比對(duì)元素,則之后可以基于至少一種查找方式中的第二查找方式,在測試頁面上定位比對(duì)元素,以此類推,直至在預(yù)測頁面上定位到比對(duì)元素。

情況二、查找方式僅為第三查找方式。

在本發(fā)明實(shí)施例中,為了避免由于測試用例在執(zhí)行時(shí)存在延時(shí),而導(dǎo)致對(duì)測試頁面的校驗(yàn)發(fā)生錯(cuò)誤,當(dāng)僅基于第三查找方式,在測試頁面上定位預(yù)設(shè)數(shù)目的比對(duì)元素時(shí),可以通過執(zhí)行圖2f所示的代碼實(shí)現(xiàn)。其中,服務(wù)器中可以設(shè)置預(yù)設(shè)時(shí)間,并基于在預(yù)設(shè)時(shí)間是否可以定位到預(yù)設(shè)數(shù)目的比對(duì)元素,確定對(duì)測試頁面的校驗(yàn)是否成功。其中,在設(shè)置預(yù)設(shè)時(shí)間時(shí),服務(wù)器可以提供預(yù)設(shè)時(shí)間設(shè)置入口,當(dāng)檢測到開發(fā)人員點(diǎn)擊進(jìn)入預(yù)設(shè)時(shí)間設(shè)置入口時(shí),顯示預(yù)設(shè)時(shí)間設(shè)置界面,在預(yù)設(shè)時(shí)間設(shè)置界面上顯示可供開發(fā)人員選擇的備選預(yù)設(shè)時(shí)間以及預(yù)設(shè)時(shí)間輸入框,若開發(fā)人員選取了備選預(yù)設(shè)時(shí)間,則將開發(fā)人員選取的備選預(yù)設(shè)時(shí)間作為預(yù)設(shè)時(shí)間;若開發(fā)人員在預(yù)設(shè)時(shí)間輸入框內(nèi)輸入了時(shí)間,則將開發(fā)人員輸入的時(shí)間作為預(yù)設(shè)時(shí)間。

這樣,在基于第三查找方式在測試頁面上定位預(yù)設(shè)數(shù)目的比對(duì)元素時(shí),若在預(yù)設(shè)時(shí)間內(nèi)定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則確定測試頁面校驗(yàn)成功;若在預(yù)設(shè)時(shí)間內(nèi)未定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)失敗。

其中,為了滿足服務(wù)器在不同移動(dòng)終端中定位不同類型的比對(duì)元素,使定位比對(duì)元素的方式更加的靈活,因此,對(duì)于不同類型的比對(duì)元素以及不同移動(dòng)終端上的比對(duì)元素,可以采用不用的查找方式。若比對(duì)元素為安卓android端名稱文本屬性固定不變的頁面元素,則基于資源標(biāo)識(shí)resource-id對(duì)比對(duì)元素進(jìn)行定位;若比對(duì)元素為android端動(dòng)態(tài)生成的可變的頁面元素,則基于路徑語言xpath對(duì)比對(duì)元素進(jìn)行定位;若比對(duì)元素為ios端名稱文本屬性固定不變的頁面元素,則基于可訪問標(biāo)識(shí)accessibility_id或標(biāo)識(shí)符identifier對(duì)比對(duì)元素進(jìn)行定位;若比對(duì)元素為ios端動(dòng)態(tài)生成的可變的頁面元素,則基于ios測試腳本uiautomation對(duì)比對(duì)元素進(jìn)行定位。

需要說明的是,若在上述兩種情況中,至少一中查找方式中的全部查找方式均為在測試頁面定位到比對(duì)元素,則確定測試頁面校驗(yàn)失敗,也即執(zhí)行下述步驟203。

需要說明的是,上述對(duì)測試頁面進(jìn)行檢測的過程為基于查找方式在測試頁面對(duì)比對(duì)元素進(jìn)行定位,其中,也可基于查找方式在預(yù)設(shè)頁面對(duì)比對(duì)文本進(jìn)行定位,比對(duì)文本為預(yù)期頁面中的文本信息。在對(duì)比對(duì)文本進(jìn)行定位時(shí),可以基于圖2g中所示的代碼實(shí)現(xiàn),對(duì)比對(duì)文本進(jìn)行定位的過程與對(duì)比對(duì)元素進(jìn)行定位的過程一致,此處不再進(jìn)行贅述。

在步驟203中,若至少一種查找方式中任一種查找方式未定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)失敗,通過網(wǎng)絡(luò)web訪問直通式處理stf平臺(tái)。

在本發(fā)明實(shí)施例中,若至少一種查找方式中任一種查找方式未定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)失敗,因此,為了完成對(duì)測試頁面的校驗(yàn),以確定造成測試頁面校驗(yàn)失敗的原因,需要對(duì)發(fā)生測試頁面校驗(yàn)失敗的移動(dòng)終端進(jìn)行調(diào)試。

在對(duì)移動(dòng)終端進(jìn)行調(diào)試時(shí),如果每次的調(diào)試都要把測試頁面校驗(yàn)失敗的移動(dòng)終端從機(jī)房的服務(wù)器拔下來到本地進(jìn)行調(diào)試,會(huì)增加開發(fā)人員的工作量,因此,可以基于stf(smartphonetestfarm,智能手機(jī)測試平臺(tái))平臺(tái)對(duì)移動(dòng)終端進(jìn)行遠(yuǎn)程調(diào)試。其中,在對(duì)移動(dòng)終端進(jìn)行遠(yuǎn)程調(diào)試之前,需要在stf平臺(tái)增加與服務(wù)器之間存在連接的各個(gè)移動(dòng)終端的遠(yuǎn)程調(diào)試地址,在向stf平臺(tái)增加遠(yuǎn)程調(diào)試地址時(shí),需要對(duì)stf平臺(tái)的源代碼進(jìn)行圖2h所示的代碼修改,以便將各個(gè)移動(dòng)終端的遠(yuǎn)程調(diào)試地址添加至stf平臺(tái)中。

當(dāng)確定測試頁面校驗(yàn)失敗時(shí),為了對(duì)發(fā)生測試頁面校驗(yàn)失敗的移動(dòng)終端進(jìn)行調(diào)試,可以通過web(網(wǎng)絡(luò))訪問stf平臺(tái),并基于stf平臺(tái)實(shí)現(xiàn)對(duì)移動(dòng)終端的遠(yuǎn)程調(diào)試。

在步驟204中,基于stf平臺(tái),訪問控制control界面,在control界面獲取遠(yuǎn)程調(diào)試remote_debug地址。

在本發(fā)明實(shí)施例中,服務(wù)器基于stf平臺(tái)可以點(diǎn)擊移動(dòng)終端上用于進(jìn)入control(控制)界面的圖標(biāo),以此可以訪問control界面,在control界面可以查看遠(yuǎn)程調(diào)試remote_debug地址。

在步驟205中,基于命令提示符,連接remote_debug地址,當(dāng)remote_debug地址連接成功,則進(jìn)行遠(yuǎn)程調(diào)試,完成測試頁面校驗(yàn)。

在本發(fā)明實(shí)施例中,當(dāng)獲取到remote_debug地址,可在命令提示符中輸入remote_debug地址,實(shí)現(xiàn)連接到remote_debug地址所指示的移動(dòng)終端。其中,為了獲知連接移動(dòng)終端是否成功,可以基于圖2i中的代碼查看是否成功連接到移動(dòng)終端。這樣,當(dāng)成功連接到移動(dòng)終端后,便可以對(duì)移動(dòng)終端進(jìn)行調(diào)試,例如對(duì)移動(dòng)終端上安裝的應(yīng)用進(jìn)行卸載以及獲取頁面元素等。

第六部分:測試用例執(zhí)行結(jié)果收集。

在本發(fā)明實(shí)施例中,在對(duì)測試用例執(zhí)行結(jié)果進(jìn)行收集時(shí),對(duì)于至少一個(gè)子任務(wù)中的任一個(gè)子任務(wù),需要基于子任務(wù)的關(guān)聯(lián)任務(wù),將子任務(wù)的任務(wù)描述信息傳輸至結(jié)果收集任務(wù)。其中,任務(wù)描述信息可為子任務(wù)的構(gòu)建編號(hào)number、構(gòu)建地址url、測試用例總數(shù)變量名、失敗變量名等子任務(wù)的基本信息。

當(dāng)結(jié)果收集任務(wù)接收到任務(wù)描述信息時(shí),可在構(gòu)建命令中觸發(fā)腳本;通過腳本并基于任務(wù)描述信息,獲取到子任務(wù)的任務(wù)運(yùn)行信息,其中,任務(wù)運(yùn)行信息可包括成功測試用例數(shù)、失敗測試用例數(shù)。

當(dāng)獲取到子任務(wù)的任務(wù)運(yùn)行信息時(shí),基于任務(wù)運(yùn)行信息生成子任務(wù)對(duì)應(yīng)的變量文件,以使后續(xù)可以基于變量文件發(fā)送通知郵件。

第七部分:發(fā)送通知郵件。

在本發(fā)明實(shí)施例中,當(dāng)生成變量文件后,可在子任務(wù)中注入該子任務(wù)對(duì)應(yīng)的變量文件,這樣該子任務(wù)便可以將變量文件進(jìn)行解析,獲取任務(wù)運(yùn)行信息,并生成攜帶任務(wù)運(yùn)行信息的通知郵件,基于通知郵件提醒應(yīng)用執(zhí)行測試用例后的測試結(jié)果。

需要說明的是,為了避免對(duì)測試頁面進(jìn)行校驗(yàn)后得到的校驗(yàn)結(jié)果發(fā)生錯(cuò)誤,提高準(zhǔn)確性,因此本發(fā)明實(shí)施例中設(shè)置了多種查找方法對(duì)測試頁面進(jìn)行校驗(yàn),而且為了提高對(duì)應(yīng)用進(jìn)行測試的效率,增加了并行執(zhí)行測試用例的方案,這樣,服務(wù)器需要執(zhí)行的操作便會(huì)增加,因此,為了方便服務(wù)器執(zhí)行上述的操作,可以為服務(wù)器設(shè)置一鍵重啟移動(dòng)終端、一鍵狀態(tài)查詢、一鍵停止服務(wù)和一鍵啟動(dòng)服務(wù)。在為服務(wù)器設(shè)置一鍵重啟移動(dòng)終端、一鍵狀態(tài)查詢、一鍵停止服務(wù)和一鍵啟動(dòng)服務(wù)時(shí),可以基于圖2j所示的代碼實(shí)現(xiàn)。

其中,服務(wù)器在執(zhí)行一鍵重啟移動(dòng)終端的操作時(shí),與上述服務(wù)器自動(dòng)執(zhí)行重啟adb服務(wù)以及被測試的移動(dòng)終端的過程一致,此處不再進(jìn)行贅述;

服務(wù)器在執(zhí)行一鍵狀態(tài)查詢的操作時(shí),可以基于圖2k所示的代碼實(shí)現(xiàn),也即服務(wù)器可在主界面提供一鍵狀態(tài)查詢按鈕,當(dāng)檢測到開發(fā)人員觸發(fā)一鍵狀態(tài)查詢按鈕時(shí),則服務(wù)器獲取執(zhí)行測試用例的移動(dòng)終端中測試服務(wù)的id(identity,身份標(biāo)識(shí))和端口號(hào),并基于id和端口號(hào),讀取移動(dòng)終端中測試服務(wù)的運(yùn)行狀態(tài),完成狀態(tài)查詢。

服務(wù)器在執(zhí)行一鍵停止服務(wù)的操作時(shí),可以基于圖2l所示的代碼實(shí)現(xiàn),也即服務(wù)器可在主界面提供一鍵停止服務(wù)按鈕,當(dāng)檢測到開發(fā)人員觸發(fā)一鍵停止服務(wù)按鈕時(shí),則服務(wù)器查詢執(zhí)行測試用例的移動(dòng)終端中當(dāng)前運(yùn)行的至少一個(gè)測試服務(wù),并獲取至少一個(gè)測試服務(wù)的服務(wù)名稱,生成第一服務(wù)列表;之后,基于第一服務(wù)列表,向至少一個(gè)測試服務(wù)發(fā)送停止指令,以使至少一個(gè)測試服務(wù)停止運(yùn)行。當(dāng)至少一個(gè)測試服務(wù)中任一測試服務(wù)停止運(yùn)行后,服務(wù)器便在第一服務(wù)列表中將測試服務(wù)的服務(wù)名稱刪除,生成第二服務(wù)列表。服務(wù)器隨時(shí)檢查第二服務(wù)列表是否為空,若服務(wù)器檢查到第二服務(wù)列表為空,則服務(wù)器完成停止測試服務(wù)的操作;若服務(wù)器檢查到第二服務(wù)列表非空,則服務(wù)器可再次執(zhí)行上述獲取至少一個(gè)測試服務(wù)的服務(wù)名稱,向至少一個(gè)測試服務(wù)發(fā)送停止指令的步驟,直至生成的第二服務(wù)列表為空,完成一鍵停止服務(wù)。

服務(wù)器在執(zhí)行一鍵啟動(dòng)服務(wù)的操作時(shí),可以基于圖2m所示的代碼實(shí)現(xiàn),也即服務(wù)器可在主界面提供一鍵啟動(dòng)服務(wù)按鈕,當(dāng)檢測到開發(fā)人員觸發(fā)一鍵啟動(dòng)服務(wù)按鈕時(shí),則服務(wù)器獲取執(zhí)行測試用例的移動(dòng)終端中的第一測試服務(wù)和第二測試服務(wù),其中,第一測試服務(wù)為移動(dòng)終端中當(dāng)前運(yùn)行的測試服務(wù),第二測試服務(wù)為移動(dòng)終端中當(dāng)前未運(yùn)行的測試服務(wù)。隨后,服務(wù)器向第一測試服務(wù)發(fā)送服務(wù)停止指令,以使第一測試服務(wù)停止運(yùn)行;這樣,當(dāng)服務(wù)器檢測到第一測試服務(wù)停止運(yùn)行后,便可以向第一測試服務(wù)和第二測試服務(wù)發(fā)送啟動(dòng)指令,以使第一測試服務(wù)和第二測試服務(wù)啟動(dòng)運(yùn)行,完成一鍵啟動(dòng)服務(wù)。

本發(fā)明實(shí)施例提供的方法,當(dāng)測試用例執(zhí)行完成后,通過至少一種查找方式在測試用例執(zhí)行完成后的測試頁面上定位預(yù)設(shè)數(shù)目的比對(duì)元素,使得可以根據(jù)多個(gè)比對(duì)元素對(duì)測試頁面進(jìn)行校驗(yàn),而且可以通過多種查找方式對(duì)比對(duì)元素進(jìn)行定位,避免對(duì)測試頁面進(jìn)行校驗(yàn)后得到的校驗(yàn)結(jié)果發(fā)生錯(cuò)誤,提高了準(zhǔn)確性。

在另一個(gè)實(shí)施例中,當(dāng)至少一種查找方式中的第一查找方式未定位到比對(duì)元素,則基于至少一種查找方式中的第二查找方式對(duì)比對(duì)元素進(jìn)行定位,而且例遍至少一種查找方式中的每一種查找方式,直至查找到預(yù)設(shè)數(shù)目的比對(duì)元素,若全部的查找方式均未定位到比對(duì)元素,則測試頁面校驗(yàn)失敗,使得可以根據(jù)多種查找方式確定預(yù)設(shè)數(shù)目的比對(duì)元素,提高了測試頁面校驗(yàn)的準(zhǔn)確性。

在另一個(gè)實(shí)施例中,在僅基于第三查找方式定位比對(duì)元素時(shí),判斷比對(duì)元素是否出現(xiàn)在測試頁面上,當(dāng)定位到比對(duì)元素出現(xiàn)在測試頁面上時(shí),則確定測試頁面校驗(yàn)成功,當(dāng)未定位到比對(duì)元素出現(xiàn)在測試頁面上時(shí),開始等待,若在預(yù)設(shè)時(shí)間內(nèi)定位到比對(duì)元素出現(xiàn)在測試頁面上,則確定測試頁面校驗(yàn)成功,使得在測試用例執(zhí)行存在延時(shí)時(shí),可以更加智能化地在測試頁面上定位比對(duì)元素。

在另一個(gè)實(shí)施例中,對(duì)于不同移動(dòng)終端中不同類型的比對(duì)元素可以設(shè)置不同的查找方式,更加的智能化,使得對(duì)測試頁面的校驗(yàn)更加準(zhǔn)確。

在另一個(gè)實(shí)施例中,當(dāng)測試頁面校驗(yàn)失敗時(shí),可以獲取remote_debug地址,并基于remote_debug地址對(duì)測試頁面校驗(yàn)失敗的移動(dòng)終端進(jìn)行遠(yuǎn)程調(diào)試,無需對(duì)移動(dòng)終端進(jìn)行本地調(diào)試,節(jié)省了大量的人力物力。

圖3a是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)裝置的框圖。參照?qǐng)D3a,該裝置包括元素獲取模塊301,第一定位模塊302,失敗模塊303和成功模塊304。

該元素獲取模塊301,用于當(dāng)測試用例執(zhí)行完成后,獲取預(yù)設(shè)數(shù)目的比對(duì)元素,每個(gè)比對(duì)元素至少包括一個(gè)預(yù)期頁面元素,每個(gè)比對(duì)元素用于確定測試用例執(zhí)行完成后得到的測試頁面是否與預(yù)期頁面一致。

該第一定位模塊302,用于基于頁面元素的至少一種查找方式,在測試頁面上對(duì)預(yù)設(shè)數(shù)目的比對(duì)元素進(jìn)行定位。

該失敗模塊303,用于若至少一種查找方式中任一種查找方式未定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)失敗。

該成功模塊304,用于若至少一種查找方式中任一種查找方式定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)成功。

在另一個(gè)實(shí)施例中,參見圖3b,該第一定位模塊302,包括第一定位子模塊3021和完成子模塊3022。

該第一定位子模塊3021,用于基于至少一種查找方式中的第一查找方式,在測試頁面上定位比對(duì)元素;

該完成子模塊3022,用于若第一查找方式在測試頁面上成功定位比對(duì)元素,則完成對(duì)比對(duì)元素的定位;

該第一定位子模塊3021,還用于若第一查找方式在測試頁面上未定位到比對(duì)元素,則基于至少一種查找方式中的第二查找方式,在測試頁面上定位比對(duì)元素;

該第一定位子模塊3021,還用于分別執(zhí)行至少一種查找方式,直至定位到比對(duì)元素。

在另一個(gè)實(shí)施例中,參見圖3c,該裝置還包括第二定位模塊305。

第二定位模塊305,用于若至少一種查找方式僅為第三查找方式,則基于第三查找方式,在測試頁面上定位預(yù)設(shè)數(shù)目的比對(duì)元素;

該成功模塊304,還用于若在預(yù)設(shè)時(shí)間內(nèi)定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)成功;

該失敗模塊303,還用于若在預(yù)設(shè)時(shí)間內(nèi)未定位到預(yù)設(shè)數(shù)目的比對(duì)元素,則測試頁面校驗(yàn)失敗。

在另一個(gè)實(shí)施例中,參見圖3d,該第一定位模塊302,還包括第二定位子模塊3023,第三定位子模塊3024,第四定位子模塊3025和第五定位子模塊3026。

該第二定位子模塊3023,用于若比對(duì)元素為安卓android端名稱文本屬性固定不變的頁面元素,則基于資源標(biāo)識(shí)resource-id對(duì)比對(duì)元素進(jìn)行定位;

該第三定位子模塊3024,用于若比對(duì)元素為android端動(dòng)態(tài)生成的可變的頁面元素,則基于路徑語言xpath對(duì)比對(duì)元素進(jìn)行定位;

該第四定位子模塊3025,用于若比對(duì)元素為ios端名稱文本屬性固定不變的頁面元素,則基于可訪問標(biāo)識(shí)accessibility_id或標(biāo)識(shí)符identifier對(duì)比對(duì)元素進(jìn)行定位;

該第五定位子模塊3026,用于若比對(duì)元素為ios端動(dòng)態(tài)生成的可變的頁面元素,則基于ios測試腳本uiautomation對(duì)比對(duì)元素進(jìn)行定位。

在另一個(gè)實(shí)施例中,參見圖3e,該裝置還包括第一訪問模塊306,第二訪問模塊307,地址獲取模塊308和連接模塊309。

該第一訪問模塊306,用于若測試頁面校驗(yàn)失敗,則通過網(wǎng)絡(luò)web訪問直通式處理stf平臺(tái);

該第二訪問模塊307,用于基于stf平臺(tái),訪問控制control界面;

該地址獲取模塊308,用于在control界面獲取遠(yuǎn)程調(diào)試remote_debug地址;

該連接模塊309,用于基于命令提示符,連接remote_debug地址,當(dāng)remote_debug地址連接成功,則進(jìn)行遠(yuǎn)程調(diào)試,完成測試頁面校驗(yàn)。

本公開實(shí)施例提供的裝置,當(dāng)測試用例執(zhí)行完成后,通過至少一種查找方式在測試用例執(zhí)行完成后的測試頁面上定位預(yù)設(shè)數(shù)目的比對(duì)元素,使得可以根據(jù)多個(gè)比對(duì)元素對(duì)測試頁面進(jìn)行校驗(yàn),而且可以通過多種查找方式對(duì)比對(duì)元素進(jìn)行定位,避免對(duì)測試頁面進(jìn)行校驗(yàn)后得到的校驗(yàn)結(jié)果發(fā)生錯(cuò)誤,提高了準(zhǔn)確性。

在另一個(gè)實(shí)施例中,當(dāng)至少一種查找方式中的第一查找方式未定位到比對(duì)元素,則基于至少一種查找方式中的第二查找方式對(duì)比對(duì)元素進(jìn)行定位,而且例遍至少一種查找方式中的每一種查找方式,直至查找到預(yù)設(shè)數(shù)目的比對(duì)元素,若全部的查找方式均未定位到比對(duì)元素,則測試頁面校驗(yàn)失敗,使得可以根據(jù)多種查找方式確定預(yù)設(shè)數(shù)目的比對(duì)元素,提高了測試頁面校驗(yàn)的準(zhǔn)確性。

在另一個(gè)實(shí)施例中,在僅基于第三查找方式定位比對(duì)元素時(shí),判斷比對(duì)元素是否出現(xiàn)在測試頁面上,當(dāng)定位到比對(duì)元素出現(xiàn)在測試頁面上時(shí),則確定測試頁面校驗(yàn)成功,當(dāng)未定位到比對(duì)元素出現(xiàn)在測試頁面上時(shí),開始等待,若在預(yù)設(shè)時(shí)間內(nèi)定位到比對(duì)元素出現(xiàn)在測試頁面上,則確定測試頁面校驗(yàn)成功,使得在測試用例執(zhí)行存在延時(shí)時(shí),可以更加智能化地在測試頁面上定位比對(duì)元素。

在另一個(gè)實(shí)施例中,對(duì)于不同移動(dòng)終端中不同類型的比對(duì)元素可以設(shè)置不同的查找方式,更加的智能化,使得對(duì)測試頁面的校驗(yàn)更加準(zhǔn)確。

在另一個(gè)實(shí)施例中,當(dāng)測試頁面校驗(yàn)失敗時(shí),可以獲取remote_debug地址,并基于remote_debug地址對(duì)測試頁面校驗(yàn)失敗的移動(dòng)終端進(jìn)行遠(yuǎn)程調(diào)試,無需對(duì)移動(dòng)終端進(jìn)行本地調(diào)試,節(jié)省了大量的人力物力。

關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。

圖4是根據(jù)一示例性實(shí)施例示出的一種頁面校驗(yàn)的裝置400的框圖。例如,裝置400可以被提供為一服務(wù)器。參照?qǐng)D4,裝置400包括處理組件422,其進(jìn)一步包括一個(gè)或多個(gè)處理器,以及由存儲(chǔ)器432所代表的存儲(chǔ)器資源,用于存儲(chǔ)可由處理組件422的執(zhí)行的指令,例如應(yīng)用程序。存儲(chǔ)器432中存儲(chǔ)的應(yīng)用程序可以包括一個(gè)或一個(gè)以上的每一個(gè)對(duì)應(yīng)于一組指令的模塊。此外,處理組件422被配置為執(zhí)行指令,以執(zhí)行上述頁面校驗(yàn)方法。

裝置400還可以包括一個(gè)電源組件426被配置為執(zhí)行裝置400的電源管理,一個(gè)有線或無線網(wǎng)絡(luò)接口450被配置為將裝置400連接到網(wǎng)絡(luò),和一個(gè)輸入輸出(i/o)接口458。裝置400可以操作基于存儲(chǔ)在存儲(chǔ)器432的操作系統(tǒng),例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或類似。

本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。

應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鄯善县| 华阴市| 泰兴市| 从化市| 南康市| 南皮县| 县级市| 漳浦县| 西林县| 同德县| 高安市| 龙门县| 昌宁县| 温泉县| 大方县| 道孚县| 白沙| 行唐县| 拉萨市| 临桂县| 霍林郭勒市| 桦南县| 深泽县| 左权县| 定边县| 彭泽县| 那曲县| 永靖县| 虎林市| 淮安市| 武宁县| 呼伦贝尔市| 宣城市| 如皋市| 霍城县| 罗定市| 唐山市| 元朗区| 临沭县| 棋牌| 宁阳县|