Appium自動化測試環境搭建
前言
Appium是一個開源的自動化測試框架,支援跨平臺,支援多種程式語言,可用於原生,混合和移動web應用程式,使用webdriver驅動ios,android應用程式、那麼為了學習app自動化測試首要任務肯定就是搭建測試開發環境, 因此在這裡記一次搭建Appium自動化測試環境的完整過程,文章較長,需要花費一定的時間,請耐心閱讀,如果文中有什麼錯誤請指正
安裝Java JDK
JDK環境可以看我之前安裝Jenkins時的隨筆https://www.cnblogs.com/linuxchao/p/linuxchao-jenkins-setup.html,這裡需要注意一點儘量安裝jdk 1.8,防止後面連結手機失敗
安裝Node.js
安裝nodejs之前,我們需要知道,為什麼要安裝nodejs? 因為appium是nodejs實現的,node相當於appium的直譯器
Node.js下載地址:https://nodejs.org/en/download/current/
由於我的電腦是windows 64位的系統,這裡我直接下載windows 64位的msi程式檔案
下載完成後直接雙擊安裝即可(傻瓜式的安裝),所以我就不說具體步驟了,安裝後,檢查是否安裝成功
cmd終端輸入第一個命令 node -version,輸出下面的資訊
接著再輸入 npm 命令,輸出下面的資訊
ok, 這說明node.js已經安裝成功
安裝Appium server
不知道你做過或者學習過selenium沒有,這裡的appium server 相當於 selenium中的瀏覽器驅動程式,當啟動瀏覽器驅動時會初始化一個伺服器,繫結本機的地址和埠,那麼Appium server也一樣,當啟動appium時同樣會初始化一個伺服器繫結本地的地址和埠
安裝server有兩種方式
第一種:使用npm工具
使用命令 npm install -g appium 安裝,不過這種安裝方式比較慢(我用這種方式沒安裝成功,可能網速不行,報了一些錯誤,比較尷尬)
第二種:安裝desktop版本
這種安裝方式還是比較快的,但是下載安裝包也比較慢,好歹安裝沒出現什麼問題
下載地址:https://bitbucket.org/appium/appium.app/downloads/
下載zip檔案,其中dmg格式的檔案應該是MC系統需要的型別,下載完成之後,解壓出安裝程式,直接雙擊appium-installer.exe安裝
這裡我也不敘述安裝過程了,同樣的傻瓜式安裝,當然你可以自定安裝目錄
配置環境變數
appium安裝目錄下的node_modules\.bin新增到系統環境變數(新增放看後面吧)
安裝完成後能夠成功開啟桌面的appium程式,說明安裝過程暫時沒什麼問題
安裝Android SDK
下載SDK及安裝
下載地址: https://www.androiddevtools.cn/
下載完成後,直接雙擊安裝即可
安裝完成後,找到你的安裝目錄,並找到SDK-manager工具雙擊開啟
自己根據需求選擇對應的sdk build-tools,Android SDK Platform-tools及api,api我選擇的API 22(5.1.1)版本
Android SDK Platform-tools, SDK build-tools我這裡是直接下載安裝的最新版本,如果你下載的版本比較低的話,後面連結模擬器或者真機時可能會連結不上
點選上圖中的[Install packages],彈出下面的頁面,點選Accept License後安裝,等待所有包安裝完成(所需時間比較久,請耐心等待)
配置環境變數
新建系統變數
ANDROID_HOME=D:\Program Files\Android\android-sdk變數及值(SDK的安裝目錄)
新增系統變數
把platform-tools及tools新增到系統環境變數,變數值(路徑)之間使用分號隔開,兩個變數值分別為:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;或者直接新增絕對路徑
配置完環境變數之後,我們就可以使用adb命令了
安裝Appium Client
我們使用python開發appium的自動化測試指令碼,肯定離不開appium的一些api庫,所以說這裡的appium 客戶端就是python程式碼使用的庫,用來連線appium server 及操作app
安裝appium client 就非常簡單了,只要你已經配置好了python環境,就可以直接使用pip安裝了,cmd 執行pipi install Appium-Python-Client即可完成安裝,輸入下圖命令不報錯,代表已經安裝成功
環境檢查
以上所有環境安裝完成之後,我們可以使用命令先檢查一下是否所有配置都是正確的
cmd執行 appium-doctor命令, 如果沒有報錯資訊,說明所有環境安裝正確,如果提示部分環境有問題請認證檢查一遍之前安裝過的環境
安裝模擬器
所有的環境已經安裝完成,接下來就是連結手機模擬器或者真機了,我這裡使用的是夜神模擬器,下載地址:https://www.yeshen.com/
下載完成後直接安裝,安裝完成後,桌面會生成兩個圖示,夜神模擬器和夜神多開器
連線模擬器
開啟模擬器的開發者模式
點選模擬器的設定-點選關於平板電腦-點選版本號(會有提示點選幾次開啟開發者模式)
開啟CMD終端,切換cmd 的工作目錄到夜神模擬器的安裝目錄的bin目錄下(或者你把這個目錄新增到環境變數也可以,但是最好不要新增到環境變數,因為bin目錄下也存在一個adb.exe會和Android SDK中的adb.exe衝突),執行命令 nox_adb.exe connect 127.0.0.1:62001(不同模擬器的這個埠號不同)
如果執行命令時提示類似:abd server version(40) doesn't match this client (36) 這樣的失敗資訊,那麼說明你的server(夜神模擬器的adb(nox_adb.exe))和client(Android SDK中的adb)版本不對應
檢查版本
cmd 輸入 adb version 檢視client版本
cmd切換到夜神安裝目錄的bin目錄下,執行nox_adb.exe version
我的版本是一樣的,你的可能是兩個不同的版本號, 你需要把Android SDK中的adb拷貝到夜神模擬器安裝目錄下的bin目錄下,並重命名為nox_adb.exe 並替換原來的即可
連線模擬器
接下來我們就可以測試連線是否正常了,輸入命令 nox_adb.exe connect 127.0.0.1:62001(這裡要注意執行命令的目錄,應為夜神模擬器安裝目錄的bin目錄下)
看到上面的提示後,接著再次輸入命令 adb devices (注意:不要在上面的目錄下繼續輸入命令,因為bin下同樣存在一個adb.exe ,如果你還在這個目錄下執行adb命令,那麼使用的並不是Android SDK中的adb,所以切換到其他任意目錄執行命令)
如果你看到的是上圖中的資訊, 說明已經成功連線上了模擬器, 這裡只能說明Android的開發環境沒問題了,但是進行自動化時還不一定能夠正常控制模擬器
測試環境驗證
下面我們通過編寫一段簡單的程式碼程式,驗證一下程式是否能夠成功驅動模擬器開啟指定的app,如果沒有報錯,那麼到此為止整個appnium自動化測試環境就已經完成了
開啟appium,並啟動伺服器,保持模擬器開啟狀態
測試程式碼
編寫如下測試程式碼
""" ------------------------------------ @Time : 2019/7/30 19:47 @Auth : linux超 @File : appium_test.py @IDE : PyCharm @Motto: Real warriors,dare to face the bleak warning,dare to face the incisive error! @QQ : [email protected] @GROUP: 878565760 ------------------------------------ """ from appium import webdriver desired = { "platformName": "Android", "platformVersion": "5.1.1", "deviceName": "e9b768eb7d2a", "appPackage": "com.xxzb.fenwoo", "appActivity": "com.xxzb.fenwoo.activity.addition.WelcomeActivity" } driver = webdriver.Remote( command_executor="http://127.0.0.1:4723/wd/hub", desired_capabilities=desired)
以上程式碼desired_capabilities引數,暫不做介紹
輸出
對應app被成功開啟,表示整個環境已經沒有任何問題了,接下來就可以愉快的開啟我們的app自動化測試了
總結
最後,回顧一下搭建環境過程中需要注意的點
1.如果在安裝appium的時候提示缺少.net framework 4.5 那麼先下載安裝它,再安裝appium即可https://www.microsoft.com/zh-cn/download/details.aspx?id=30653
2.注意Android SDK 中adb的版本和模擬器中nox_adb的版本需要相同
3.下載Andorid SDK的時候一定要安裝最新的 platform-tools,防止後面連線模擬器或者真機時遇到不可預料的錯誤(找不到adb命令