iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 25
1
Mobile Development

從0開始,全方面自動化測試Android App系列 第 25

[Day 25] Mobile測試架構 Appium 介紹

昨天介紹了End to End Test的一些概念後,今天要開始介紹如何進行End to End Test(下面會使用e2e test來簡稱)。在Android開發中要進行e2e test可以用我們之前講過的Espresso,還記得我們在[Day 20]有介紹過Espresso Asynchronous的寫法,IdlingResource的寫法就可以用在e2e test上面,我們只要在測試過程中會呼叫到的所有非同步的function都在開始及結束時加上IdlingResource的lock功能就可以了。但這個寫法有必須要在production code裡插入很多的IdlingResource呼叫,可以說是為了測試的目的去改變我們的開發程式,而非只有開發獨立的test class。這樣的做法會讓production code多了一些不屬於本身邏輯的程式碼,有點不好看也不好維護。那有沒有其他辦法不用Espresso也可以做到e2e test,答案就是Appium。如果你有關心職缺的話,Appium是許多automation engineer的技能之一,如果學會了appium等於我們也有了某部份automation engineer的能力了XD

Appium是透過Web Selenium的測試架構來串接IOS,Android等行動平台,整個流程如下圖所示
https://ithelp.ithome.com.tw/upload/images/20191008/2012097546EGFBW5aR.png

Appium的語法

  1. Appium語法支援許多主流語言,例如Java,Swift,Python,.Net,Ruby等,可見官網說明
  2. 同一套測試語法可以適用所有平台,例如Application有開發Web,Android跟iOS版,只要會Appium的語法就可以在各平台通用,不必為了Android學一套,iOS學一套,Web又學一套。

在測試機器上安裝Appium Server

可以選擇以下兩個方式command line或是desktop。

安裝Desktop版

https://github.com/appium/appium-desktop/releases/tag/v1.15.0-1

利用Command line安裝

brew install node # get node.js
npm install -g appium # get appium
npm install wd # get appium client
appium & # start appium

  1. 執行Appium Testing的設備需要安裝用nodejs寫的Appium Server
  2. 測試指令寫好後會透過http reqeust發出請求給Appium server
  3. Appium Server會把這些請求再打包成各語言平台測試架構的語法(例如:Android使用uiAutomator2)部屬在Device上執行。
  4. 特點是測試程式碼跟Appium Server可以分開,只要有IP可連線就不必在同一台機器上,因此適合部屬在Cloud Service上面,我們之後會提到AWS的Device Farm。

Appium doctor

當我們安裝好Appium的core元件後,建議下載appium-doctor去驗證我們的執行環境,例如要測試Android或IOS會有不同對應的系統環境變數,appium-doctor很貼心的幫我們都檢查好了,如果有問題它也會提示我們修改。

npm install appium-doctor -g

安裝好了以後,再輸入以下指令來檢測 appium-doctor --'platform name'

appium-doctor --android

開啟Appium Server

完成安裝後我們就可以launch Appium Server試試看。可以點擊Appium的應用程式圖示或是直接在command line執行appium,我們在本機端不需特別設定直接start server即可。
https://ithelp.ithome.com.tw/upload/images/20191009/20120975jr01fCfmvk.png

Appium的node server成功launch後會看到下面圖示。
https://ithelp.ithome.com.tw/upload/images/20191009/201209753z7uqR0mSp.png

下一個章節會直接操作測試Android APK來示範給大家看。


上一篇
[Day 24] End to End Test 介紹
下一篇
[Day 26] 利用Appium測試Android App (一)
系列文
從0開始,全方面自動化測試Android App30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言