1. 程式人生 > >Python+Appium自動化環境搭建

Python+Appium自動化環境搭建

appium工作原理

    appium 在android端工作流
  1. client端也就是我們 test script是我們的webdriver測試指令碼。

  2. 中間是起的Appium的服務,Appium在服務端起了一個Server(4723埠),跟selenium Webdriver測試框架類似, Appium⽀持標準的WebDriver JSONWireProtocol。在這裡提供它提供了一套REST的介面,Appium Server接收web driver client標準rest請求,解析請求內容,呼叫對應的框架響應操作。

  3. appium server會把請求轉發給中介軟體Bootstrap.jar ,它是用java寫的,安裝在手機上.Bootstrap監聽4724埠並接收appium 的命令,最終通過呼叫UiAutomator的命令來實現。

  4. 最後Bootstrap將執行的結果返回給appium server。

  5. appium server再將結果返回給 appium client。

一、環境準備

  win10版本  64位作業系統

  安卓機   6.0.1版本

  jdk  9.0.1 64位

  android-sdk   23(安卓6.0對應sdk23)

  python  2.7.14

  node.js  node-v8.12.0-x64.msi

  appium  appium-desktop-setup-1.7.1.exe

二、JDK下載安裝

三、android-sdk下載安裝

解壓後,裡面有個SDK manager.exe,設定 Android SDK Manager 國內映象地址

  1. 啟動 Android SDK Manager ,開啟主介面,依次選擇「Tools」、「Options…」,彈出『Android SDK Manager – Settings』視窗;
  2. 在『Android SDK Manager – Settings』視窗中,在「HTTP Proxy Server」和「HTTP Proxy Port」輸入框內填入mirrors.neusoft.edu.cn和80,並且選中「Force https://… sources to be fetched using http://…」複選框。設定完成後單擊「Close」按鈕關閉『Android SDK Manager – Settings』視窗返回到主介面;
  3. 依次選擇「Packages」、「Reload」。

四、android-sdk環境變數

    1.在系統變數新建:ANDROID_HOME,對應變數值為:D:\appium\android-sdk\android-sdk-windows(sdk安裝路徑)

    2.path新增兩個變數D:\appium\android-sdk\android-sdk-windows\tools和D:\appium\android-sdk\android-sdk-windows\platform-tools

五、adb環境

   1.因為adb是在android-sdk-windows\platform-tools這個目錄下的,所以上面添加了環境變數後,可以直接在cmd裡面運行了。

   2.在cmd輸入adb可以檢視對應版本號

 六、連線手機

1.手機用資料線以USB連電腦

 2.開啟cmd輸入:adb devices,當螢幕上出現一串字元,後面顯示device說明連線成功

七、python安裝

八、安裝node.js

九、安裝appium

十、安裝Appium-Python-Client

 1.前面python環境安裝,已經準備好pip了,所以這裡直接開啟cmd,輸入:pip install Appium-Python-Client

十一、獲取apk包名

  1.將準備測試的APK放到D盤某個目錄,如D:\test

  2.開啟cmd,輸入指令aapt dump badging D:\test\xxx.apk(APK的全名)

  package: name='XXX'

十二、獲取launcherActivity

  1.接著上一步操作,cmd螢幕拖到中間l找到auncherActivity

  launchable-activity: name='XXXXXX'

十五、寫指令碼

# coding=utf-8
from appium import webdriver

desired_caps = {
'platformName': 'Android',
'deviceName': 'cdc7d766',
'platformVersion': '6.0',
# apk包名
'appPackage': 'XXX',
# apk的launcherActivity
'appActivity': 'XXXXXX'
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)