python_Appium測試環境搭建

Android環境搭建

移動端Appium環境部署比Web的selenium環境稍微複雜一些,如用python編寫測試用例腳本或者開發測試框架以及UI自動化操做方法是同樣的,基本是通用。因二者都是基於selenium,在Python的appium包中實際繼承了Selenium,在測試過程當中將移動端的頁面元素看成是網頁來處理。Web和Appium二者區別在於環境部署和腳本部分配置差別。若是對Web的selenium自動化腳本有基礎的話,只要環境搭建及配置搞明白能夠直接上手Appium移動端自動化測試。php

因爲網上的Appium部署的環境資料比較零散,不完整,本身把以住工做中使用到的知識梳理總結搭建的appium環境從0到1完整部署過程記錄。java

 1、環境準備:node

本文講解的環境在windows7系統64位版本進行部署。python

須要安裝的工具清單以下:android

1.jdk1.8.0 (64位)ios

2.android-sdk_r24.4.1-windows    (下載地址:http://tools.android-studio.org/index.php/sdkgit

3.python:3.6    (下載地址:https://www.python.org/)github

4..net framework4.5   (下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=30653web

5.Node.js:node-v10.14.2-x64  (下載地址:https://nodejs.org/en/downloadshell

6.appium-desktop :1.10.0  (下載地址:https://github.com/appium/appium-desktop/releases)

7.Appium-Python-Client:1.10.1

8.夜神摸擬器:6.2.6.3

2、安裝jdk

一、在系統環境變量,新增JAVA_HOME爲jdk安裝路徑:D:\Java\jdk1.8.0_181
二、在Path變量中增長:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
三、在CLASSPATH變量中增長:%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

3、安裝android-sdk

將下載的 Android SDK 解壓指定的目錄

在系統變量新建:ANDROID_HOME,對應變量值爲:D:\android-sdk(sdk安裝路徑)

path變量裏面添加%ANDROID_HOME%\tools和%ANDROID_HOME%\platform-tools;

注意:

因爲目前Google在國內沒法訪問,因此須要經過鏡像方式去下載咱們的SDK,就碰到android sdk解壓後沒有platform-tools目錄,或者安裝SDK時遇到"Done loading packages"的問題。

一、進入Android SDK安裝目錄中點擊SDK Manager.exe,而後選擇Tools->options菜單,彈出以下界面:

錄入以下數據:【本人親測該URL地址鏡像服務器可用】

Proxy Server:mirrors.neusoft.edu.cn

Proxy Port:80

並勾選Others框內的第一個複選框,如上圖紅色圈。

二、列出Android SDK在線更新鏡像服務器

  • 中國科學院開源協會鏡像站地址:
    • http://mirrors.opencas.cn 端口:80
    • http://mirrors.opencas.org 端口:80
    • http://mirrors.opencas.ac.cn 端口:80
  • 上海GDG鏡像服務器地址:
    • http://sdk.gdgshanghai.com 端口:8000
  • 北京化工大學鏡像服務器地址:
    • http://ubuntu.buct.edu.cn/ 端口:80
    • http://ubuntu.buct.cn/ 端口:80
    • http://ubuntu.buct6.edu.cn/ 端口:80
  • 大連東軟信息學院鏡像服務器地址:
    • http://mirrors.neusoft.edu.cn 端口:80
  • 騰訊Bugly 鏡像:
    • http://android-mirror.bugly.qq.com 端口:8080

三、完成代理設置後再次打開SDK Manager.exe,便可更新及安裝咱們的SDK了。

接下來勾選須要下載的android版本和工具,以下圖所示:

如上圖Tools的紅色圈內必需要勾選安裝,下載安裝完後,Status狀態下會出現Installed表示已安裝。

本文選擇的是android 6.0版本,如上圖。

Extras下Android Support Repository是android系統的兼容庫,必須安裝,Google USB Driver也安裝。

勾選完後,單擊右下角install package按鈕,安裝更新所有內容大概要2小時左右的時間,請耐心等待!

下圖是一位大神整理的SDK圖片描述很詳細,供參考,以下圖所示:

 3、安裝python

本文選擇3.6版本安裝完後,進行環境變量配置,指定安裝路徑目錄便可。

在系統變量的path變量新增:D:\Programs\Python\Python36;D:\Programs\Python\Python36\Scripts

4、安裝.net framework4.5

安裝appium以前,先安裝.net framework4.5工具,不然安裝appium會報錯,直接傻瓜式安裝便可。

5、安裝Node.js

安裝appium以前,須要安裝Node工具,傻瓜式安裝完後,在cmd窗口錄入node -v查看版本號。

6、安裝appium-desktop

因爲AppiumForWindows一直沒更新版本,版本太低,對android系統高版本不支持。由appium-desktop替代。

安裝appium-desktop桌面版比較簡單,直接傻瓜式安裝便可,安裝完後桌面出現appium圖標,點擊打開以下圖:

以下命令行版本安裝:

一、安裝appium 【可安裝,也可不安裝,前面已安裝有appium-desktop桌面版】
npm --registry http://registry.npm.taobao.org install appium -g
驗證:cmd輸入appium

二、安裝appium-doctor檢測環境
npm --registry http://registry.npm.taobao.org install appium-doctor -g
驗證:cmd輸入appium-doctor

 7、安裝Appium-Python-Client

直接在cmd窗口輸入pip3 install Appium-Python-Client安裝便可,這個工具是用來可以在客戶端編寫python腳本去實現操做android系統的APP測試。

8、安裝夜神摸擬器

直接傻瓜式安裝便可,安裝完後,能夠直接在夜神摸擬器自帶的夜神應用中心HD,搜索須要下載安裝APP軟件,或者也能夠網上下載的apk包文件直接拖到夜神摸擬器窗口就能夠實現自動安裝app軟件。以下圖所示:

 到此爲止,全部的該要安裝工具都安裝完後,接下來就能夠配置,調試跑通起來。

Android環境配置調試

一、鏈接夜神摸擬器前,先在cmd窗口檢測環境sdk和夜神摸擬器版本號是否一致性。不然會報錯以下信息:
adb server version(36) doesn’t match this client (40);killing…

  • 在cmd窗口輸入adb查看版本號
  • 在cmd窗口進入夜神安裝目錄下D:\Program Files\Nox\bin輸入命令:nox_adb.exe connect 127.0.0.1:62001

如夜神版本比SDK的adb的版本號低的話,以下解決辦法:

a、關掉夜神模擬器。同時去任務管理器裏看下,adb.exe以及nox_adb.exe這2個進程有沒有在運行?有的話就結束掉。
b、找到SDK的目錄和夜神模擬器的目錄,將夜神模擬器目錄下本來的adb.exe和nox_adb.exe修改文件名爲adb_bak.exe和nox_adb_bak.exe,將SDK目錄(D:\android-sdk\platform-tools)下的adb.exe文件複製到夜神模擬器的目錄(D:\Program Files\Nox\bin)下,將從SDK目錄複製過來的adb.exe放在夜神目錄下,同時複製一份更名爲nox_adb.exe。

最後在cmd窗口進入夜神安裝目錄下D:\Program Files\Nox\bin輸入命令:nox_adb.exe connect 127.0.0.1:62001後,查看鏈接信息以下:

如上圖表示已經成功鏈接到夜神摸擬器。

二、點擊電腦桌面appium圖標啓動,點擊Start Server按鈕啓動appium服務。以下圖所示:

點擊放大鏡按鈕進入appium配置數據以下圖所示:

  • platformName :Android 【這裏是Android環境】
  • platformVersion:4.4.2   【在cmd窗口輸入命令:adb shell getprop ro.build.version.release查看版本或者在夜神摸擬器系統信息菜單查看版本號】
  • deviceName:驅動名稱  【在cmd窗口輸入命令:adb devices查看名稱】
  • appPackage:包名  【在cmd窗口輸入命令:aapt dump badging D:\test\taobao.apk(網上下載的taobao.apk文件)】
  • appActivity:啓動棧  【在cmd窗口輸入命令:aapt dump badging D:\test\taobao.apk(網上下載的taobao.apk文件)】

在D:\android-sdk\build-tools\28.0.3目錄下的cmd窗口輸入aapt dump badging D:\test\taobao.apk命令後,能夠找到以下信息。

package: name='com.taobao.taobao'
launchable-activity: name='com.taobao.tao.welcom.Welcom'

查找appPackage和appActivity方法有好多種,選其中一個方法就好了。還可下載的查看包名的apk工具拖到夜神摸擬器窗口安裝後,可直接用查看包名工具來查看模擬器已安裝全部的APP包名清單,以下圖所示:

 點擊appium界面的右下角「Start Session"打開以下界面,就能夠看到鏈接到夜神摸擬器啓動打開淘寶APP軟件主界面,就能夠定位元素控件寫測試腳本了。

如上圖appium自帶的可定位元素屬性,值。另外一種方法可用sdk自帶的工具D:\android-sdk\tools目錄下uiautomatorviewer.bat文件來定位元素,查看屬性,值。打開後彈以下界面:

 三、接下來就能夠編寫測試腳本調試是否能跑通,以下圖所示:

方法一,使用appium工具定位元素:

 

方法二,使用SDK自帶的uiautomatorviewer工具定位元素以下圖所示,前提條件必須關閉appium,不然會報錯獲取不到當前摸擬器的圖像。

經過以上可知控件的元素,就能夠編寫測試腳本,以下圖所示:

須要先啓動appium服務,而後執行測試腳本,可經過夜神摸擬器查看當前自動化運行的淘寶APP界面操做測試。若是須要測試真機的話,將手機和電腦經過USB數據線鏈接,手機打開USB調試模式,USB的鏈接方式要選擇設備文件管理選項。

而後在cmd窗口輸入adb devices查看是否鏈接成功並獲取到驅動名。最後在測試腳本的驅動名稱改成當前真機驅動名稱,再執行測試腳本便可實如今真機跑。

IOS環境搭建

 本文介紹搭建IOS的摸擬器和真機的appium環境,部署過程當中各類報錯遇到很多坑,關鍵xcode和ios系統、appium版本三者要對應起來,不然安裝部署大多數是版本問題。若是在項目測試的話,最好在IOS系統電腦搭建IOS和android兩套環境,這樣一臺機子就搞定了,在IOS搭建的android跟windows方法差很少,這裏重點講搭建IOS的appium環境。

 1、環境準備:

須要安裝的工具清單以下:

1.jdk11.0.2 (64位)

2.xcode:10.1  (下載對應的MACOS系統版本:https://developer.apple.com/download/more/

3.python:3.6    (下載地址:https://www.python.org/)

4.macOS:10.14.3

5.Node.js:node-v10.15.1-x64  (下載地址:https://nodejs.org/en/download

6.appium-desktop :1.8.2  (下載地址:https://github.com/appium/appium-desktop/releases)

7.Appium-Python-Client

  • java安裝

先進入根目錄輸入vim ~/.bash_profile
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
export JAVA_HOME

export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

從新引入生效:source ~/.bash_profile
查看更改後的JAVA_HOME路徑:echo $JAVA_HOME

  • brew安裝

brew是mac上一個軟件管理工具,經過它能夠在終端輸入命令安裝各類軟件包
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
檢查homebrew是否安裝:brew -v

  • 檢查git是否安裝

 $ git --version
git version 2.19.0

  • 安裝carthage

 brew install carthage
驗證:carthage version,查看版本

  • 安裝 libimobiledevice (真機測試必裝)【(查看當前鏈接此電腦的設備中的信息、log,調試設備,git submodules的依賴,

brew install -HEAD libimobiledevice
驗證:將真機鏈接在mac上,命令行輸入idevice_id -l,若是出現該設備的udid,則說明配置成功可以正常識別了。

查看真機的設備名字:idevicename -d
查看全部的模擬器和真機:instruments -s devices

  • 安裝 iOS-deploy (真機測試須要)【能夠用來安裝卸載ios應用,iOS10,真機必裝】

brew install ios-deploy

  • 安裝xcode

 從App Store獲取xcode的工具並安裝

  • 安裝node.js

直接官網下載安裝

  • 安裝Appium-Python-Client

pip3 install Appium-Python-Client

  • 安裝appium-doctor

 npm install -g appium-doctor
使用appium-doctor 檢查Appium iOS環境環境:appium-doctor --ios
若是出現opencv4nodejs、fbsimctl、applesimutils、ffmpeg、ios-webkit-debug-proxy失敗信息,可經過以下手動安裝便可:
安裝ffmpeg
brew install ffmpeg
brew tap facebook/fb and brew install fbsimctl --HEAD

安裝ios-webkit-debug-proxy
brew install ios-webkit-debug-proxy

安裝opencv4nodejs:
使用npm代替brew:
brew install cmake
npm install -g opencv4nodejs

安裝fbsimctl:
brew tap facebook/fb
brew install fbsimctl

安裝applesimutil:
brew tap wix/brew
brew install applesimutil

 2、Appium環境安裝:

安裝WebDriverAgent(WDA)
若是是模擬器測試,不須要安裝WDA,若是用真機必定要安裝WDA
前提:電腦必須安裝了Carthage
注意,因爲appium安裝目錄下自帶的WebDriverAgent有BUG問題,須要從網上下載最新版本執行腳本。

 先進到用戶目錄下:

cd ~ git clone https://github.com/facebook/WebDriverAgent.git cd WebDriverAgent mkdir -p Resources/WebDriverAgent.bundle sh ./Scripts/bootstrap.sh
而後進入 appium-xcuitest-driver所在文件目錄下:
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver下把自帶的WebDriverAgent目錄重命名爲WebDriverAgent_bak。
執行命令:ln -s ~/WebDriverAgent WebDriverAgent (其中~/WebDriverAgent是源地址,後面的是目標地址)
 
、編譯WebDriverAgent
進入目標文件 /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent,雙擊 WebDriverAgent.xcodeproj工程文件。
一、編譯WebDriverAgentLib
 
二、編譯WebDriverAgenRunner
 
三、App ID要保持一致性。


進入WebDriverAgent 文件夾:cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

執行命令:xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真機的udid' test

若是終端出現如下信息,表示編譯 OK

 Testing failed:

這個時候iphone多了一個WebDriverAgentRunner的app,以下圖所示:Early unexpected exit, operation never finished bootstrapping - no restart will be attempted ** TEST FAILED *

在手機通用-》描述文件設置信任證書,終端再從新執行xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真機的udid' test進行驗證環境。
驗證一下WDA是否運行成功,由於有些國產的iPhone設備經過手機的IP和端口還不能訪問,此時須要將手機的端口轉發到Mac上,終端輸入:iproxy 8100 8100控制檯切換到wda的文件夾目錄下,運行:WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=(你的id) USE_PORT=8100 test(id填你本身的uid)
執行:iproxy 8100 8100

控制檯運行:WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=A2C61397-E627-422E-87D3-8745C3E4F927 USE_PORT=8100 test(id填使用的模擬器uid)
進行端口轉發。
瀏覽器輸入:http://localhost:8100/status,返回一串json即證實成功
真機命令行啓動wda:
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/摸擬器的命令行啓動wda:

/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/
到此爲止,真機環境搭建完成,接下來就是能夠配置appium信息,寫測試腳本跑自動化了。

4、安裝IOS摸擬器
打開已經安裝好的xcode(位於/Applactions/Xcode),如圖

選擇Create a new Xcode project,按下圖操做:





選擇摸擬器:


若是須要其它,還可點擊Add Additional Simulators下載摸擬器版本。
最後,點擊左側三角形運行,出現打開摸擬器,會多出test的app圖標,以下圖:


如查看udid方法以下圖左邊的Devices是查看真機,右邊的Simulators是查看摸擬器信息。還可經過命令instruments -s devices查看全部的真機和摸擬器。

 備註:在真機上是安裝.ipa的包,在模擬器上是安裝.app的包。

這是兩種不一樣的打包方法,也就是說從appstore這種渠道下載的.ipa是沒法安裝到模擬器上的,必需要找大家開發專門針對iOS模擬器打個模擬器的包,後綴是.app 。

、APPiumDesktop的環境真機和摸擬器參數配置

a、在真機上測試時,須要在AppiumDesktop新增udid、xcodeOrgld和xcodeSigningld等字段屬性。xcodeOrgld是指開發者帳號id,可在https://developer.apple.com/account的左側的Memeber ship找到,或者在xcode帳號管理裏。

以下圖參考:

b、摸擬器配置以下圖所示:

 備註:如上圖真機和摸擬器已經有安裝好的被測app軟件,可把參數app屬性改成bundleId,此項至關於android的裏面的app包名。若是想看app的bundleId,只須要安裝了ideviceinstaller工具就能夠了,而後執行 ideviceinstaller -l 就能夠將手機安裝的app列出。Appium每次運行,不安裝APP,就在Capabilities增長參數屬性noReset設置爲True。

以下圖公用的Capability參數:

其它更多的參數參考請進入:https://blog.csdn.net/ljl6158999/article/details/80594521

、APPium代碼啓動

參考以下圖啓動摸擬器執行用例腳本自動化測試示例代碼:

Appium工做原理

一、appium是基於webdriver 協議,appium ios封裝了apple的Instruments框架,用了裏面的UIAutomation,Client是咱們編寫的 webdriver腳本,中間是appium啓動server(默認監聽 4723 端口 ),appium server調用instruments.js啓動一個 socket server ,同時分出一個子進程運行instruments.app 將bootstrap.js(一個 UIAutomation 腳本)注入到 devices用於和外界進行交 ,最後 Bootstrap.js將執行的結果返回給appium server, appium server再將結果返回給appium client 。

二、appium使用的是UIAutomator框架,咱們在client客戶端編寫測試腳本運行,調用的是webdriver接口,appium server接收到咱們client發送過來的命令去調用UIAutomator,把命令轉換後去實現,Bootstrap將執行的結果返回給appium server ,最後由Appium server再將結果返回給client端。

相關文章
相關標籤/搜索