Windows 下搭建 Appium + Android+python 自動化測試環境

來源:互聯網
上載者:User

標籤:api   百度   設定   包含   產品   javascrip   tab   ade   移動平台   

前言

本來並不打算寫這麼一篇文章,但是實踐下來發現網上的各種教程裡大致有兩個問題。一是文章有些跟不上時代,目前android開發與測試的技術更新都比較快,內容有些到期。二是細節部分不是太完整,拼拼湊湊也能完成,但對新手來說就比較痛苦。那麼,我也來試著總結一下自己踩過的坑。

備忘:Android自動化測試環境和開發環境並不完全相同,測試環境可以很簡單粗暴,很多工具可以不用安裝,比如JDK,SDK Tools,測試指令碼用C#,Python都可以完成;但是開發環境一般都是需要JDK和不少編譯工具。

實踐平台

Windows 10 Pro 64bit + Python 3.5.3

安裝 JAVA 環境

如果只是自動化測試用,安裝JRE就可以了,如果需要開發或者調試APK,那麼請安裝JDK。

  1. JRE = JVM + Java SE 標準類庫,相當於Java程式最基本的運行環境。

  2. JDK = JRE + 開發工具集,包括javac編譯工具等等。

JRE只有50多MB,JDK則接近200MB,請前往Java官網下載最新版安裝,選擇64位。

安裝 Android Studio / SDK

以前的教程裡都會讓你去裝 Android SDK,但現在你從Google或者Bing裡很難搜尋到 Android SDK的下載連結,因為目前官網推薦的做法有兩個:

  1. 安裝Android Studio (包含 Android SDK) -- 推薦

  2. 僅安裝Android SDK 命令列工具

新版本的Android SDK和以前也不太一樣,以前我們有一個 SDK Manager.exe 的工具用於更新和下載各版本的API,還有一個 AVD Manager.exe 的工具可以類比各種型號的安卓裝置。最新的 SDK 工具把UI 介面基本都去掉了,只留下命令列工具,具體的使用可以參閱官方文檔:

  • https://developer.android.com...

那麼多一事不如少一事,我建議推薦你直接安裝Android Studio,這樣不僅省事,而且萬一你想寫個App玩玩,也是極其方便的。

:https://developer.android.com...

安裝過程非常簡單,雙擊後一路Next,中間你也可以另外指定SDK的安裝目標路徑(不建議修改)。安裝好之後,直接啟動 Android Studio,首先會提示你連網下載一些必要的工具(你需要一個好的網路和梯子)。

一切就緒後,你可以在啟動介面就可以開啟 SDK Manager。

或者建立一個工程,從工程介面開啟SDK Manager。

SDK Manager 開啟之後,使用的方法就一目瞭然了。這就是個讓你更新API和各種開發工具的工具。

如果只是為了自動化測試其實你只要記住SDK安裝目錄就可以了,不需要安裝任何多餘的工具。SDK的安裝目錄在配置環境變數時需要用到。

如果你的網路不暢通,那麼需要先設定代理。接下來才能安裝你想要的SDK版本和開發人員工具。

安裝 Android 模擬器

如果你已經安裝了Android Studio,模擬器也已經有了,從工程介面找到AVD Manager的按鈕,按照三個步驟就可以添加並啟動一個模擬器。

每當你安裝新版本的模擬器都是需要FQ或者代理的,最開始啟動Android Studio時它已經給你下一個最新版的Android,我當前模擬器中的Android版本是7.1.1。

如果一切順利,那麼當你啟動模擬器後,你就可以看到一台虛擬Android裝置了,手動測試基本條件已經達成,自動化測試指日可待。

多說幾句,除了使用 Android SDK 內建的模擬器外,我們還有兩個選擇,一是使用真機,速度和體驗上會更好。另外一個選擇就選擇別的模擬器產品,比如 [Genymotion](),因為是商業軟體,所以對個人使用者(免費)會有諸多限制,儘管如此,其成熟度等級也比Android SDK內建的模擬器高很多。因為這兩個方案的具體實現涉及到的內容比較多,故不在本文討論。

安裝 Appium

Appium是開源的自動化測試架構,主要用於iOS,Android以及Windows apps等移動平台的自動化測試。官網的介紹說是它實現一套適用於移動端的WebDriver協議,所以使用Appium時用的還是依賴於Selenium,和Web自動化測試的主要區別就在Driver不一樣。

舉一個例子,如果我們需要用Google Chrome來跑Selenium的自動化測試,那麼首先需要一個ChromeDriver。如果需要跑在IE上,那麼需要一個IEDriver。那麼現在需要在移動端比如Android裡跑Selenium,這時候你需要一個Appium就夠了,它擔當了Driver的角色。Appium實現了一套標準的WebDriver,只要Appium服務起來之後,你的代碼只需要和Appium互動,Appium會去告訴裝置該幹嘛幹嘛。這裡提到的裝置可以是iOS或者Android,甚至是Windows Phone 和Firefox OS。

Appium 官網: http://appium.io/

安裝方式一: 使用NodeJS 安裝

首先到[NodeJS官網]()下載安裝最新的NodeJS,Windows下屬於傻瓜安裝。安裝好之後你可以配置NodeJS的安裝源,在國內一般都用taobao的鏡像,速度還不錯。

在個人目錄下建立一個 .npmrc 檔案,寫入:

registry=https://registry.npm.taobao.org/

然後使用npm命令安裝 Appium

npm install -g appium

建議順便安裝一下appium-doctor,通過運行appium-doctor命令可以快速檢查appium的環境問題。

npm install -g appium-doctor

如果安裝成功,那麼就可以通過 appium 命令啟動appium server。

關閉命令列或者按 Ctrl - C 就可以停止 Appium Server。

安裝方式二: 使用Appium安裝包

網上很多教程所引導的Appium安裝包一般在百度網盤或者bitbucket裡,其實這兩者都不是最新的。最新版的安裝包應該從官網下載,Appium 目前託管在github,正確的應該為:

  • https://github.com/appium/app...

最新版的Appium 案頭安裝後啟動是這樣的。

功能上和老的版本沒太大區別,但是日誌和UI顯示更加清晰,一旦錯誤發生讓你更容易找到問題所在。

注意,你可以不安裝Appium 案頭版,但是命令列版應該還是需要安裝的,因為自動化測試回合時一般都是通過命令啟動和關閉Appium,案頭版並不提供命令列功能,只是為了調試方便。

關於Appium的介紹,這裡有一份非常好的文檔:http://appium.io/slate/cn/master

安裝 Appium-Client

本文只討論Python實現的Appium測試,所以你只需要允許以下命令:

pip install Appium-Python-Client

如果需要使用其他程式設計語言,下表供參考:

語言/架構 Github版本庫以及安裝指南
Ruby https://github.com/appium/ruby_lib
Python https://github.com/appium/python-client
Java https://github.com/appium/java-client
JavaScript (Node.js) https://github.com/admc/wd
Objective C https://github.com/appium/selenium-objective-c
PHP https://github.com/appium/php-client
C# (.NET) https://github.com/appium/appium-dotnet-driver
RobotFramework https://github.com/jollychang/robotframework-appiumlibrary
必要的環境變數設定

如果你已經安裝了appium-doctor,那麼你只要運行appium-doctor命令就可以知道你還需要設定哪些環境變數,比如:

不要慌,其實你只需要設定以下環境變數:

環境變數
ANDROID_HOME Android SDK 的安裝位置
JAVA_HOME JDK 或者 JRE 的安裝位置
加入 PATH %ANDROID_HOME%tools
加入 PATH %ANDROID_HOME%platform-tools
加入 PATH %JAVA_HOME%bin
加入 PATH %ANDROID_HOME%build-tools??version?? (可選)

最後一個環境變數是為了更方便地使用aapt這個工具,完成環境變數配置後你可以再次運行appium-doctor進行檢查。不出意外,你應該能通過檢查。

完成第一個自動化測試

終於來到了動真刀真槍的時候了,很多人一開始就放棄了,更多人開始了之後就放棄了,走到這一步真的挺不容易的。

開始寫代碼之前有些事情你應該清楚:

  1. 模擬器或者測試機必須是Ready的狀態,每次啟動模擬器都很費時間,所以建議模擬器不要關閉,通過代碼來啟動模擬器是一個辦法,但是時間成本有點高。

  2. 如果是調試代碼階段,建議保持Appium案頭版長期運行,遠程運行時再通過代碼自動啟動和關閉Appium。

  3. Appium會根據你的測試代碼去尋找符合要求的裝置,如果你啟動了多台虛擬機器或者串連了多台實體機,請顯式地在代碼中指定裝置名稱或者版本號碼。

第一個自動化測試需求很就簡單,就是啟動內建的撥號軟體,搜尋 “hello toby”。代碼如下:

from appium import webdriverdesired_caps = {}desired_caps[‘platformName‘] = ‘Android‘desired_caps[‘platformVersion‘] = ‘7.1.1‘desired_caps[‘deviceName‘] = ‘Android Emulator‘desired_caps[‘appPackage‘] = ‘com.android.dialer‘desired_caps[‘appActivity‘] = ‘DialtactsActivity‘driver = webdriver.Remote(‘http://localhost:4723/wd/hub‘, desired_caps)driver.find_element_by_id(‘com.android.dialer:id/search_box_collapsed‘).click()search_box = driver.find_element_by_id(‘com.android.dialer:id/search_view‘)search_box.click()search_box.send_keys(‘hello toby‘)

運行效果:

恭喜你,你已經開始進入移動端的自動化測試的大門了!

Windows 下搭建 Appium + Android+python 自動化測試環境

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.