天天看點

appium的安裝與使用

Appium做IOS自動化必須要用mac

appium用python開發要裝下面的包

pip install appium-python-client

安裝Appium Server

appium的安裝與使用

安裝JDK

安卓APP的自動化,必須要安裝安卓SDK(後面會講到),而安卓SDK需要 JDK 環境

安裝 Android SDK

對于安卓APP的自動化,Appium Server 是需要 Android SDK的。

因為要用到裡面的一些工具,比如 要執行指令設定手機、傳送檔案、安裝應用、檢視手機界面等。

下載下傳最新的 Android SDK檔案包: 

androidsdk.zip

 ,并且解壓,即可。

  1. 在D盤建立一個檔案夾androidSDK,裡面建兩個檔案夾分别叫platform-tools和tools,把剛下載下傳的壓縮檔案

    androidsdk.zip

    解壓内容全部複制到androidSDK這個檔案夾裡
    appium的安裝與使用
  2. 添加一個 環境變量 

    ANDROID_HOME,

    設定值為sdk包解壓目錄, 例如變量值輸入D:\androidSDK,路徑結尾不能含有“;”分号
  3. 配置環境變量path,變量值輸入%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;

通過adb操作與手機通信

adb操作指令:

#列出連接配接電腦上的安卓裝置

adb devices -l 

如果你應用已經安裝在手機上了,可以直接打開手機上該應用,進入到你要操作的界面

然後執行

adb shell dumpsys activity recents | find "intent={"

會顯示如下,最近的 幾個 activity 資訊,

intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=tv.danmaku.bili/.ui.splash.SplashActivity}

intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000300cmp=com.huawei.android.launcher/.unihome.UniHomeLauncher}

intent={flg=0x10804000 cmp=com.android.systemui/.recents.RecentsActivity bnds=[48,1378][10322746]}

intent={flg=0x10000000 cmp=com.tencent.mm/.ui.LauncherUI}

其中第一行就是目前的應用,我們特别關注最後

cmp=tv.danmaku.bili/.ui.splash.SplashActivity

應用的package名稱就是 tv.danmaku.bili

應用的啟動Activity就是 .ui.splash.SplashActivity

adb 連接配接模拟器,我的是mumu模拟器,操作如下:

1、mumu模拟器打開開發者模式,設定--關于平闆電腦--版本号(點選三次)(有開發者選項直接點選進入);打開usb調試

appium的安裝與使用
appium的安裝與使用
appium的安裝與使用

各模拟器adb連接配接端口

夜神安卓模拟器 62001

逍遙模拟器 21503

藍疊模拟器 5555

雷電 5555

天天 5037

mumu 7555

Genymotion 5555

騰訊手遊助手 adb connect 127.0.0.1:5555

在cmd指令行:adb connect 127.0.0.1:7555,如下狀态表示連接配接成功

appium的安裝與使用

連接配接安卓手機時的,需要的配置

from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey

desired_caps = {
  'platformName': 'Android', # 被測手機是安卓
  'platformVersion': '10', # 手機安卓版本
  'deviceName': 'xxx', # 裝置名,安卓手機可以随意填寫
  'appPackage': 'com.jiaparts.dsy', # 啟動APP Package名稱
  'appActivity': '.ui.StartActivity', # 啟動Activity名稱
  'unicodeKeyboard': True, # 使用自帶輸入法,輸入中文時填True
  'resetKeyboard': True, # 執行完程式恢複原來輸入法
  'noReset': True,       # 不要重置App,如果沒有的話,每次執行自動化前會重置APP的資料,像剛剛安裝的狀态一樣
  'newCommandTimeout': 6000, #連接配接逾時時間
  'automationName' : 'UiAutomator2' #appium的自動化版本
  # 'app': r'd:\apk\bili.apk',
}

# 連接配接Appium Server,初始化自動化環境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 設定預設等待時間
driver.implicitly_wait(5)


           

連接配接模拟器,deviceName  改為 所連接配接的  模拟器 的 位址端口

{
  "automationName": "uiautomator2",
  "platformName": "Android",
  "platformVersion": "5.1.1",
  "deviceName": "127.0.0.1:21503",
  "appPackage": "com.jiaparts.dsy",
  "appActivity": "com.jiaparts.dsy.ui.StartActivity"
}
           

繼續閱讀