Android 自動化測試的工具非常多,但是目前主流使用的就那幾個(gè),我會詳細(xì)說明他們各自的情況,你可以根據(jù)自己的需要決定使用哪款工具。
Appium
Appium 是目前最主流的移動測試自動化框架,不僅支持 Android 應(yīng)用,而且適用于 iOS、混合和 Web 應(yīng)用程序。
它底層完全使用了 selenium 和 WebDriver 的 API,所以如果你之前有用過 selenium, 幾乎不需要額外的學(xué)習(xí)成本就可以使用 appium。
appium 通過 uiautomator(API 級別 16 或更高)和 Seledroid(API 級別低于 16)支持 Android,但是你不需要具體懂這兩個(gè)框架的具體用法,appium 都已經(jīng)幫你封裝成了統(tǒng)一的使用規(guī)則。
Appium 的最大優(yōu)勢之一是幾乎可以使用任何編程語言(例如 Java、Objective-C、JavaScript、PHP、Ruby、Python 或 C# 等)編寫 Appium 腳本。
這意味這選擇權(quán)在你,你可以使用自己最擅長的編程語言。如果你還熟悉 Selenium,那么不出意外,你可以在一天之內(nèi)上手使用。
另外 webdriver 是一個(gè)統(tǒng)一的標(biāo)準(zhǔn),已經(jīng)提交給了 w3c 組織,你可以基于它的協(xié)議做進(jìn)一步的擴(kuò)展??纯春唵蔚拇a:
textFields = driver.find_elements_by_tag_name('textField')assertEqual(textFields[0].get_attribute("value"), "Hello")
Airtest
第二個(gè)我要推薦國產(chǎn)之光 Airtest。Airtest 項(xiàng)目是由網(wǎng)易游戲推出的一款自動化測試框架,項(xiàng)目有幾大組件:
- Airtest:是一個(gè)跨平臺的、基于圖像識別的 UI 自動化測試框架,適用于游戲和 App,支持平臺有 Windows、Android 和 iOS
- Poco:是一款基于 UI 控件識別的自動化測試框架,目前支持 Android 原生 app/iOS 原生 app/微信小程序,還有主流的游戲引擎,也可以在其他引擎中自行接入 poco-sdk 來使用
- AirtestIDE:跨平臺的 UI 自動化測試編輯器,內(nèi)置了 Airtest 和 Poco 的相關(guān)插件功能,能夠使用它快速簡單地編寫 Airtest 和 Poco 代碼,甚至都可以不寫代碼。
- AirLab:真機(jī)自動化云測試平臺,提供了非常多的手機(jī)型號和兼容性測試、海外云真機(jī)兼容性測試等服務(wù)
- 私有化手機(jī)集群技術(shù)方案:從硬件到軟件,提供企業(yè)內(nèi)部私有化手機(jī)集群的解決方案
使用 Airtest 的好處是中文文檔健全,對英文不好的同學(xué)支持優(yōu)化。官網(wǎng)也貼心的準(zhǔn)備了視頻教學(xué)和演示,幫助你快速上手。
Detox
這個(gè)框架非常低調(diào),但是你用過一定會愛上它。
Detox 一個(gè)非常強(qiáng)的 JavaScript 移動測試框架,它的測試執(zhí)行非??焖俸徒?,因?yàn)樵跍y試執(zhí)行期間不需要外部附加工具來編排和同步。
如果你優(yōu)先考慮以下因素,你可以直接選用 detox:
- 使用 JavaScript 編程語言
- 比其他測試自動化框架更易于調(diào)試
- app 是 React Native 開發(fā)的,可迅速和 detox 集成
- 在測試執(zhí)行方面比 Appium 快
- 文檔比較容易掌握
下面是具體的代碼,比較典型的代碼編寫方式:
describe('HelloDetoxTest', () => {
beforeEach(async () => {
await device.reloadReactNative();
});
it('應(yīng)該有歡迎屏幕', async () => {
await expect(element(by .id('welcome'))).toBeVisible();
});
it('should show hello Rect after tap', async () => {
await element(by.id('hello_react')).tap() ;
await expect(element(by.text('React!!!'))).toBeVisible();
});
it('點(diǎn)擊后應(yīng)該顯示屏幕', async () => {
await element(by.id ('detox_button')).tap();
await expect(element(by.text('Detox!!!'))).toBeVisible();
});
});
Espresso
Espresso 是新型的的 Android 測試自動化框架,由 Google 開源,Espresso 的 API 體積小、可預(yù)測、易于學(xué)習(xí)。
你可以使用它快速編寫簡潔可靠的 Android UI 測試。
它非??煽?,與 UI 線程同步并且速度很快,因?yàn)椴恍枰魏嗡撸ó?dāng)應(yīng)用程序空閑時(shí),測試在同一毫秒內(nèi)運(yùn)行)。
而且通過簡單的配置,可以直接集成在 appium 中。
總結(jié)
這幾個(gè)工具幾乎涵蓋了所有的 Android 自動化測試技術(shù)選型側(cè)重點(diǎn)。在掌握好這 4 個(gè)當(dāng)中的其中一個(gè)以后,有精力你可以去研究一下其他的工具,有上百種選擇,每種都有側(cè)重和具體的場景。
- 如果你不知道要選什么工具,用 appium
- 如果你在自動化測試方面純小白,用 airtest
- 如果公司用的 reactive native, 用 detox
- Espresso 適合改善 appium 的體驗(yàn)
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。