appium自动化环境搭建

一、appium介绍

appium介绍

appium是一个开源工具、支持跨平台、用于自动化ios、安卓手机和windows桌面平台上面的原生、移动web和混合应用,支持多种编程语言(python,java,Ruby,Javascript、PHP等)

原生应用和混合应用:

原生应用(即使用iOS或Android原生开发工具包开发的应用)
混合应用(即包含HTML5页面和原生代码的应用)

appium架构与组件&工作原理:

Appium的架构基于C/S模式,由多个组件协同工作以实现移动应用的自动化测试目标。以下是Appium v2.x的架构组件:

  1. Appium客户端:测试人员使用与编程语言偏好相对应的Appium客户端语言绑定来编写测试脚本。这个Appium客户端将通过传递目标平台的配置选项来 与在机器或远程机器上运行的Appium服务器进行交互。
  2. Appium服务器:一个Node.js API服务器,它将消耗这些配置选项,并根据配置选项将用户命令重定向到连接到Appium服务器实例的平台特定驱动程序实例。
  3. Appium驱动程序:Appium驱动程序是Appium客户端与目标设备之间的桥梁。它使用原生平台特定框架(如iOS平台的XCUITest和Android平台的UiAutomator2)来将这些用户命令重定向到这些框架,这些框架实际上会在目标设备上执行这些用户命令。
appium工作原理概括

客户端发送测试请求给Appium Server,Appium Server解析请求并调用相应的原生测试框架API在移动设备上执行测试操作,然后将测试结果返回给客户端。这一过程中,Appium使用了WebDriver协议进行通信,并在Android和iOS设备上分别使用了Bootstrap.jar和bootstrap.js作为中间件来与原生测试框架进行通信。

二、appium安装

其他版本git链接:https://github.com/appium/appium-desktop/releases
Appium-windows-1.13.0链接: 百度网盘
提取码: 0000

  1. 选择压缩的安装包,右键以管理员身份运行(注意安装位置可以自定为C盘以外都行,自定义目录,下一步即可)
    在这里插入图片描述

  2. 选择下一步
    在这里插入图片描述

  3. 选择完成
    在这里插入图片描述
    Appium Server是一个基于JS语言的程序,运行它需要安装nodejs(运行js的环境),Appium为了简化安装,就将Appium Server与nodejs合二唯一,变成了Appium Desktop,所以我们只需要安装Appium Desktop即可

三、启动appium服务端

  1. 双击桌面的appium图标
  2. 点击Start Server,ip是默认本机ip,端口默认4723,点击允许防火墙访问
    在这里插入图片描述
    在这里插入图片描述

四、安装sdk工具

为了使appium能够对apk各种操作(安装、卸载、查看包等),需要安装配置sdk环境,来完成appium自动化测试,我这边之前已经安装好了
sdk百度网盘链接:sdk工具包
链接: 提取码: 0000

配置环境变量如下,系统变量新增
变量名:ANDROID_HOME
变量值(你自己安装的目录):D:\BaiduNetdiskDownload\androidsdk
Path系统变量添加如下
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
在这里插入图片描述
在这里插入图片描述
验证如下配置OK
在这里插入图片描述

设备可以使用真机或者模拟器(夜神、海马、逍遥等)
python安装Appium-python-client库

Appium Python Client:官方的Appium Python客户端
安装命令:pip install Appium-python-client 或者在pycharm内的设置手动安装

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频多模态模型——视频版ViT

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细解读多模态论文《ViViT: A Video Vision Transformer》,2021由google 提出用于视频处理的视觉 Transformer 模型,在视频多模态领域有…

使用Cline+deepseek实现VsCode自动化编程

不知道大家有没有听说过cursor这个工具,类似于AIVsCode的结合体,只要绑定chatgpt、claude等大模型API,就可以实现对话式自助编程,简单闲聊几句便可开发一个软件应用。 但cursor受限于外网,国内用户玩不了,…

【Linux】Linux编译器-g++、gcc、动静态库

只要积极创造,机遇无时不有;只要善于探索,真理无处不在。💓💓💓 目录 ✨说在前面 🍋知识点一:Linux编译器-g、gcc •🌰1. 背景知识 •🌰2. gcc如何完成 •…

Spring整合Mybatis、junit纯注解

如何创建一个Spring项目 错误问题 不知道什么原因,大概是依赖版本不兼容、java版本不对的问题,折磨了好久就是搞不成。 主要原因看pom.xml配置 pom.xml配置 java版本 由于是跟着22年黑马视频做的,java版本换成了jdk-11,用21以…

【架构面试】二、消息队列和MySQL和Redis

MQ MQ消息中间件 问题引出与MQ作用 常见面试问题:面试官常针对项目中使用MQ技术的候选人提问,如如何确保消息不丢失,该问题可考察候选人技术能力。MQ应用场景及作用:以京东系统下单扣减京豆为例,MQ用于交易服和京豆服…

MATLAB提供的颜色映射表colormap——伪彩色

图像处理领域的一个习惯:不是真实的颜色,一般用伪彩色。一是说明不是物体本身的颜色,二是彩色更容易分辨。 MATLAB陆续提供了16种颜色映射表colormap。 之前的都很丑,近5年新增的4种还可以。总的说来还是丑。 这是一种鸟的名字。…

案例研究丨浪潮云洲通过DataEase推进多维度数据可视化建设

浪潮云洲工业互联网有限公司(以下简称为“浪潮云洲”)成立于2018年,定位于工业数字基础设施建设商、具有国际影响力的工业互联网平台运营商、生产性互联网头部服务商。截至目前,浪潮云洲工业互联网平台连续五年入选跨行业跨领域工…

电脑无法开机,重装系统后没有驱动且驱动安装失败

电脑无法开机,重装系统后没有驱动且驱动安装失败 前几天电脑突然坏了,电脑卡住后,强制关机,再开机后开机马上就关机。尝试无数次开机后失败,进入BIOS界面,发现已经没有Windows系统了。重新安装系统后&…

C++异步future

🌎 C11异步futrue 文章目录: C11异步futrue future介绍     应用场景     future操作       std::async函数模版       std::packaged_task类模版       std::promise类模版 🚀future介绍 std::future是C11标准库…

【C++探索之路】STL---string

走进C的世界,也意味着我们对编程世界的认知达到另一个维度,如果你学习过C语言,那你绝对会有不一般的收获,感受到C所带来的码云风暴~ ---------------------------------------begin--------------------------------------- 什么是…

CF 339A.Helpful Maths(Java实现)

题目分析 输入一串式子,输出从小到大排列的式子 思路分析 如上所说核心思路,但是我要使用笨方法,输入一串式子用split分割开,但是此时需要用到转义字符,即函数内参数不能直接使用“”,而是“\\”。分割开后…

C#,入门教程(07)——软件项目的源文件与目录结构

上一篇: C#,入门教程(06)——解决方案资源管理器,代码文件与文件夹的管理工具https://blog.csdn.net/beijinghorn/article/details/124895033 创建新的 C# 项目后, Visual Studio 会自动创建一系列的目录与文件。 程序员后面的工…

Cpp::静态 动态的类型转换全解析(36)

文章目录 前言一、C语言中的类型转换二、为什么C会有四种类型转换?内置类型 -> 自定义类型自定义类型 -> 内置类型自定义类型 -> 自定义类型隐式类型转换的坑 三、C强制类型转换static_castreinterpret_castconst_castdynamic_cast 四、RTTI总结 前言 Hell…

Android中Service在新进程中的启动流程

目录 1、Service与AMS交互框架介绍 1.1、认识AMS代表IActivityManager 1.2、认识客户端代表IApplicationThread 2、Service启动流程概览 我们知道Android有四大组件,Activity、Service、ContentProvider、Broadcast,每个组件在系统运行中或者我们编写…

docker 简要笔记

文章目录 一、前提内容1、docker 环境准备2、docker-compose 环境准备3、流程说明 二、打包 docker 镜像1、基础镜像2、国内镜像源3、基础的dockerfile4、打包镜像 四、构建运行1、docker 部分2、docker-compose 部分2.1、构建docker-compose.yml2.1.1、同目录构建2.1.2、利用镜…

利用Redis实现数据缓存

目录 1 为啥要缓存捏? 2 基本流程(以查询商铺信息为例) 3 实现数据库与缓存双写一致 3.1 内存淘汰 3.2 超时剔除(半自动) 3.3 主动更新(手动) 3.3.1 双写方案 3.3.2 读写穿透方案 3.3.…

活动回顾和预告|微软开发者社区 Code Without Barriers 上海站首场活动成功举办!

Code Without Barriers 上海活动回顾 Code Without Barriers:AI & DATA 深入探索人工智能与数据如何变革行业 2025年1月16日,微软开发者社区 Code Without Barriers (CWB)携手 She Rewires 她原力在大中华区的首场活动“AI &…

python爬虫入门(一) - requests库与re库,一个简单的爬虫程序

目录 web请求与requests库 1. web请求 1.1 客户端渲染与服务端渲染 1.2 抓包 1.3 HTTP状态代码 2. requests库 2.1 requests模块的下载 2.2 发送请求头与请求参数 2.3 GET请求与POST请求 GET请求的例子: POST请求的例子: 3. 案例:…

全连接神经网络(前馈神经网络)

目录 一、初步认识全连接神经网络 1、神经元 2、网络结构 3、正向传播算法 二、反向传播算法 1、理解 2、迭代流程 三、构建神经网络模型的基本步骤 四、线性回归神经网络结构 4.1 数据处理 1、数据导入 2、数据归一化处理 3、数据集划分 4、数据形状变换 4.2 模…

【C++初阶】第11课—vector

文章目录 1. 认识vector2. vector的遍历3. vector的构造4. vector常用的接口5. vector的容量6. vector的元素访问7. vector的修改8. vector<vector\<int\>>的使用9. vector的使用10. 模拟实现vector11. 迭代器失效11.1 insert插入数据内部迭代器失效11.2 insert插入…