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.mzph.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配置与使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更…

配电室智慧运维监控系统

配电室智能运维监控系统是一个综合性的管理系统,专门针对配电室的运维工作进行设计。依托电易云-智慧电力物联网,它融合了先进的监测技术、自动化技术、数据分析技术等,对配电室进行全方位、实时的智能化监控和管理,以提升配电室运…

关于 Google AMP 和 SEO

Google 于 2015 年首次推出 AMP,即加速移动页面。借助开源 AMP 框架,网页设计师可以制作快速加载的移动网页。该框架的创建是为了应对使用移动设备访问互联网的个人数量的增加。从那时起,谷歌一直在推动使用 AMP 来增强移动设备上的 SEO 和用…

【漏洞复现】好视通视频会议系统(fastmeeting) toDownload.do接口存在任意文件读取漏洞 附POC

漏洞描述 “好视通”是国内云视频会议知名品牌,拥有多项创新核心技术优势、多方通信服务牌照及行业全面资质 [5] ,专注为政府、公检法司、教育、集团企业等用户提供“云+端+业务全场景”解决方案。用全国产、高清流畅、安全稳定的云视频服务助力各行各业数字化转型。 其视频…

opencv-Meanshift 和 Camshift 算法

MeanShift 和 CamShift 都是用于目标跟踪的算法,基于颜色直方图的方法。它们主要用于在视频序列中追踪运动的对象。 MeanShift(均值漂移): 原理: MeanShift 算法的基本思想是通过不断调整窗口的中心,使得窗口中的样本点的平均值向…

多模态常见任务介绍

视觉问答(VQA, Visual Question Answer) 目标:给定一个图片以及问题,需要理解图片的内容并基于此用自然语言回答问题。 例如,图像中发生什么事,人物穿的衣服是什么颜色,图像中有多…

复亚智能交通无人机:智慧交通解决方案大公开

城市的现代化发展离不开高效的交通管理规划。传统的交通管理系统庞大繁琐,交警在执行任务时存在安全隐患。在这一背景下,复亚智能交通无人机应运而生,成为智慧交通管理中的重要组成部分。交通无人机凭借其高灵活性、低成本、高安全性等特点&a…

儿童在线学习系统 宝宝云幼儿园服务微信小程序的设计与实现

综合运用所学的程序设计基础、数据结构、数据库原理及应用、高级语言程序设计、面向对象程序设计、软件需求分析与建模、软件设计与体系结构、软件测试等课程知识,设计开发一个较实用的应用系统。 通过该设计可以巩固并提高软件工程专业学生的软件需求分析、设计、开…

SpringCloud原理-OpenFeign篇(四、请求原理)

文章目录 前言正文一、书接上回,从代理对象入手二、ReflectiveFeign.FeignInvocationHandler#invoke()三、SynchronousMethodHandler#invoke(...) 的实现原理3.1 invoke(...)源码3.2 executeAndDecode(...) 执行请求并解码 四、如何更换client 的实现 附录附1&#…