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

news2024/10/5 18:32:21

关于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发生了哪些变化

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386    

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/763315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据分析案例-基于随机森林算法构建心力衰竭预测模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

云原生周刊:6 项 K8s 成本控制策略 | 2023.7.17

开源项目推荐 Base Image Finder 当使用容器扫描工具来识别已知漏洞(CVE,或常见漏洞和暴露)时,可能很难理解漏洞在容器中的位置,以及如何缓解这些漏洞。通常,最简单、最有效的缓解方法是更新 "基本映…

EasyPoi实战系列集合

历史文章(文章累计480) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 导…

【黑马头条之对象存储服务MinIO】

本笔记内容为黑马头条项目的对象存储服务MinIO部分 目录 一、MinIO简介 二、MinIO特点 三、开箱使用 1、安装启动 2、管理控制台 四、快速入门 1、创建工程,导入pom依赖 五、封装MinIO为starter 1、创建模块heima-file-starter 2、配置类 3、封装操作mi…

VBA命令及语法列表之字典Dictionaries相关

【分享成果,随喜正能量】真正的修佛之人。首先,得明白自己的来处和归宿,懂得敬畏自己的生命和他人的生命,尽其所能释放善意。学会悲天悯人,渡人的同时渡己,始终走在止于至善的路上。真正的慈悲为怀&#xf…

有哪些方法可将PPT转成PDF?分享三个方法给大家!

将PPT(演示文稿)文件转换为PDF(便携式文档格式)是一种常见的需求,特别适用于共享演示文稿、打印或以静态格式保存的情况。本文将介绍三种简单易用的方法来实现PPT转PDF的操作,其中方法一是使用记灵在线工具…

MarkDown 生成目录的树结构

1. tree 命令的使用 Markdown没有办法直接生成目录的树结构,需要借助Windows下的tree命令,具体如下: 显示所有目录,不包含目录下的文件,tree 文件夹路径 显示所有目录,包含目录下的文件,tree …

命令行查看numpy版本

问题 查看numpy版本 解决方法 python -c "import numpy;print(numpy.version.version)"成功

OpenCV中reshape()函数详解-改变矩阵的通道数,对矩阵元素进行序列化

文章目录 1、函数原型2、示例3、结论: OpenCV中reshape()函数详解-改变矩阵的通道数,对矩阵元素进行序列化 在opencv中reshape函数,既可以改变矩阵的通道数,又可以对矩阵元素进行序列化 1、函数原型 Mat Mat::reshape(int cn, in…

echarts_雷达图

目录 雷达图(radar)需求[1] 复制案例[2] 色调统一[3] 配置项实现代码 雷达图(radar) 需求 [1] 复制案例 如上图,先复制一个最简单的雷达图 [2] 色调统一 直角系坐标都是使用xAxis/yAxis配置项,但是雷达图使用的是radar配置项配置坐标系。 配置项注解区…

GoFrame v2.5 版本发布,企业级 Golang 开发框架

大家好啊,GoFrame 框架今天发布了 v2.5.0 正式版本啦!👏👏👏👏 本次版本主要是对已有功能组件以及开发工具上的改进工作。其中,开发工具新增了 gf gen ctrl 命令,以规范化定义、开发…

【C#】并行编程实战:使用并发集合

在上一章的并行编程实现里,为了保护资源,我们对共享资源加锁(各种同步原语)来进行保护,避免多线程同时访问(主要是写入)。但一般来说,共享资源是一个可以由多个线程读写的集合&#…

AR气象博物馆模拟体验提升青少年认知

国际气象节主要目的是唤起人们对气象工作的重视和热爱。近年来,极端天气频发,人们需要提高警惕,AR气象远程普利用ar技术特有的沉浸式的体感互动,通过模拟演练提升体验者的安全防范意识和求生技巧。 系统结合VR虚拟现实、AR增强现实…

【多模态】1、几种多模态 vision-language 任务和数据集介绍

文章目录 一、Phrase Grounding1.1 概念介绍1.2 常用数据集介绍 二、Referring Expression Comprehension(REC)2.1 概念介绍2.2 常用数据集介绍 三、Visual Question Answer(VQA)3.1 概念介绍 四、Image Caption4.1 概念介绍 现在…

MySQL-数据库读写分离(上)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

(学习笔记-TCP连接建立)为什么每次建立TCP连接时,初始化的序列号都要求不一样?

主要原因有两个方面: 为了防止历史报文被下一个相同的四元组的连接接收(主要)为了安全性,防止黑客伪造相同序列号的TCP报文被对方接收 展开第一点: 假设每次建立连接,客户端恶核服务端的初始化序列号都是从0开始: 过程…

Mysql教程(一):Mysql数据模型和SQL语法分析

Mysql教程(一):Mysql数据模型和SQL语法分析 1、Mysql数据模型 1.1 关系型数据库(RDBMS) 概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。 特点: 使用表存储数…

H5活动营销系统怎么做?H5活动营销系统有哪些优势?

H5营销系统广泛用于各类线下活动场景,即将传统线下活动搬到线上,结合互动和奖励设计,引导用户产生转发、分享等目标行为,从而扩大活动影响力,以获得曝光和转化。因此,h5活动营销系统通常用于拉新促活、刺激…

【LeetCode 75】第三题(1431)拥有最多糖果的孩子

题目: 示例: 分析: 题目是简单题,也确实简单,不过示例给出的解释有些复杂,甚至有些误导.我们只需要遍历得出分配糖果之前的糖果最大值,然后再依次遍历每个孩子拥有的糖果数,若某孩子原有的糖果数加上待分配的所有糖果数大于等于分配前的糖果最大值,则给该孩子对应下标的结果置…

Linux--进程替换(转载)

目录 0.引入 1.替换原理 2.替换函数 execl execv execlp execle execvp execvpe execve 3.调用自定义程序 4.exec函数解释 5.命名理解 0.引入 创建子进程的目的是什么? 就是为了让子进程帮我执行特定的任务 让子进程执行父进程的一部分代码 如果子进程…