Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!

2023-09-20 14:34:45

关于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 webdriver


caps = {
    "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。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

更多推荐

MySQL常用操作

目录1.安装MySQL/MariaDB2.用户管理2.1用户信息2.2用户权限privileges3.增删改查3.1增删数据库/表3.2查询参考1.安装MySQL/MariaDB#1)确认是否已安装mysqlrpm-qa|grepmysql#2)(如无)执行以下命令进行安装##方法一yuminstallmysql-y#

docker介绍及入门举例

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker的主要优点有:1.提供了一种在任何地方创建、运行和分发应用程序的方法,而不仅仅是在虚拟机

Centos系统常见配置(详细)总结

目录一、简介二、具体内容1、设置静态ip2、重启网络3、ssh登录时自动运行命令4、新增用户并创建家目录5、终端显示bash-4.2#6、更换yum源7、centos系统串口终端自动登陆8、系统启动通过rc.local自动执行脚本9、关闭防火墙10、设置samba三、其他相关链接Ubuntu系统设置常见问题处理详细总结

iOS16新特性:实时活动-在锁屏界面实时更新APP消息 | 京东云技术团队

简介之前在《iOS16新特性:灵动岛适配开发与到家业务场景结合的探索实践》里介绍了iOS16新的特性:实时更新(LiveActivity)中灵动岛的适配流程,但其实除了灵动岛的展示样式,LiveActivity还有一种非常实用的应用场景,那就是锁屏界面实时状态更新:上图是部分已经做出适配的APP,锁屏实时活动的展示。可

RabbitMQ常见问题

一、RabbitMQ如何保证消息不丢失?这是面试时最喜欢问的问题,其实这是个所有MQ的一个共性的问题,大致的解决思路也是差不多的,但是针对不同的MQ产品会有不同的解决方案。而RabbitMQ设计之处就是针对企业内部系统之间进行调用设计的,所以他的消息可靠性是比较高的。1、哪些环节会有丢消息的可能?我们考虑一个通用的MQ

微服务 第二章 CountDownLatch和Semaphone的应用

系列文章目录第二章CountDownLatch和Semaphone的应用第一章Java线程池技术应用文章目录系列文章目录前言1、CountDownLatch1.1、应用场景2、Semaphone前言JavaJUI之并发编程,CountDownLatch和Semaphone的应用1、CountDownLatchCount

【机器学习】TF-IDF以及TfidfVectorizer

TF-IDF定义TF-IDF:全称为"词频一逆文档频率"。TF:某一给定词语在该文档中出现的频率。TFw=词语w在该文档中个数该文档内总词个数TF_w=\frac{词语w在该文档中个数}{该文档内总词个数}TFw​=该文档内总词个数词语w在该文档中个数​。IDF:整个训练集文档集合一共由NNN篇文档组成,其中包含某个给

一文了解云计算

目录🍎云服务🍎云计算类型🍒公有云🍒私有云🍒混合云🍎云计算服务模式🍒IaaS基础设施即服务🍒PaaS平台即服务🍒SaaS软件即服务🍒三者之间区别🦐博客主页:大虾好吃吗的博客🦐专栏地址:闲谈专栏地址云服务云计算是通过互联网提供一个计算服务,其中包括服务器、数据库、存储以及各种应用服务,采用按需付费的

SpringBoot+MyBatisPlus+MySQL不能储存(保存)emoji表情问题解决

1.之前在学习过程中不知道utf8和utf8mb4的区别,也没过多去了解,直到最近设置的数据库编码全是utf8后发现问题所在了,居然不能储存表情包!!!整个人直接傻了,后面知道了utf8是3字节不能储存表情,utf8mb4才可以,废话不多说马上整改,接下来的一幕就令人头疼了。2.我的mysql版本是5.7.40,首先按

Jenkins :添加node权限获取凭据、执行命令

拥有Jenkinsagent权限的账号可以对node节点进行操作,通过添加不同的node可以让流水线项目在不同的节点上运行,安装Jenkins的主机默认作为master节点。1.Jenkins添加node获取明文凭据通过添加node节点,本地监听ssh认证,选则凭据(明文)进行ssh认证,拿到密码。1.新建节点-man

iOS应用上线需要注意的问题

将iOS应用上线到AppStore需要仔细注意一系列问题,以确保应用的质量、安全性和用户体验。以下是一些在iOS应用上线过程中需要注意的关键问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。1.开发者账号:确保你拥有有效的苹果开发者账号,可以在苹果开发者中心进行注册和管理。2.应

热文推荐