1 appium安裝及環境搭建
1.1 安裝JDK並配置環境變量
- 在Java官方網站上下載相應系統的jdk文件安裝,全部選擇默認的安裝路徑即可安裝完成。
- 配置JAVA_HOME:新建 JAVA_HOME 環境變量,變量值是自己安裝JDK 的路徑
- 配置ClASSPATH:新建 CLASSPATH 環境變量:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
- 配置PATH:找到PATH變量,追加如下目錄:%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;
- 驗證安裝是否成功:java -version
--------------------------------------
C:\Users\zhouxy>java –version
Java version "1.8.0_91"
--------------------------------------
1.2 Android SDK環境搭建
下載Android SDK:http://tools.android-studio.org/index.php/sdk
- 新建 ANDROID_HOME 環境變量,變量值是SDK解壓的路徑
- 追加sdk如下目錄到PATH變量:
-
- tools目錄:%ANDROID_HOME%\tools
- platform-tools目錄:%ANDROID_HOME%\platform-tools
- build-tools目錄:%ANDROID_HOME%\build-tools\android-4.4W
- 驗證:在命令行窗口中輸入adb
-------------------------------------------------
C:\Users\zhouxy>adb
Android Debug Bridge version 1.0.40
Version 4797878
Installed as D:\Android\android-sdk\platform-tools\adb.exe
---------------------------------------------------
1.3 Python環境搭建
略。pip install Appium-Python-Client
1.4 安裝node.js
- 到官網下載node.js: https://nodejs.org/en/。獲取到安裝文件后,直接雙擊安裝文件,根據程序的提示,完成nodejs的安裝
- 把Node.js的安裝路徑(也就是node.exe文件所在的目錄)追加到環境變量Path
- 驗證:在命令行窗口中輸入node –v
---------------------------------
C:\Users\zhouxy>node -v
v8.11.3
--------------------------------
1.5 安裝Appium
- 下載appium安裝文件,鏈接:http://pan.baidu.com/s/1dE8hJ81 密碼:t8yc
下載后解壓,直接雙擊appium-installer.exe文件安裝,桌面會生成一個appium的圖標
- 手動在Path中配置appium環境變量:
將安裝的Appium文件夾所在目錄\Appium\node_modules\.bin添加進path
- 驗證:輸入appium-doctor ,出現以下提示說明環境成功。
--------------------------------------------------------
C:\Users\zhouxy>appium-doctor
Running Android Checks
✔ ANDROID_HOME is set to "D:\Android\android-sdk"
✔ JAVA_HOME is set to "D:\sunline-ide\jdk1.8.0_91."
✔ ADB exists at D:\Android\android-sdk\platform-tools\adb.exe
✔ Android exists at D:\Android\android-sdk\tools\android.bat
✔ Emulator exists at D:\Android\android-sdk\tools\emulator.exe
✔ Android Checks were successful.
✔ All Checks were successful
--------------------------------------------------------
2 安裝Android版本
雙擊 SDK Manage.exe 啟動SDK管理器
雙擊 AVD Manage.exe 啟動AVD管理器
點擊 “Create…” 按鈕,創建Android虛擬機
不要選擇超過電腦屏幕分辨率的Device,其它選項參考上圖。點擊 “OK” 創建完成。在 AVD Manage 工具中選中創建的Android虛擬機,點擊 “Start…” 按鈕啟動
打開Appium,點擊右上角三角按鈕,注意Appium的啟動日志
3 獲取包名和launcherActivity
3.1 aapt工具
aapt即Android Asset Packaging Tool,在SDK的build-tools目錄下,該工具可以查看apk包名和launcherActivity。
在build-tools安裝的版本下錄下找到aapt.exe,將這個路徑設置環境變量,添加到path下。
打開cmd,輸入aapt出現如下界面
3.2 獲取apk包名
- 將准備測試的APK放到D盤某個目錄,如D:\test
- 打開cmd,輸入指令aapt dump badging D:\test\xxx.apk(APK的全名,如手機淘寶.apk)
- package:name='包名'
3.3 獲取launcherActivity
- launchable-activity:name='launcherActivity名'
或者直接在tools啟動monitor.bat或者uiautomatorviewer.bat,可用來查看元素
4 Appium的API操作
-
deviceName:啟動哪種設備,是真機還是模擬器?iPhone Simulator,iPad Simulator,iPhone Retina 4-inch,Android Emulator,Galaxy S4…
-
automationName:使用哪種自動化引擎。appium(默認)還是Selendroid。
-
platformName:使用哪種移動平台。iOS, Android, orFirefoxOS。
-
platformVersion:指定平台的系統版本。例如指的Android平台,版本為5.1。
-
appActivity:待測試的app的Activity名字。比如MainActivity、.Settings。注意,原生app的話要在activity前加個”.“。
-
appPackage:待測試的app的Java package。比如com.example.android.myApp, com.android.settings。
from appium import webdriver desired_caps={} desired_caps['platformName']='Android' desired_caps['platformVersion']='4.4.2' desired_caps['deviceName']='Android Emulator' desired_caps['appPackage']='com.android.calculator2' desired_caps['appActivity']='.Calculator' driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) driver.find_element_by_name('9').click() driver.find_element_by_accessibility_id('plus').click() driver.find_element_by_name('8').click() driver.find_element_by_accessibility_id('equals').click()
driver.quit()
4.1 API之應用操作
4.1.1 安裝應用
- installApp() #指定apk路徑
4.1.2 卸載應用
- removeApp() #指定包名
4.1.3 關閉應用
- closeApp()
4.1.4 啟動應用
- launchApp()
4.1.5 檢查應用是否安裝
- isAppInstalled() #指定包名
4.1.6 將應用置於后台
- runAppInBackground() #指定置於后台的時長
4.1.7 應用重置
- resetApp()
4.2 API之上下文操作
4.2.1 獲取當前上下文
- getContext()
4.2.2 當前所有上下文句柄
- getContextHandles()
4.2.3 切換上下文
- context() #指定上下文名稱
4.3 API 之鍵盤操作
4.3.1 sendKeys()方法
4.3.2 pressKeyCode()方法
下面提供Android keycode參考表:
電話鍵:
KEYCODE_CALL 撥號鍵 5
KEYCODE_ENDCALL 掛機鍵 6
KEYCODE_HOME 按鍵Home 3
KEYCODE_MENU 菜單鍵 82
KEYCODE_BACK 返回鍵 4
KEYCODE_SEARCH 搜索鍵 84
KEYCODE_CAMERA 拍照鍵 27
KEYCODE_FOCUS 拍照對焦鍵 80
KEYCODE_POWER 電源鍵 26
KEYCODE_NOTIFICATION 通知鍵 83
KEYCODE_MUTE 話筒靜音鍵 91
KEYCODE_VOLUME_MUTE 揚聲器靜音鍵 164
KEYCODE_VOLUME_UP 音量增加鍵 24
KEYCODE_VOLUME_DOWN 音量減小鍵 25
控制鍵:
KEYCODE_ENTER 回車鍵 66
KEYCODE_ESCAPE ESC鍵 111
KEYCODE_DPAD_CENTER 導航鍵 確定鍵 23
KEYCODE_DPAD_UP 導航鍵 向上 19
KEYCODE_DPAD_DOWN 導航鍵 向下 20
KEYCODE_DPAD_LEFT 導航鍵 向左 21
KEYCODE_DPAD_RIGHT 導航鍵 向右 22
KEYCODE_MOVE_HOME 光標移動到開始鍵 122
KEYCODE_MOVE_END 光標移動到末尾鍵 123
KEYCODE_PAGE_UP 向上翻頁鍵 92
KEYCODE_PAGE_DOWN 向下翻頁鍵 93
KEYCODE_DEL 退格鍵 67
KEYCODE_FORWARD_DEL 刪除鍵 112
KEYCODE_INSERT 插入鍵 124
KEYCODE_TAB Tab鍵 61
KEYCODE_NUM_LOCK 小鍵盤鎖 143
KEYCODE_CAPS_LOCK 大寫鎖定鍵 115
KEYCODE_BREAK Break/Pause鍵 121
KEYCODE_SCROLL_LOCK 滾動鎖定鍵 116
KEYCODE_ZOOM_IN 放大鍵 168
KEYCODE_ZOOM_OUT 縮小鍵 169
組合鍵:
KEYCODE_ALT_LEFT Alt+Left
KEYCODE_ALT_RIGHT Alt+Right
KEYCODE_CTRL_LEFT Control+Left
KEYCODE_CTRL_RIGHT Control+Right
KEYCODE_SHIFT_LEFT Shift+Left
KEYCODE_SHIFT_RIGHT Shift+Right
基本:
KEYCODE_0 按鍵’0’ 7
KEYCODE_1 按鍵’1’ 8
KEYCODE_2 按鍵’2’ 9
KEYCODE_3 按鍵’3’ 10
KEYCODE_4 按鍵’4’ 11
KEYCODE_5 按鍵’5’ 12
KEYCODE_6 按鍵’6’ 13
KEYCODE_7 按鍵’7’ 14
KEYCODE_8 按鍵’8’ 15
KEYCODE_9 按鍵’9’ 16
KEYCODE_A 按鍵’A’ 29
KEYCODE_B 按鍵’B’ 30
KEYCODE_C 按鍵’C’ 31
KEYCODE_D 按鍵’D’ 32
KEYCODE_E 按鍵’E’ 33
KEYCODE_F 按鍵’F’ 34
KEYCODE_G 按鍵’G’ 35
KEYCODE_H 按鍵’H’ 36
KEYCODE_I 按鍵’I’ 37
KEYCODE_J 按鍵’J’ 38
KEYCODE_K 按鍵’K’ 39
KEYCODE_L 按鍵’L’ 40
KEYCODE_M 按鍵’M’ 41
KEYCODE_N 按鍵’N’ 42
KEYCODE_O 按鍵’O’ 43
KEYCODE_P 按鍵’P’ 44
KEYCODE_Q 按鍵’Q’ 45
KEYCODE_R 按鍵’R’ 46
KEYCODE_S 按鍵’S’ 47
KEYCODE_T 按鍵’T’ 48
KEYCODE_U 按鍵’U’ 49
KEYCODE_V 按鍵’V’ 50
KEYCODE_W 按鍵’W’ 51
KEYCODE_X 按鍵’X’ 52
KEYCODE_Y 按鍵’Y’ 53
KEYCODE_Z 按鍵’Z’ 54