關于Appium V2
Appium V2 beta版本在2021年發布,從2022年1月1號開始,Appium核心團隊不會再維護Appium 1.x版本了,所有近期官方發布的平臺驅動(如Android平臺的UIAutomator,IOS平臺的XCUITest)不再兼容Appium 1.x,需要基于Appium V2版本。
讓我們一起看看Appium V2相比Appium 1.x發生了哪些變化
關于Appium V2的變化
將平臺驅動獨立了出來
·在Appium V2版本中驅動和Appium Server是分開的,驅動可以分開安裝和升級,比如Android平臺的UIAutomator、IOS平臺的XCUITest等
引入插件生態
Appium V2中將一些非核心部分組件功能轉移到了插件中,并且能夠通過插件的模式能夠擴展更多的新功能,比如通過官方的images插件可以使用圖像識別來定位元素,使用第三方插件appium-device-farm能夠集中管理設備
嚴格遵循W3C協議
類似于Selenium 4中引入的W3C協議,Appium V2中嚴格遵循W3C協議。在Appium V2編寫測試腳本時填寫capabilities需要指定appium:前綴,比如:
{ "platformName": "Android","appium:automationName": "uiautomator2","appium:deviceName": "emulator-5554","appium:appPackage": "com.lemon.lemonban","appium:appActivity": "com.lemon.lemonban.activity.WelcomeActivity"
}
具體哪些屬于標準W3C協議中的capabilities可以查看文檔https://www.w3.org/TR/webdriver/#capabilities
其中platformName是屬于標準的W3C協議中的capabilities,不需要添加前綴
非標準的W3C協議中的capabilities需要添加appium:前綴
使用前準備工作:
Appium V2版本目前需要基于nodejs環境進行安裝,并且對nodejs的版本也有對應的要求:
Node.js version in the SemVer range ^14.17.0 || ^16.13.0 || >=18.0.0
NPM version >= 8 (NPM is usually bundled with Node.js, but can be upgraded independently)
這里我們選擇直接從nodejs的官網https://nodejs.org/en下載最新的版本:
Step1:安裝Appium V2
npm install -g appium@next
目前Appium V2還未最終正式發布,還屬于rc(Release Candidate-發布候選版)版本,在安裝時必須要使用appium@next參數進行安裝。當Appium V2正式發布之后我們可以使用appium參數來安裝。
安裝完畢之后檢測appium版本號:
appium -v
輸出結果為:
2.0.0-rc.3
當Appium V2安裝好之后,即可通過Appium Extension CLI(Appium擴展命令行)模式來擴展安裝各種平臺驅動和插件了。
Step2:安裝Appium driver
以Android平臺為例,安裝UIAutomator2驅動:
appium driver install uiautomator2 //Appium擴展命令行模式
安裝完畢之后可以查看安裝好的驅動:
appium driver list
輸出結果為:
Step3:啟動Appium Server
使用appium命令即可啟動:
appium默認會以4723端口啟動,并且在啟動的時候會在本地加載已安裝好的驅動。
Step4:安裝Appium客戶端庫
選擇編程語言的對應的Appium客戶端庫,如Python對應的是Appium-Python-Client,通過pip進行安裝;Java對應的是Java-client,通過Maven或者Gradle進行安裝。
這里需要注意,如果之前的項目用到了相關的庫,需要將其進行升級以適配最新的Appium V2。
Step5:編寫測試腳本
這里以python為例:
from appium import webdrivercaps = {"platformName": "Android","automationName": "uiautomator2","deviceName": 'emulator-5554',"appPackage": "com.lemon.lemonban","appActivity": "com.lemon.lemonban.activity.WelcomeActivity","noReset": True
}
appium_server_url = 'http://127.0.0.1:4723'
driver = webdriver.Remote(appium_server_url, caps)
需要注意的是:Appium Server在1.x版本時期的訪問地址是:http://127.0.0.1/wd/hub, 但是在V2版本上不需要后綴/wd/hub了,如果還用之前的地址訪問會出現404。
最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!?