Appium 全新 2.0 全新跨平臺生態,版本特性搶鮮體驗!

關于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。

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/166684.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166684.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166684.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

shrio----(1)基礎

文章目錄 前言 一、Shrio1、什么是shiro2、為什么使用shrio 二、主要類2.1、Subject2.2、SecurityManager2.3、Realms 三、認證授權3.1、認證(Authentication)3.2、授權(authorization)四、入門示例參考文章 前言 簡單入門介紹 一、Shrio http://shir…

【譯】Spring 6 入參數據校驗: 綜合指南

一、前言 在 Spring 6.1 中,有一個非常值得注意的重要改進——編程式驗證器實現。Spring 長期以來一直通過注解支持聲明式驗證,而 Spring 6.1 則通過提供專用的編程式驗證方法引入了這一強大的增強功能。 編程式驗證允許開發人員對驗證過程進行細粒度控…

網站定制開發有哪些分類?|企業軟件app小程序定制

網站定制開發有哪些分類?|企業軟件app小程序定制 網站定制開發是指根據客戶需求,為其量身定制設計和開發的網站服務。目前,網站定制開發主要分為以下幾個分類: 1. 靜態網站定制開發:靜態網站是由HTML、CSS和JavaScrip…

手寫promise(3)-- 實例方法 靜態方法

目錄 實例方法 catch finally 靜態方法 reslove reject race all allSettled any 實例方法 提供給promise實例的方法 包括catch 與finally catch Promise 實例的 catch() 方法用于注冊一個在 promise 被拒絕時調用的函數。它會立即返回一個等效的 Promise 對象&…

一文詳解 requests 庫中 json 參數和 data 參數的用法

在requests庫當中,requests請求方法,當發送post/put/delete等帶有請求體的請求時,有json和data2個參數可選。 眾所周知,http請求的請求體格式主要有以下4種: application/json applicaiton/x-www-from-urlencoded …

java堆文件排查

技術主題 在之前的開發的一個項目中,因為程序的一個bug,導致一些引用的對象一直沒有回收,從而導致堆內存一直在增大,老年代一直在增大,老年代進行堆積,后來的排查思路是通過dump堆的文件,然后對…

Dockerfile-CentOS7.9+Python3.11.2

本文為CentOS7.9下安裝Python3.11.2環境的Dockerfile # CentOS with Python3.11.2 # Author xxmail.com# build a new image with basic centos FROM centos:centos7.9.2009 # who is the author MAINTAINER xxmail.comRUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/…

vue的生命周期及不同階段狀態可以進行的行為

什么是vue的生命周期? Vue 的實例從創建到銷毀的過程 ,就是生命周期 ,也就是從開始創建 ,初始化數據 ,編譯模板 ,掛載Dom到渲染DOM ,更新數據再到渲染 ,卸載等一系列的過程 &#x…

OpenAI研發神秘“Q*”模型:科學家認輸,AI贏了人類關鍵一戰

圖片來源:視覺中國 作者丨葉蓁 編輯丨康曉 出品丨深網騰訊新聞小滿工作室 在山姆奧特曼(Sam Altman)被OpenAI前董事會突然罷免之前,數位研究人員向董事會發送了一封信,警告稱他們發現了一種能夠威脅到人類的強大人工…

IIS 基線安全加固操作

目錄 賬號管理、認證授權 ELK-IIS-01-01-01 ELK-IIS-01-01-02 ELK-IIS-01-01-03 ELK-IIS-01-01-04 日志配置 ELK-IIS-02-01-01 ELK-IIS-02-01-02 ??????? ELK-IIS-02-01-03 通信協議 ELK-IIS-03-01-01 設備其他安全要求 ELK-IIS-04-01-01 ??????? ELK-I…

【DDS】OpenDDS配置與使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 這篇文章主要介紹OpenDDS配置與使用。 無專精則不能成,無涉獵則不能通。——梁啟超 歡迎來到我的博客,一起學習,共同進步。 喜歡的朋友可以關注一下,下次更…

華為云編譯構建CodeArts Build常見問答匯總

1.【Build】公有云編譯構建是否支持導入外部機器做執行機 答:參考鏈接:https://support.huaweicloud.com/usermanual-devcloud/devcloud_01_0017.html ? 使用代理機功能,需要配備1臺4U8G或以上規格、磁盤>80GB的主機。 ? 安裝代理的…

Ubuntu 啟用 root 用戶

在啟用 root 用戶之前,我們先來了解一下, ubuntu 命令的組成。 打開 ubuntu 的終端,現在的命令行是由 topeetubuntu:~$ 這幾個字母組成,那么這幾個字母都代表 什么意思呢? topeet …

配電室智慧運維監控系統

配電室智能運維監控系統是一個綜合性的管理系統,專門針對配電室的運維工作進行設計。依托電易云-智慧電力物聯網,它融合了先進的監測技術、自動化技術、數據分析技術等,對配電室進行全方位、實時的智能化監控和管理,以提升配電室運…

人工智能對當代生活的影響

人工智能(AI)是指通過模擬人類智能的方式,使機器能夠執行某些需要智能的任務。隨著技術的快速發展和應用的廣泛推廣,人工智能已經深入到我們的日常生活中,對我們的生活和社會產生了深遠的影響。本文將探討人工智能對當…

Django同時連接多種數據庫

我的使用場景需要同時連接達夢數據庫和MYSQL數據庫,有的功能需要查詢達夢,有的功能則需要查詢MYSQL。 第一步:在 Django 的 settings.py 文件中,配置多個數據庫連接。你可以在 DATABASES 字典中添加多個數據庫配置。每個數據庫配置…

關于 Google AMP 和 SEO

Google 于 2015 年首次推出 AMP,即加速移動頁面。借助開源 AMP 框架,網頁設計師可以制作快速加載的移動網頁。該框架的創建是為了應對使用移動設備訪問互聯網的個人數量的增加。從那時起,谷歌一直在推動使用 AMP 來增強移動設備上的 SEO 和用…

【漏洞復現】好視通視頻會議系統(fastmeeting) toDownload.do接口存在任意文件讀取漏洞 附POC

漏洞描述 “好視通”是國內云視頻會議知名品牌,擁有多項創新核心技術優勢、多方通信服務牌照及行業全面資質 [5] ,專注為政府、公檢法司、教育、集團企業等用戶提供“云+端+業務全場景”解決方案。用全國產、高清流暢、安全穩定的云視頻服務助力各行各業數字化轉型。 其視頻…

opencv-Meanshift 和 Camshift 算法

MeanShift 和 CamShift 都是用于目標跟蹤的算法,基于顏色直方圖的方法。它們主要用于在視頻序列中追蹤運動的對象。 MeanShift(均值漂移): 原理: MeanShift 算法的基本思想是通過不斷調整窗口的中心,使得窗口中的樣本點的平均值向…