Android 自動化測試的工具非常多,但是目前主流使用的就那幾個,我會詳細(xì)說明他們各自的情況,你可以根據(jù)自己的需要決定使用哪款工具。 Appium Appium 是目前最主流的移動測試自動化框架,不僅支持...
Android 自動化測試的工具非常多,但是目前主流使用的就那幾個,我會詳細(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,但是你不需要具體懂這兩個框架的具體用法,appium 都已經(jīng)幫你封裝成了統(tǒng)一的使用規(guī)則。
Appium 的最大優(yōu)勢之一是幾乎可以使用任何編程語言(例如 Java、Objective-C、JavaScript、PHP、Ruby、Python 或 C# 等)編寫 Appium 腳本。
這意味這選擇權(quán)在你,你可以使用自己最擅長的編程語言。如果你還熟悉 Selenium,那么不出意外,你可以在一天之內(nèi)上手使用。
另外 webdriver 是一個統(tǒng)一的標(biāo)準(zhǔn),已經(jīng)提交給了 w3c 組織,你可以基于它的協(xié)議做進(jìn)一步的擴(kuò)展。看看簡單的代碼:
textFields = driver.find_elements_by_tag_name(textField) assertEqual(textFields[0].get_attribute(“value”), “Hello”)Airtest
第二個我要推薦國產(chǎn)之光 Airtest。Airtest 項目是由網(wǎng)易游戲推出的一款自動化測試框架,項目有幾大組件:
Airtest:是一個跨平臺的、基于圖像識別的 UI 自動化測試框架,適用于游戲和 App,支持平臺有 Windows、Android 和 iOSPoco:是一款基于 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
這個框架非常低調(diào),但是你用過一定會愛上它。
Detox 一個非常強的 JavaScript 移動測試框架,它的測試執(zhí)行非??焖俸徒眩驗樵跍y試執(zhí)行期間不需要外部附加工具來編排和同步。
如果你優(yōu)先考慮以下因素,你可以直接選用 detox:
使用 JavaScript 編程語言比其他測試自動化框架更易于調(diào)試app 是 React Native 開發(fā)的,可迅速和 detox 集成在測試執(zhí)行方面比 Appium 快文檔比較容易掌握下面是具體的代碼,比較典型的代碼編寫方式:
describe(HelloDetoxTest
, () => {
beforeEach( async() => {
awaitdevice.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( 點擊后應(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 線程同步并且速度很快,因為不需要任何睡眠(當(dāng)應(yīng)用程序空閑時,測試在同一毫秒內(nèi)運行)。
而且通過簡單的配置,可以直接集成在 appium 中。
總結(jié)
這幾個工具幾乎涵蓋了所有的 Android 自動化測試技術(shù)選型側(cè)重點。在掌握好這 4 個當(dāng)中的其中一個以后,有精力你可以去研究一下其他的工具,有上百種選擇,每種都有側(cè)重和具體的場景。
如果你不知道要選什么工具,用 appium如果你在自動化測試方面純小白,用 airtest如果公司用的 reactive native, 用 detoxEspresso 適合改善 appium 的體驗