起步走~ 在Android模擬器上開始你的第一個Python Appium script

這個章節我會介紹如何建立一個 Android 模擬器, 啟動 Appium Server 並建立你的第一個Python automation script
  • 新增 Android Platform and Package
  • 建立 Android Virtual Device
  • 啟動 Android 模擬器
  • 建立一個Pytest script
  • 啟動 Appium GUI Server
  • 執行 Python Appium test script
我們來看要怎麼完成這些設定, 從Python code 啟動Android 模擬器

新增 Android Platform and Package

  1. 從Android SDK 資料夾底下開啟SDK Manager

  2. 找到想要測試的Android 系統版本

  3. 勾選SDK Platform

  4. 勾選 Intel x86 Atom_64 System Image

  5. 勾選 Intel x86 Atom System Image

  6. 按下 Install packages

Note. Android image 會占用大量硬碟空間, 安裝有需要的版本即可

建立 Android Virtual Device

  1. 從Android SDK 資料夾底下開啟AVD Manager

  2. 按下Create button

  3. 指定模擬器名稱

  4. 選擇Device - Nexus 5

  5. 選擇Target - Android 6.0 - API Level 23

  6. 選擇 CPU/ABI

  7. 勾選 Use Host GPU

  8. 按下OK完成新增模擬器

啟動 Android 模擬器

  1. 在AVD Manager 中指定一個模擬器後 按下Start button

  2. 按下 Launch button

  3. 注意有出現下面的訊息表示HAX有被正確的啟動

  4. 第一次開啟模擬器會花費較多時間, 但後續開始速度就會變快很多

  5. 開啟CMD, 輸入 adb devices

  6. 記下device id (ex. emulator-5554), 這是用來appium 用來辨識模擬器的id

建立一個Pytest script

  1. 新增一個 .py file, 依照 Pytest 的結構來設計test case

  2. 輸入相關的desire capabilities 設定

  3. 指定 PlatformName = Android

  4. 指定 platformVersion = 6.0.0 (這是Android 模擬器作業系統的版本)

  5. 指定 Android deviceName, 這裡的內容是剛剛輸入adb devices得到的

  6. 指定 要測試的 Android apk 路徑位置, appium 會判斷如果Device上面沒有安裝這個 apk, 會自動替我們安裝
    如果有安裝就會跳過直接啟動app

  7. 指定 noRest = true, 也就是每次啟動都不會reset app

啟動 Appium GUI Server

這裡我們會從Command Line的方式從Appium 內建的Node去啟動Appium GUI Server

  1. 開啟 CMD, 執行這個command

    "C:/Program Files (x86)/Appium/node.exe" "C:/Program Files (x86)/Appium/node_modules/appium/bin/Appium.js" --address 127.0.0.1 --chromedriver-port 9516 --bootstrap-port 4725 --selendroid-port 8082 --full-reset --local-timezone

  2. 確認有看到Console debug info 表示server 有成功的啟動

執行 Python Appium test script

在執行Test script 前, 要先確定

  • Appium Server 已經啟動能夠接收Request
  • Android 模擬器已經啟動或實體機已經接上Host machine

  • 開啟CMD, 切換到Project 目錄

  • 執行pytest command, 指定要執行的的test module file name

    py.test -v -s appium

results matching ""

    No results matching ""