Android 手機自動化測試工具有哪幾種?

PS:本文轉(zhuǎn)載自黑馬測試知乎高贊文章
鏈接:https://www.zhihu.com/question/19716849/answer/2930155323

為了讓大家看完文章后能有獲得感,我先將這篇文章大綱先列出下:
1、Android手機自動化測試工具,常用的有這7種
2、化繁為簡,補充移動端自動化測試工具
3、這么多工具,工作中該如何選擇
4、掌握自動化測試工具的學(xué)習(xí)建議

一、Android手機自動化測試工具,常用的有這7種:

1、首推Appium:
推薦理由:功能非常強大的移動端自動化測試框架,還免費
下載鏈接:Appium: Mobile App Automation Made Awesome.
Appium是一種被廣泛使用的自動化測試工具,它支持iOS和Android平臺。
Appium基于WebDriver協(xié)議,可以使用多種編程語言編寫測試腳本,例如:Java,Python和Ruby。
Appium支持多種測試場景,如:Appium可以用于本地和遠(yuǎn)程測試,包括UI測試、功能測試、性能測試等,
Appium可以集成各種性能測試工具,如:JMeter、LoadRunner和Gatling。并對應(yīng)用程序進(jìn)行負(fù)載測試、壓力測試和穩(wěn)定性測試。
Appium支持多種應(yīng)用程序類型,包括原生應(yīng)用程序,混合應(yīng)用程序和移動Web應(yīng)用程序。
Appium支持多種設(shè)備,包括真機和模擬器。
Appium可以免費使用。

對于測試人員而言,使用Appium還有一些比較顯著的優(yōu)點,例如:
1.單一的測試腳本代碼可以適用于多個設(shè)備和系統(tǒng),大大減少了測試代碼的重復(fù);
2.靈活的斷言處理,可以通過多個方式確認(rèn)UI元素是否存在,并且可以針對性地測試一些異步UI操作;
3.可以支持多種編程語言,如Java,Python,Ruby等等;
4.API簡單易用,問題也很少,因此學(xué)習(xí)成本較低。
再多說兩句:
Appium作為一款功能非常強大的移動端自動化測試框架,它可以大大提高測試效率,簡化測試開發(fā)流程,同時還能夠解決許多測試過程中的痛點:
例如:
在原生應(yīng)用測試中,它可以使用同一套測試腳本在不同的設(shè)備上進(jìn)行測試,無需針對不同的設(shè)備編寫不同的測試腳本,極大地簡化了測試流程。
在混合應(yīng)用測試中,它可以直接使用Webdriver操作WebView中的元素,與傳統(tǒng)WebView測試相比,節(jié)省了許多時間和精力。此外,在測試過程中,還可以針對性地處理一些彈出窗口、多任務(wù)處理和滑動操作等問題。

2、安卓手機其他自動化測試工具推薦
1)Airtest

推薦理由:免費,支持多平臺,提供圖形界面,基于python語言
下載鏈接:https://github.com/AirtestProject/Airtest
Airtest是一款基于Python的、跨平臺的UI自動化測試工具,支持Android和iOS平臺。
Airtest提供了一個圖形化的界面,可以方便地進(jìn)行測試腳本的編寫和調(diào)試。
Airtest支持多種測試場景,包括UI測試、功能測試、性能測試等。
Airtest免費,可以免費使用。
2)Robotium ?:

推薦理由:專門針對Android原生程序,可模擬用戶在Android應(yīng)用程序中的各種操作,免費
下載鏈接:https://github.com/RobotiumTech/robotium
一個基于JUnit的Android自動化測試工具,是一種適用于Android平臺的自動化測試工具,它專門針對Android原生應(yīng)用程序。可以用于黑盒和白盒測試。
Robotium支持多種測試場景,包括UI測試、功能測試等。
Robotium免費,可以免費使用。
作為開源自動化測試工具,Robotium 可能是最靈活的 Android 測試工具。它可以模擬用戶在Android應(yīng)用程序中的各種操作,例如:點擊按鈕,輸入文本和滾動屏幕等。
它提供了簡單易用的API,可以方便地編寫測試腳本。
但它有一些限制,如:無法管理多個活動和測試執(zhí)行性能極慢,但它支持 Android 的所有版本(甚至子版本)。
3)Selendroid :

推薦理由:非常適合執(zhí)行本機和混合移動測試,同時支持真實設(shè)備和模擬器
下載鏈接:https://github.com/selendroid/selendroid
Selendroid是一個非常通用的 Android 開源自動化測試工具。它支持Android原生應(yīng)用程序和移動Web應(yīng)用程序。
它基于Selenium WebDriver,可以使用多種編程語言編寫測試腳本。
Selendroid 帶有一個內(nèi)置的檢查器工具,可以檢查當(dāng)前和過時的 Android 版本的 UI 元素。此外,它對本機應(yīng)用程序和混合應(yīng)用程序都遵循相同的概念。
Selendroid可以在多個Android設(shè)備上并行運行測試,提高測試效率。
Selendroid 可以同時在多個設(shè)備上運行測試。
4)UI Automator

推薦理由:Google開發(fā),免費使用
下載鏈接: https://developer.android.com/training/testing/ui-testing/uiautomator-testing.html
UI Automator是一種Google開發(fā)的自動化測試工具,它可以用于Android原生應(yīng)用程序和系統(tǒng)UI的自動化測試。
UI Automator提供了用于定位和操作Android應(yīng)用程序界面元素的API,可以編寫基于行為的測試腳本。UI Automator也支持多個設(shè)備的并行測試。
谷歌對其進(jìn)行了擴展,它可以與各種 Android 應(yīng)用程序進(jìn)行交互。同時可以使用UI Automator框架提供的一些方便的API,來對Android應(yīng)用進(jìn)行一系列的自動化測試操作:如點擊、滑動、鍵盤輸入。
該工具還提供了一個 UI Automator Viewer 選項,讓我們可以掃描和研究移動設(shè)備中的 UI 組件,快速進(jìn)行UI自動化測試。目前UI Automator已經(jīng)開源,可以免費使用。
5)Espresso

推薦理由:Google開發(fā),專門針對Android應(yīng)用程序的UI測試
下載鏈接:https://developer.android.com/training/testing/espresso/
Espresso是由Google開發(fā)的自動化測試工具,它專門針對Android應(yīng)用程序的UI測試。
Espresso易于調(diào)整,該工具可以處理應(yīng)用程序和測試的自動同步;大多數(shù)開發(fā)人員發(fā)現(xiàn) Espresso 非常有效,因為它具有簡單的 API 和靈活性范圍,可以編寫基于行為的測試腳本。
同時還支持異步操作,可以在測試過程中處理異步任務(wù),提高測試效率。
6)MonkeyRunner:

推薦理由:非常適合功能測試,回歸測試,可用python編寫腳本
下載鏈接:https://developer.android.com/studio/test/monkeyrunner/index.html
MonkeyRunner 是一款廣受歡迎的測試工具,因為它非常適合功能測試、回歸測試,并為 Android 應(yīng)用程序提供多設(shè)備控制。我們可以用 Python 編寫測試腳本。
事實上,MonkeyRunner 利用了 Jython(為python提供了在JVM上運行的好處,并可以訪問用Java編寫的類),來讓 MonkeyRunner API 與 Android 框架交互。該工具能夠運行測試,并將其輸出屏幕截圖,與一組預(yù)期正確的屏幕截圖進(jìn)行比較。
介紹了這么多款安卓自動化工具,小心臟是不是已經(jīng)扛不住了,接下來我們化繁為簡,講講自動化工具的原理,下面就講。

二、化繁為簡,介紹移動端常見自動化測試工具,原理介紹

移動端自動化測試工具的原理:
通過編程語言和UI交互模擬,來實現(xiàn)自動化測試。并通過元素定位、測試用例管理、并發(fā)測試、自動化腳本擴展性和自動化測試集成等功能,來提高測試效率和測試質(zhì)量。
所以,移動端自動化測試工具通常具備如下功能:
1. 基于編程語言
通過編寫程序來實現(xiàn)自動化測試。通常使用的編程語言有Java、Python、Ruby等。
2. UI交互模擬
模擬用戶與應(yīng)用程序的交互,包括點擊、輸入、滑動、拖拽等UI操作。
3. 元素定位
通過元素定位來定位應(yīng)用程序中的控件元素,如:文本框、按鈕、下拉框等。常用的元素定位方法有ID、名稱、標(biāo)簽、CSS選擇器、XPath等。
4. 測試用例管理
自動化測試工具可以管理和執(zhí)行測試用例,包括測試用例編寫、執(zhí)行、管理、報告等。
5. 并發(fā)測試
并發(fā)執(zhí)行測試用例,提高測試效率。通過多線程、分布式等技術(shù),可以實現(xiàn)并發(fā)測試。
6. 自動化腳本擴展性
自動化測試工具通常具有良好的擴展性和靈活性,可以根據(jù)需求添加或修改測試腳本。
7. 自動化測試集成
自動化測試工具可以集成到持續(xù)集成/持續(xù)交付流程中,實現(xiàn)自動化測試和持續(xù)集成的無縫銜接。
了解到他們的共性后,我們再來結(jié)合工作,聊聊不同的測試場景下,該如何選擇工具,下面就講。

三、這么多工具,工作中該如何選擇

1、看測試程序的類型
1)需要測試原生應(yīng)用程序,
可以選擇Robotium或Espresso。
Robotium提供了一個簡單易用的API,可以模擬用戶在應(yīng)用程序中的各種操作。
Espresso是一種專門針對Android應(yīng)用程序的UI測試框架,提供了一組簡單易用的API,可以編寫基于行為的測試腳本。
2)需要測試混合應(yīng)用程序測試
可以選擇Appium或Selendroid。
Appium可以用于本地和遠(yuǎn)程測試,支持多種應(yīng)用程序類型,包括原生應(yīng)用程序,混合應(yīng)用程序和移動Web應(yīng)用程序。
Selendroid支持Android原生應(yīng)用程序和移動Web應(yīng)用程序的自動化測試,可以使用多種編程語言編寫測試腳本。
3)需要測試移動Web應(yīng)用程序測試
可以選擇Appium或Selendroid。
Appium可以使用多種編程語言編寫測試腳本,可以用于本地和遠(yuǎn)程測試。
Selendroid支持多種瀏覽器,包括Chrome和Firefox,可以模擬用戶在移動Web應(yīng)用程序中的各種操作。
4)需要多設(shè)備測試
可以選擇Appium或Selendroid。
Appium可以在多個設(shè)備上并行運行測試,提高測試效率。
Selendroid也支持在多個設(shè)備上并行運行測試,可以通過Selenium Grid管理多個設(shè)備。
5)需要移動應(yīng)用性能測試
可以使用Appium、Robotium和Espresso
這3款軟件都可以用于性能和穩(wěn)定性測試。
首先他們都支持多種編程語言和測試框架。
其次還可以集成各種性能測試工具,如:JMeter、LoadRunner和Gatling。可以根據(jù)不同測試時場景,對app進(jìn)行性能和穩(wěn)定性測試。如:負(fù)載測試、壓力測試和穩(wěn)定性測試。
2、看測試的階段
1)單元測試
可以使用Robotium自動化測試工具
單元測試是針對應(yīng)用程序中的最小可測試單元進(jìn)行測試的過程,例如:一個方法或一個類。
在單元測試中,可以使用Robotium,模擬應(yīng)用程序的各種情況和輸入數(shù)據(jù),測試應(yīng)用程序的各種功能和方法的正確性、可靠性和性能。
2)集成測試
可以使用Robotium和Espresso自動化測試工具
集成測試是針對應(yīng)用程序中多個模塊或組件之間的交互進(jìn)行測試的過程。
在Android應(yīng)用程序中,可以使用Robotium和Espresso自動化測試工具,來編寫和執(zhí)行集成測試。
在集成測試中,可以測試應(yīng)用程序的各種組件之間的接口和交互的正確性、可靠性和性能。
3) 端到端測試
可以使用Appium進(jìn)行自動化測試
端到端測試是針對app的整個功能和流程進(jìn)行測試的過程。
端到端測試中,可以測試應(yīng)用程序在各種真實場景下的功能、性能和可靠性。在Android應(yīng)用程序中,可以使用Appium進(jìn)行自動化測試,設(shè)計并編寫相關(guān)場景case以執(zhí)行。
4)回歸測試
可使用Robotium、Espresso和Appium自動化測試工具
回歸測試是針對應(yīng)用程序的修改或更新后進(jìn)行的測試,以確保修迭代的功能,不會影響app已有模塊功能和性能。
在Android應(yīng)用程序中,可使用這3類自動化測試工具,進(jìn)行編寫和執(zhí)行回歸測試。

四、掌握自動化測試工具的學(xué)習(xí)建議

1. 熟悉Android測試框架和工具
熟悉Android測試框架和工具,是學(xué)習(xí)Android自動化測試的第一步。例如:掌握Android測試框架的基本概念、原理、用法等,并學(xué)會使用一些常用的Android自動化測試工具,如Appium、Robotium、Espresso等。
推薦視頻 :《0基礎(chǔ)入門移動自動化Appium框架》 ? 密碼:qdto
本視頻b站鏈接:https://www.bilibili.com/video/BV11p4y197HQ
2. 學(xué)習(xí)編程語言
學(xué)習(xí)編程語言是掌握Android自動化測試工具的必要條件之一。建議學(xué)習(xí)Java或Python,因為它們是目前使用最廣泛的編程語言,也是Android自動化測試中常用的語言。
若是精力有限,到底是學(xué)習(xí)java還是python,可以先看這篇文章:
《軟件測試常見問題45-自動化測試語言到底選擇Java還是Python?二者有何區(qū)別?-黑馬程序員技術(shù)交流社區(qū)》http://bbs.itheima.com/thread-505905-1-1.html
若決定先學(xué)python,推薦下面這套視頻:

3. 掌握基本的軟件測試知識
掌握基本的軟件測試知識,可以幫助你更好地理解Android自動化測試的概念和原理,并提高測試質(zhì)量。例如:了解測試計劃、測試用例、缺陷管理等基本測試概念。

4. 學(xué)習(xí)測試自動化框架
測試自動化框架可以幫助你快速編寫測試用例,并實現(xiàn)測試自動化。學(xué)習(xí)測試自動化框架可以讓你更高效地進(jìn)行測試工作,提高測試效率。


5. 閱讀相關(guān)書籍和文章
閱讀相關(guān)書籍和文章可以幫助你了解更多關(guān)于Android自動化測試的知識和經(jīng)驗,從而更好地掌握和使用自動化測試工具。建議閱讀一些經(jīng)典的軟件測試書籍,如《軟件測試實用教程》等。
10本軟件測試相關(guān)書籍已經(jīng)備好,看這里:
集合貼:學(xué)軟件測試所用各種文檔+書籍(八年老測試泣血分享)-10本電子書處于文末http://bbs.itheima.com/thread-514040-1-1.html

6.?實踐
最后,實踐是學(xué)習(xí)和掌握Android自動化測試的關(guān)鍵。建議在實際項目中應(yīng)用所學(xué)知識,不斷嘗試新的測試方法和工具,從實踐中不斷總結(jié)經(jīng)驗,提高自己的測試水平。

另外,自動化測試相關(guān)文章,推薦查看:
《如何從零開始搭建公司自動化測試框架?274 贊同 · 51 評論回答》
https://www.zhihu.com/question/56625870/answer/2429570734
《有什么好的開源自動化測試框架可以推薦?147 贊同 · 11 評論回答》
https://www.zhihu.com/question/19923336/answer/2585952461
《求推薦幾款http接口自動化測試工具?170 贊同 · 17 評論回答》
https://www.zhihu.com/question/32223087/answer/1974065215
《如何進(jìn)行前端自動化測試?112 贊同 · 7 評論回答》
https://www.zhihu.com/question/29922082/answer/2642635207
《國內(nèi)哪些移動 app 開發(fā)團(tuán)隊做了自動化測試?能否介紹一下具體的實現(xiàn)方案?508 贊同 · 41 評論回答》
https://www.zhihu.com/question/20188761/answer/2317740272
《Python 和Java 哪個更適合做自動化測試?184 贊同 · 32 評論回答》
https://www.zhihu.com/question/264353399/answer/2453360401
《關(guān)于職業(yè)規(guī)劃,自動化測試和軟件開發(fā)我該如何選擇?398 贊同 · 34 評論回答》
https://www.zhihu.com/question/268026469/answer/2176945851
《自動化測試發(fā)展前景怎么樣?相比于開發(fā)測試的技術(shù)含量是否偏低?測試人員提升自身競爭力的速度有無開發(fā)快?387 贊同 · 43 評論回答》
https://www.zhihu.com/question/20253813/answer/1605703580

若你是對測試不太了解的測試小萌新,有太多太多對測試的疑惑(前途、薪資、技術(shù)含量、男生是否可以干.....),強烈推薦你觀看《測試小白必看:學(xué)習(xí)軟件測試必問的100個問題,從此貼開始》,相信能掃除掉你心目中90%以上的常見問題。
《100個常見問題鏈接》:http://bbs.itheima.com/thread-507947-1-1.html

最后,為方便大家自學(xué)軟件測試,特意給大家準(zhǔn)備了一份13G的超實用干貨學(xué)習(xí)資源,涉及的內(nèi)容非常全面。
包括軟件學(xué)習(xí)路線圖,黑馬50多天的上課視頻、16個突擊實戰(zhàn)項目,80余個軟件測試用軟件,37份測試文檔,70個軟件測試相關(guān)問題,40篇測試經(jīng)驗級文章,上千份測試真題分享,還有2020軟件測試面試寶典,還有軟件測試求職的各類精選簡歷,希望對大家有所幫助…..?
《2022黑馬測試學(xué)習(xí)路線圖鏈接》:http://bbs.itheima.com/thread-405757-1-1.html
