一、Appium工具的簡單原理
Appium工具可以分為:客戶端(appium-client)、服務端(appium-server)和移動設備端(模擬器或者真機)。客戶端支持多語言,如:python-client、java-client、ruby-client等。服務端支持多平台,如:Windows、Mac。最后Appium支持Android和iOS系統。原理圖放一下蟲師的:

二、Appium工具的安裝
想要將Appium跑起來,那么需要安裝客戶端、服務端的相關軟件。客戶端的根據自己需要安裝不同的語言,如:Python、Java、Ruby等。服務端可以安裝:appium或者appium-desktop。這里我使用:Python-client + appium-desktop的方式進行安裝。
我的運行環境:【操作系統:win10;移動設備:真機紅米note2;已安裝JDK;已安裝python3.7】
2.1 安裝客戶端,appium-python(使用pip的方式安裝)
使用win+r 打開運行,輸入cmd回車打開命令提示符頁面。輸入下面的命令自行安裝:
pip install appium-python-client
2.2 安裝服務端,appium-desktop
下載鏈接:https://github.com/appium/appium-desktop/releases 我下載了exe版直接下一步進行安裝。
如果想要安裝appium的,可以參考此鏈接進行安裝:
http://www.testclass.net/appium_base/appium-base-server
三、服務端連接移動設備
准備真機一台:Redmi Note 2,可傳輸數據線一條(如果打開了USB調試連接電腦沒有反應只是顯示充電,那這條數據線極可能是不能傳輸數據的)
3.1 打開USB調試
設置——我的設備——全部參數——對着“MIUI版本”那一項點7次,會提示開發者選項打開。然后回到 設置——更多設置——開發者選項,將“開啟開發者選項”、“USB調試”的開關設置為開啟狀態。

3.2 安裝安卓SDK(可以對手機進行連接操作,包括獲取id,設備名,包名等)
參考教程:
http://www.testclass.net/appium_base/appium-base-sdk
https://www.cnblogs.com/sheseido/p/9368761.html
1、下載安卓SDK安裝包,地址:http://tools.android-studio.org/index.php/sdk
2、安裝完成或者解壓完成后,進入目錄中打開:SDK Manager.exe
3、我們使用真機測試,不需要安裝模擬器鏡像,暫時只需要安裝Tools和Platform-tools,以后有需要可以繼續安裝

3.3 獲取手機的設備信息
1、打開命令提示符,定位到platform-tools的目錄下,輸入:adb devices 命令查看連接的手機。

2、在設置——我的設備——全部參數中,記下“Android版本”的版本號。
3、清空后台的所有程序,打開計算器,然后打開命令提示符,定位到adb所在的目錄路徑,輸入命令:adb shell 回車,再輸入:dumpsys window | grep "mCurrentFocus"。記下com.miui.calculator和com.miui.calculator.cal.CalculatorActivity

4、啟動appium-desktop,點擊右上角的放大鏡,在彈出的頁面中輸入前面3步所獲取到的值,然后點擊Start Session即可連接,如圖:



PS:如果出現如下:An unknown server-side error occurred while processing the command. Original error: pkg: /data/local/tmp/appium_cache/728413456b8xxxxxxxxxxxxd6bd577ca6418.apk Failure [INSTALL_FAILED_USER_RESTRICTED]的報錯,請在開發者選項中打開USB安裝、USB調試(安全設置)的開關。開關打開后,會安裝一個appium setting的APP,安裝完即可進行連接。

四、使用客戶端發送指令驅動真機運行
1、編寫客戶端代碼(python),點擊運行即可驅動真機進行計算
from appium import webdriver # 導入appium包 import time # 連接手機app初始化的一些信息 desc = {} desc['deviceName']='PNMxxxxxxxxxUQK'# 手機設備名稱,adb devices desc['platformVersion']='5.0.2'# 手機版本,在手機中:設置--關於手機 desc['platformName']='Android' # 手機類型,ios或android desc['appPackage']='com.miui.calculator'#包名 desc['appActivity']='com.miui.calculator.cal.CalculatorActivity'#啟動入口 driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desc)#訪問服務接口,並啟動手機app time.sleep(20) driver.find_element_by_id('com.miui.calculator:id/btn_6_s').click() time.sleep(2) driver.find_element_by_id('com.miui.calculator:id/btn_plus_s').click() driver.find_element_by_id('com.miui.calculator:id/btn_2_s').click() driver.find_element_by_id('com.miui.calculator:id/btn_equal_s').click() driver.quit()
PS:如果發現appium-desktop連接正常,且運行代碼沒有錯誤,但是真機卻沒有進行模擬運行,請檢查開發者選項中的“USB調試(安全設置)”和“允許模擬位置” 是否處於開啟狀態,關閉狀態將不能驅動真機運行。
