Windows 10 搭建Appium自動化測試環境
環境搭建列表
- Java JDK
- Node
- Android SDK
- Platform-tools
- Build-tools
- Emulator
- Appium
- Appium-doctor
Ⅰ 安裝 Java JDK
下載 Java jdk ,按步驟安裝,Windows 10
默認安裝在路徑C:\Program Files\Java\jdk1.8.0_181
下;安裝完成後需要在 控制面板 => 系統和安全 => 系統 => 高級系統設置 => 環境變量 => 系統變量
中設置3項屬性:JAVA_HOME
、CLASSPATH
(大小寫無所謂)、Path
、若已存在則點擊"編輯",不存在則點擊"新建"。
變量設置參數如下(詳情參考:這裏):
-
變量名:
JAVA_HOME
-
變量值:
C:\Program Files\Java\jdk1.8.0_181
// 要根據自己的實際路徑配置 -
變量名:
CLASSPATH
-
變量值:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
//記得前面有個"."
-
變量名:
Path
(該變量一般存在,點擊編輯添加即可) -
變量值:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
驗證安裝是否配置成功,打開命令行工具:
java -version
# java version "1.8.0_181"
# Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
# Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
javac -version
# javac 1.8.0_181
Ⅱ 安裝 Node & NPM
下載 Node ,按步驟安裝,Windows 10
默認安裝在路徑C:\Program Files\nodejs\
下,一般來說,安裝的時候已經默認添加了環境變量,無需手動添加>;如果未添加,則需要在 控制面板 => 系統和安全 => 系統 => 高級系統設置 => 環境變量 => 系統變量
中設置環境變量Path
。
- 變量名:
Path
(該變量一般存在,點擊編輯添加Node
的安裝路徑即可) - 變量值:
C:\Program Files\nodejs\
驗證安裝是否成功:
node -v
# v10.14.2
npm -v
# 6.4.1
Ⅲ 安裝 Android SDK
安裝Android SDK
環境可以使用直接下載 Android studio來進行安裝,但是會下載好多無用的東西,佔用內存,但是無需配置太多設置。
這裏介紹下用命令行安裝的方法(命令行安裝可能會失敗,多試幾次就好):
- 選擇下載下邊的
Command line tools only
, Windows 版sdk-tools-windows-4333796.zip
,或者直接網盤下載(鏈接: https://pan.baidu.com/s/1lQQR71t75cXucHm6sLlbVg 提取碼: dub3) - 在C盤下創建
android-sdk
文件夾(或者你自定義位置) - 然後解壓,將解壓後的
tools
文件夾,放到目錄C:\android-sdk
下 - 配置環境變量
ANDROID_HOME
- 變量名:
ANDROID_HOME
- 變量值:
C:\android-sdk
// 要根據自己的實際路徑配置 - 變量名:
Path
- 變量值:
%ANDROID_HOME%\tools
%ANDROID_HOME%\tools\bin
- 變量名:
驗證是否安裝成功:
sdkmanager --update
# [=======================================] 100% Computing updates...
問題一
如果遇到: Warning: File C:\Users\ly__l.android\repositories.cfg could not be loaded.
則需要在路徑C:\Users\ly__l.android\ 下創建一個空的repositories.cfg文件即可
Ⅳ 安裝 Build-tools
sdkmanager --install "build-tools;29.0.0"
Ⅴ 安裝 Platform-tools
-
sdkmanager
安裝platform-tools
(sdkmanager
詳細命令參考:這裏 )# 使用sdkmanager 安裝 sdkmanager --install "platform-tools" "platforms;android-29"
-
配置環境變量
Path
- 變量名:
Path
- 變量值:
%ANDROID_HOME%\platform-tools
- 變量名:
-
驗證安裝成功:
adb version # Android Debug Bridge version 1.0.41 # Version 29.0.5-5949299 # Installed as C:\android-sdk\platform-tools\adb.exe
最終Path
的設置爲:
Ⅵ 安裝Appium
Appium(Version 1.15.1)是一個用於本地、混合和移動web應用程序的開源測試自動化框架。它使用WebDriver協議驅動iOS、Android和Windows mobile應用程序。終端安裝server版輸入:
# 安裝 server 版
npm install -g appium
默認安裝最新的版本,如果想安裝指定的版本:
npm install -g appium@1.7.2
卸載 Appium:
npm uninstall -g appium
npm cache clean --force
安裝桌面版(因爲桌面版方便元素定位,可以同時安裝兩種),下載 相應的版本進行安裝(安裝兩種方式,方便使用)。
Ⅶ 安裝 Appium-doctor
Appium-doctor
是一個小型軟件,它檢查 Appium 成功運行的所有(幾乎所有)前提條件。終端輸入:
npm install -g appium-doctor
appium-doctor
檢查前提條件的輸出應該是這樣的:
至此Android環境搭建完成了!!!真機可直接運行。
如果需要使用 android 模擬器,則需要第 Ⅷ 步安裝模擬器。
Ⅷ 安裝 Emulator
-
首先需要下載鏡像文件:
# 查看所有可安裝的組件 sdkmanager --list --verbose # 更新組件 sdkmanager --update # 安裝 sdkmanager --install "system-images;android-28;google_apis;x86"
-
然後下載硬件加速器:
sdkmanager --install "extras;intel;Hardware_Accelerated_Execution_Manager"
-
下一步創建模擬器(
avdmanager
詳細介紹參考:這裏):avdmanager create avd -n android-emulator -k "system-images;android-28;google_apis;x86" -b x86 -c 100M -d 7 -f
-
最後運行模擬器:
# android-emulator 爲上邊創建模擬器的名稱(-n android-emulator) emulator -avd android-emulator # 或者 emulator @android-emulator
Tips:
不可以在虛擬機上運行android模擬器,因爲virtualBox的組件(Hyper-V or Credential Guard)和模擬器的組件(HAXM)有衝突
問題一
“PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT”
檢查 android-sdk 目錄下是否有至less4個目錄: emulator , platforms , platform-tools , system-images
缺少哪個安裝哪個(如果缺少platforms,則可以創建一個空的文件夾也可以),安裝方法:
sdkmanager --install “emulator”
sdkmanager --install “platforms;android-26”
sdkmanager --install “system-images;android-26;google_apis;x86”
參考:這裏
問題二
"[6100]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at …\emulator\lib64\qt\lib
Could not launch ‘C:\android-sdk…\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe’: No such file or directory "
需要使用emulator目錄下的emulator啓動虛擬設備即可(嘗試tools目錄下的emulator和emulator目錄下的哪個可以用哪個)
Ⅸ 測試代碼
-
安裝
Python
環境,下載 安裝 -
安裝時勾選
Add Python3.X to Path
避免手動配置環境變量
-
這樣安裝後運行
python
腳本直接在終端使用:python test_android.py
即可
運行test_android.py
腳本(真機還是模擬器自行切換註釋代碼!!!
腳本下載):# coding=utf-8 import unittest from appium import webdriver import time import os class AndroidSimpleTest(unittest.TestCase): def setUp(self): calculator_desired_caps = { 'platformName': 'Android', 'platformVersion': '9.0', # emulator 'deviceName': 'emulator-5554', 'appPackage': 'com.android.calculator2', 'appActivity': 'com.android.calculator2.Calculator' # real device # 'deviceName': '520381b347dd148b', #'appPackage': 'com.sec.android.app.popupcalculator', #'appActivity': 'com.sec.android.app.popupcalculator.Calculator' } self.driver = webdriver.Remote('http://localhost:4723/wd/hub', calculator_desired_caps) def tearDown(self): self.driver.quit() def test_calculator(self): # 測試本機計算器 # 代碼中的定位元素可能會改變,具體根據實際情況改動 # real device #self.driver.find_element_by_accessibility_id("5").click() #self.driver.find_element_by_accessibility_id("Plus").click() #self.driver.find_element_by_accessibility_id("6").click() #self.driver.find_element_by_accessibility_id("Equal").click() #self.assertEqual(self.driver.find_element_by_id("txtCalc").text, "11") # ************ # emulator self.driver.find_element_by_id("digit_5").click() self.driver.find_element_by_accessibility_id("plus").click() self.driver.find_element_by_id("digit_6").click() self.driver.find_element_by_accessibility_id("equals").click() self.assertEqual(self.driver.find_element_by_id("result").text, "11") @unittest.skip("skip") def test_something(self): pass if __name__ == '__main__': unittest.main()
Tips:
# 查看設備名(deviceName)
adb devices
# 查看模擬器版本號(platformVersion)
adb shell getprop ro.build.version.release
# 查看appPackage、appActivity,運行命令時要確保打開了應用
# 例如:首先打開計算器,然後運行命令即可獲取到(以 / 隔開,前邊appPackage,後邊 appActivity )
adb shell dumpsys window windows | findstr "Current"
其他adb
相關命令查看:這裏