• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Android自動化測試學習路線

    發表于:2017-08-03來源:蟲師作者:蟲師點擊數: 標簽:自動化測試
    Android里面測試相關的工具和框架太多了。你應該從以下幾個方面入手。

     

    Android里面測試相關的工具和框架太多了。你應該從以下幾個方面入手。

    編程語言的選擇

     

    如果你要學習的是Appium的話,當然它是移動自動化測試領域最流主流的工具之一,同時支持iOS和Android兩大平臺,最主要是還支持多種編程語言(Java/Python/C#/JavaScript…等),這是它能得到廣泛使用的原因之一。如果你只想做APP UI層的自動化測試,那么,你完全可以使用自己熟悉的編程語言來做Appium自動化測試。

    我發現用Python + Appium的人非常多。這主要是因為Python簡單,在測試圈有廣泛的應用基礎。不過,這里我推薦使用Java,雖然我個人最熟悉的是Python。這里選擇Java的主要原因是因為,我對Android自動化測試的學習不想只停留在UI層,我還想知道Android的單元測試怎么做,怎么調用接口?甚至是CPU,內存的調度是怎樣的。

    所以,我需要知道Android應用是怎么被開發出來的。Android應用的開發目前只能用Java,這就是我選擇Java的理由。

    從哪里開始入手

     

    知道了我的選擇,肯定也知道我會從哪里下手了。先不要著急去搭建Appium/Robotium這樣的自動化能測試環境。建議先把Android開發環境搭建起來,參考Android官方文檔,把上面的一個demo跑起來。這樣你就會了解到Android開發的基本流程,并認識到你要操作的按鈕、輸入框等其實是由布局文件定義的。對Android開發越熟悉,自動化測試才能做得更好。

    Android測試框架

    這就是Android測試相關的一些工具和框架??吹竭@些時我內心是崩潰! 這么多怎么學?它們都是啥,我到底該學啥?

    官方文檔中測試庫支持主要介紹了 AndroidJUnitRunner、Espresso  和  UI Automator 。

    AndroidJUnitRunner類是一個JUnit運行器,可以在你設備上運行JUnit3或者JUnit4風格的測試代碼。并且同時支持Espresso 和UIAutomator測試運行。所以,AndroidJUnitRunner不是一個單獨的測試工具,它只是一個運行Junit單元測試的組件。(其實,這里又隱含了一個前提條件,你需要知道Junit單元測試框架。)

    Espresso是一個非常好的白盒風格的自動化測試框架,它與測試目標運行在同一個APP下。你可以把Espresso看作是Android的單元測試框架。

    UI Automator測試框架非常適合寫黑盒box-style自動化測試,測試代碼不依賴于目標應用程序的內部實現細節。所以,UI Automator是Android的UI測試框架。

    先把以上三個工具搞明白,那么你就可以做Android 單元/UI自動化測試了。

    Appium學習

     

    為什么還要學習Appium?因為它流行嘛,支持多平臺(Android/iOS)、多語言、混合應用(原生代碼和Web內容交互);社區活躍,資料豐富。出門打怪升級必備技能。

    Appium的學習分三部分:

    * 編程語言(Java/Python/Ruby...)

    * Appium API(Android APP界面元素定位與操作)

    * 單元測試框架(測試用例的組織與執行,以及生成測試報告)

    其實,所有自動化測試技術的學習都是一樣的。把Appium換成Selenium,那么就是Web UI自動化測試的學習內容了。我們應該是花費更多力氣學好的是編程語言和單元測試框架。這兩個搞定了,再學習新的領域的自動化技術才能事半功倍。

    原文轉自:http://www.cnblogs.com/fnng/p/7264195.html

    ...
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>