亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于Android多瀏覽器內(nèi)核的自動化測試方法與流程

文檔序號:11216191閱讀:956來源:國知局
一種基于Android多瀏覽器內(nèi)核的自動化測試方法與流程

本發(fā)明涉及android移動應用研發(fā)及軟件測試領域,尤其涉及一種基于android多瀏覽器內(nèi)核的自動化測試方法。



背景技術:

隨著移動互聯(lián)網(wǎng)的高度普及、html5規(guī)范標準的確立和技術成熟,以及各終端設備硬件性能和瀏覽器內(nèi)核的日趨發(fā)展,基于html5的webapp或微信公眾號微網(wǎng)站及微服務已經(jīng)成為移動互聯(lián)網(wǎng)應用的重要組成部分。如今,html5化的webapp呈現(xiàn)出易于開發(fā)、迭代迅速、易于傳播等特性,已經(jīng)被廣泛應用于移動電商、移動辦公、新聞資訊、視頻游戲等各個領域。但由于移動互聯(lián)網(wǎng)用戶的手機終端各種個性化需求存在,導致瀏覽和使用webapp的瀏覽器(包括微信、微博等應用內(nèi)嵌瀏覽器)呈現(xiàn)多樣性,也就導致了一系列的因瀏覽器內(nèi)核不同出現(xiàn)不同程度的ui及功能上的兼容性問題。android因其開源開放的生態(tài),其兼容性問題表現(xiàn)得尤為凸顯,而ios研發(fā)生態(tài)和體系較為封閉,webapp基本都是基于safari瀏覽器和對應內(nèi)核,兼容性問題呈現(xiàn)較少。所以,本發(fā)明旨在找到一種行之有效的方法,集成適用于android系統(tǒng)的不同瀏覽器內(nèi)核,通過javascript腳本語言提供測試腳本,僅在單機設備上,即可集中完成多瀏覽器內(nèi)核下的兼容性自動化測試。



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

針對現(xiàn)有技術存在的不足之處,本發(fā)明的目的在于提供一種基于android多瀏覽器內(nèi)核的自動化測試方法,該方法包括android系統(tǒng)上主流四種主流瀏覽器內(nèi)核即webkit、blink、chromium、騰訊x5的集成,以滿足基本全覆蓋android系統(tǒng)的自帶瀏覽器、第三方瀏覽器、微信微博內(nèi)嵌瀏覽器等平臺上發(fā)布的webapp的自動化兼容性測試。

本發(fā)明的目的通過下述技術方案實現(xiàn):

一種基于android多瀏覽器內(nèi)核的自動化測試方法,其方法步驟如下:

步驟a、在集成adt、androidstudio或intellijidea的android開發(fā)環(huán)境下創(chuàng)建工程,在該工程中分別引入webkit、blink、chromium、騰訊x5四種不同的瀏覽器內(nèi)核的官方sdk,該官方sdk包括jar包、so庫;

步驟b、在android開發(fā)環(huán)境或步驟a的工程中構造superwebview基類,并引入這四種內(nèi)核的webview類作為成員變量;

步驟c、設置webview類的成員變量為coretype,用以標記當前測試對象使用的瀏覽器內(nèi)核類型,coretype包含core_webkit、core_blink、core_chromium、core_x5共四個常量;

步驟d、結(jié)合switch分支邏輯判斷,重寫superwebview基類構造函數(shù)和瀏覽器常用函數(shù);

步驟e、在步驟d的構造函數(shù)中做好相應的初始化配置,以開啟瀏覽器對象對javascript的支持;

步驟f、為superwebview基類編寫starttest(url,scripts[])函數(shù),以針對待測地址url,按照scripts[]數(shù)組的順序地執(zhí)行測試腳本;

步驟g、將待測webapp以域名形式發(fā)布至內(nèi)網(wǎng)或公網(wǎng)中,通過url即可訪問;

步驟h、利用javascript腳本語言,為待測webapp編寫若干后綴名*.js的測試腳本,其核心方法是利用包括模擬點擊、模擬滾動、模擬輸入、模擬延時、模擬循環(huán)方法對待測webapp頁面的dom元素進行模擬操作測試;

步驟i、通過if-else條件判斷語句,判斷是否達到腳本最終預期運行狀態(tài);同時,結(jié)合webview記錄報錯日志,編寫superwebview的testjudger模塊,通過該testjudger模塊最終形成通過率及錯誤率的報告。

本發(fā)明較現(xiàn)有技術相比,具有以下優(yōu)點及有益效果:

本發(fā)明包括android系統(tǒng)上主流四種主流瀏覽器內(nèi)核即webkit、blink、chromium、騰訊x5的集成,以滿足基本全覆蓋android系統(tǒng)的自帶瀏覽器、第三方瀏覽器、微信微博內(nèi)嵌瀏覽器等平臺上發(fā)布的webapp的自動化兼容性測試。

附圖說明

圖1是本發(fā)明的superwebview基類的結(jié)構示意圖;

圖2是本發(fā)明的自動化測試流程示意圖。

具體實施方式

下面結(jié)合實施例對本發(fā)明作進一步地詳細說明:

實施例

如圖1、圖2所示,一種基于android多瀏覽器內(nèi)核的自動化測試方法,android多內(nèi)核自動化測試方法是用android原生代碼開發(fā)一個能兼容不同瀏覽器內(nèi)核的superwebview基類,并讓其繼承webview的所有常用操作,通過coretype變量標記當前測試內(nèi)核類型,在此基礎上擴展提供starttest(url,scripts[])方法來提供針對域名形式發(fā)布的webapp在scripts[]測試腳本集合上的兼容性測試,而scripts[]的測試腳本是由若干后綴名*.js的基于javascript腳本語言編寫的自動化測試用例腳本。其具體方法步驟如下:

步驟a、在集成adt、androidstudio或intellijidea的android開發(fā)環(huán)境下創(chuàng)建工程,在該工程中分別引入webkit、blink、chromium、騰訊x5四種不同的瀏覽器內(nèi)核的官方sdk,該官方sdk包括jar包、so庫;

步驟b、在android開發(fā)環(huán)境或步驟a的工程中構造superwebview基類,并引入這四種內(nèi)核的webview類作為成員變量;

步驟c、設置webview類的成員變量為coretype,用以標記當前測試對象使用的瀏覽器內(nèi)核類型,coretype包含core_webkit、core_blink、core_chromium、core_x5共四個常量;

步驟d、結(jié)合switch分支邏輯判斷,重寫superwebview基類構造函數(shù)和瀏覽器常用函數(shù);

步驟e、在步驟d的構造函數(shù)中做好相應的初始化配置,以開啟瀏覽器對象對javascript的支持;

步驟f、為superwebview基類編寫starttest(url,scripts[])函數(shù),以針對待測地址url,按照scripts[]數(shù)組的順序地執(zhí)行測試腳本(其具體流程請見圖2);

步驟g、將待測webapp以域名形式發(fā)布至內(nèi)網(wǎng)或公網(wǎng)中,通過url即可訪問;

步驟h、利用javascript腳本語言,為待測webapp編寫若干后綴名*.js的測試腳本,其核心方法是利用包括模擬點擊、模擬滾動、模擬輸入、模擬延時、模擬循環(huán)方法對待測webapp頁面的dom元素進行模擬操作測試;

步驟i、通過if-else條件判斷語句,判斷是否達到腳本最終預期運行狀態(tài);同時,結(jié)合webview記錄報錯日志,編寫superwebview的testjudger模塊,通過該testjudger模塊最終形成通過率及錯誤率的報告。

superwebview基類的具體實現(xiàn)方法如下:

⑴定義枚舉類型,包括四個靜態(tài)常量:

core_webkit=0;//webkit內(nèi)核類型

core_blink=1;//blink內(nèi)核類型

core_chromium=2;//chromium內(nèi)核類型

core_x5=3;//騰訊x5內(nèi)核類型

⑵申明當前瀏覽器內(nèi)核類型標識變量coretype,并完成初始化定義:

coretype=core_webkit;

⑶提供加載url方法,其接口原型為:

publicvoidloadurl(stringurl);

⑷提供開始自動化測試方法,其接口原型為:

publicvoidstarttest(stringurl,strings[]scrips);

⑸實現(xiàn)測試腳本加載器scriptsloader{}

⑹實現(xiàn)測試判斷器testjudger{}

測試用例腳本的編寫方法可以具體概括為:

模擬點擊object.click(),以id為targetobject的按鈕為例:

document.getelementbyid(“targetobject”).click();

模擬滾動window.scrollto(),以滾動到1/2文檔高度為例:

window.scrollto(0,document.body.offsetheight/2);

模擬輸入object.innerhtml=xxx,以id為targetedit的輸入框為例:

document.getelementbyid(“targetedit”).innerhtml=”代輸入數(shù)據(jù)”;

模擬延時settimeout(執(zhí)行func,延時),以延時1000ms為例:

settimeout(testfunc(),1000);

模擬循環(huán)setinterval(執(zhí)行func,間隔),以間隔1000ms為例:

setinterval(testfunc(),1000);

其對于清除循環(huán)的方法為:clearinterval()。

scriptsloader的具體實現(xiàn)方法為:

將測試用例腳本的編寫方法中所編寫的測試用例腳本放置在手機內(nèi)置或外置sd存儲卡中,并給出其文件存儲路徑,將其以string[]scripts的參數(shù)形式傳給scriptsloader,由scriptsloader開啟一個線程thread,按行分別取出javascript語句,假設句柄字串為handlestr1、handlestr2、handlestr3…,并以間隔1000ms,通知主線程,利用loadurl(“javascript:”+handlestr)的方式執(zhí)行,直至當前腳本句柄全部完成為止,又繼續(xù)循環(huán)執(zhí)行下一個腳本。待所有腳本執(zhí)行完畢,線程結(jié)束。

testjudger的具體實現(xiàn)方法為:

webview內(nèi)在的html、css、javascript解釋器,在運行出錯時,會自動反饋錯誤異常句柄,testjudger主要需要攔截異常事件,并分別統(tǒng)計每個測試腳本的異常個數(shù)和具體異常代碼行。若測試腳本無法完整執(zhí)行,則在報告提示正確執(zhí)行到的腳步句柄行數(shù)(handlen);若測試腳本能夠完整執(zhí)行,則統(tǒng)計整個腳本完整執(zhí)行的耗時。結(jié)合javascript的if-else條件判斷語句,通過是否到達預期頁面,或出現(xiàn)預期dom元素結(jié)果,來判別是否完正確執(zhí)行完成測試腳本。

核心指標如下:

運行完整度(100%):正確運行行數(shù)/腳本完整行數(shù)。

錯誤數(shù)(個):由webview內(nèi)核截獲的javascript報錯數(shù)。

錯誤日志:由webview返回的異常代碼段及錯誤異常原因+測試用例腳本異常行號。

以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1