qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          初窺chromium中的自動化測試設(shè)計

          性能方面的項目有:

            test_support_ui_project:

            提供一些UI的基本操作(功能)和性能相關(guān)內(nèi)容,主要是性能,收集幾種最終要的性能數(shù)據(jù);

            realibility_test_project:

            封裝test_support_ui中的性能測試內(nèi)容,對chrome進行穩(wěn)定性測試,包括穩(wěn)定性測試,crash收集,報告等;

            執(zhí)行相關(guān)有:

            pyautolib_project:

            chrome相關(guān)的pythonUI測試框架,將uitest的C++導(dǎo)成python然后進行執(zhí)行;

            webdriver_project/chromedriver_project:

            為外部網(wǎng)站測試提供支持,比如selenium,webdriver等;

            還有三個我覺得不錯的和自動化有關(guān)的部分:

            breakpad的引入:

            crash的收集報告框架,在測試框架中引用它,對測試過程中出現(xiàn)的crash進行dump收集,并統(tǒng)一分析;

            IAccessible的實現(xiàn):

            使用代理方式在views庫中封裝IAccessible的接口,共外部進行界面相關(guān)的獲??;實現(xiàn)方式和我在MASS實現(xiàn)中提到的一樣,繼承統(tǒng)一基類,注冊,然后分別實現(xiàn)自己的UI支持;

            memory_watch:

            chrome中的內(nèi)存檢監(jiān)測小工具。

            大概先看了一個雛形,感覺里面的自動化架構(gòu)設(shè)計很漂亮,雖然涉及到的部分很多,也很碎,但是看樣子chrome都已經(jīng)分而治之了。界面的功能和 性能,頁面的功能和性能,js的功能和性能,后臺數(shù)據(jù)的獲取和安全,頁面的渲染,插件的穩(wěn)定,性能數(shù)據(jù)的獲取和分析,dump的采集和報告,基本上每一個 部分都能深入去了解。有時間了慢慢的再研究一下。

          chromium開源項目部分的自動化測試,對于學(xué)習(xí)自 動化測試很有幫助,自動化能涉及到的部分,或多或少都有覆蓋。對于像瀏覽器這樣的產(chǎn)品,尤其chrome(chromium)這樣的新概念瀏覽器,投入在 里面的自動化測試,力度非常大。好不容易趕上一個不加班的周末,簡單的研究了一下;對一個產(chǎn)品來說項目工程不小,只能按自己的理解去關(guān)注自動化的部分。

            白盒部分:

            和很多國外的產(chǎn)品一樣,白盒測試部分比重很大,整個chromium中的自動化測試,白盒部分超過25%或者更多(沒有具體計算這個數(shù)字),白盒測試大概可以分為兩個類別,單元測試和交互測試,它們的測試框架不同,分別是gtest和google mock。

            核心工程:

             核心自動化工程是automation,在chromium/src/chrome/test/下面,包含大部分自動化測試的代理部分,所有內(nèi)部測試通 過ENABLE_AUTOMATION進行編譯的開關(guān)。這個代理架構(gòu)上,是兩個UI相關(guān)的的架構(gòu),一個是對外的chrome界面的自動化操作,一個是內(nèi)部 view的界面庫測試。代理的提供者在其他的自動化項目中,automation下面的代理和非代理部分都有各自的提供者。chromium中的自動化其 實是一套很不錯的C++自動化架構(gòu),準(zhǔn)確來說不是一套,但是大思路一致。其中:

            automation_proxy.h/.cc:

            自動化的總代理,用來和提供者automation_provider.h/.cc進行信息的交互,并且包含其他具體代理;代理是ipc的方式;

            browser_proxy.h/.cc:

            browser的代理,主要用來和browser的automation_provider進行交互,測試chrome界面的主要部分,包括tab的處理等;

            tab_proxy.h/.cc:

            tab的代理,用來和tab的provider進行交互,測試的應(yīng)該是固定tab頁內(nèi)的js相關(guān);

            automation_json_request.h/.cc:

            Json格式的數(shù)據(jù)傳輸,很多數(shù)據(jù)都是Json方式傳輸?shù)模?/p>

            window_proxy.h/.cc:

            同樣的道理,window相關(guān)的代理。

            主要自動化測試工程分為三類,功能、性能和執(zhí)行,其中:

            功能包含:

            chrome_frame_project:

            chrome frame相關(guān),主要是插件方面;

            browser_project:

            chrome主界面的測試相關(guān);

           性能方面的項目有:

            test_support_ui_project:

            提供一些UI的基本操作(功能)和性能相關(guān)內(nèi)容,主要是性能,收集幾種最終要的性能數(shù)據(jù);

            realibility_test_project:

            封裝test_support_ui中的性能測試內(nèi)容,對chrome進行穩(wěn)定性測試,包括穩(wěn)定性測試,crash收集,報告等;

            執(zhí)行相關(guān)有:

            pyautolib_project:

            chrome相關(guān)的pythonUI測試框架,將uitest的C++導(dǎo)成python然后進行執(zhí)行;

            webdriver_project/chromedriver_project:

            為外部網(wǎng)站測試提供支持,比如selenium,webdriver等;

            還有三個我覺得不錯的和自動化有關(guān)的部分:

            breakpad的引入:

            crash的收集報告框架,在測試框架中引用它,對測試過程中出現(xiàn)的crash進行dump收集,并統(tǒng)一分析;

            IAccessible的實現(xiàn):

            使用代理方式在views庫中封裝IAccessible的接口,共外部進行界面相關(guān)的獲??;實現(xiàn)方式和我在MASS實現(xiàn)中提到的一樣,繼承統(tǒng)一基類,注冊,然后分別實現(xiàn)自己的UI支持;

            memory_watch:

            chrome中的內(nèi)存檢監(jiān)測小工具。

            大概先看了一個雛形,感覺里面的自動化架構(gòu)設(shè)計很漂亮,雖然涉及到的部分很多,也很碎,但是看樣子chrome都已經(jīng)分而治之了。界面的功能和 性能,頁面的功能和性能,js的功能和性能,后臺數(shù)據(jù)的獲取和安全,頁面的渲染,插件的穩(wěn)定,性能數(shù)據(jù)的獲取和分析,dump的采集和報告,基本上每一個 部分都能深入去了解。有時間了慢慢的再研究一下。

          posted on 2013-05-24 11:47 順其自然EVO 閱讀(396) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2013年5月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 湖口县| 长武县| 清丰县| 昭平县| 临洮县| 苏州市| 鹿泉市| 河间市| 福州市| 莆田市| 凌海市| 鄂伦春自治旗| 南陵县| 临泉县| 鸡西市| 淄博市| 交口县| 阳原县| 景洪市| 新泰市| 苗栗县| 麻栗坡县| 隆回县| 香港 | 大邑县| 山西省| 鹤山市| 达拉特旗| 宁南县| 肥乡县| 剑阁县| 广灵县| 道孚县| 历史| 宁城县| 龙南县| 梧州市| 股票| 北宁市| 慈溪市| 安吉县|