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.mzph.cn/web/67040.shtml

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

相关文章

C#高级:常用的扩展方法大全

1.String public static class StringExtensions {/// <summary>/// 字符串转List&#xff08;中逗 英逗分隔&#xff09;/// </summary>public static List<string> SplitCommaToList(this string data){if (string.IsNullOrEmpty(data)){return new List&…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.1 从零搭建NumPy环境:安装指南与初体验

1. 从零搭建NumPy环境&#xff1a;安装指南与初体验 NumPy核心能力图解&#xff08;架构图&#xff09; NumPy 是 Python 中用于科学计算的核心库&#xff0c;它提供了高效的多维数组对象以及用于处理这些数组的各种操作。NumPy 的核心能力可以概括为以下几个方面&#xff1a…

【SpringBoot教程】Spring Boot + MySQL + HikariCP 连接池整合教程

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 在前面一篇文章中毛毛张介绍了SpringBoot中数据源与数据库连接池相关概念&#xff0c;今天毛毛张要分享的是关于SpringBoot整合HicariCP连接池相关知识点以及底层源码…

Java进阶(一)

目录 一.Java注解 什么是注解&#xff1f; 内置注解 元注解 二.对象克隆 什么是对象克隆? 为什么用到对象克隆 三.浅克隆深克隆 一.Java注解 什么是注解&#xff1f; java中注解(Annotation)又称java标注&#xff0c;是一种特殊的注释。 可以添加在包&#xff0c;类&…

【PyCharm】将包含多个参数的 shell 脚本配置到执行文件来调试 Python 程序

要配置 PyCharm 以使用包含多个参数的 shell 脚本&#xff08;如 run.sh&#xff09;来调试 Python 程序&#xff0c;您可以按照以下步骤操作&#xff1a; 创建一个新的运行/调试配置&#xff1a; 在 PyCharm 中&#xff0c;点击“运行”菜单旁边的齿轮图标&#xff0c;选择“…

即梦(Dreamina)技术浅析(二):后端AI服务

1. 文本处理(Text Processing) 1.1 功能概述 文本处理模块的主要任务是将用户输入的文字提示词转换为机器可以理解的向量表示。这一过程包括分词、词嵌入和语义编码,旨在捕捉文本的语义信息,为后续的图像和视频生成提供准确的指导。 1.2 关键技术 1.分词(Tokenization…

蓝桥杯之c++入门(一)【第一个c++程序】

目录 前言一、第⼀个C程序1.1 基础程序1.2 main函数1.3 字符串1.4 头文件1.5 cin 和 cout 初识1.6 名字空间1.7 注释 二、四道简单习题&#xff08;点击跳转链接&#xff09;练习1&#xff1a;Hello,World!练习2&#xff1a;打印飞机练习3&#xff1a;第⼆个整数练习4&#xff…

【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插入…

【AIGC学习笔记】扣子平台——精选有趣应用,探索无限可能

背景介绍&#xff1a; 由于近期业务发展的需求&#xff0c;我开始接触并深入了解了扣子平台的相关知识&#xff0c;并且通过官方教程自学了简易PE工作流搭建的技巧。恰逢周会需要准备与工作相关的分享主题&#xff0c;而我作为一个扣子平台的初学者&#xff0c;也想探索一下这…

mysql 学习6 DML语句,对数据库中的表进行 增 删 改 操作

添加数据 我们对 testdatabase 数据中 的 qqemp 这张表进行 增加数据&#xff0c;在这张表 下 打开 命令行 query console 在 软件中就是打开命令行的意思 可以先执行 desc qqemp; 查看一下当前表的结构。 插入一条数据 到qqemp 表&#xff0c;插入时要每个字段都有值 insert…

Java Web-Request与Response

在 Java Web 开发中&#xff0c;Request 和 Response 是两个非常重要的对象&#xff0c;用于在客户端和服务器之间进行请求和响应的处理&#xff0c;以下是详细介绍&#xff1a; Request&#xff08;请求对象&#xff09; Request继承体系 在 Java Web 开发中&#xff0c;通…

李沐vscode配置+github管理+FFmpeg视频搬运+百度API添加翻译字幕

终端输入nvidia-smi查看cuda版本 我的是12.5&#xff0c;在网上没有找到12.5的torch&#xff0c;就安装12.1的。torch&#xff0c;torchvision&#xff0c;torchaudio版本以及python版本要对应 参考&#xff1a;https://blog.csdn.net/FengHanI/article/details/135116114 创…

论文阅读(十六):利用线性链条件随机场模型检测阵列比较基因组杂交数据的拷贝数变异

1.论文链接&#xff1a;Detection of Copy Number Variations from Array Comparative Genomic Hybridization Data Using Linear-chain Conditional Random Field Models 摘要&#xff1a; 拷贝数变异&#xff08;CNV&#xff09;约占人类基因组的12%。除了CNVs在癌症发展中的…

Alibaba Spring Cloud 十三 Nacos,Gateway,Nginx 部署架构与负载均衡方案

在微服务体系中&#xff0c;Nacos 主要承担“服务注册与发现、配置中心”的职能&#xff0c;Gateway&#xff08;如 Spring Cloud Gateway&#xff09;通常负责“路由转发、过滤、安全鉴权、灰度流量控制”等功能&#xff0c;而 Nginx 则常被用作“边缘反向代理”或“统一流量入…

Next.js 实战 (十):中间件的魅力,打造更快更安全的应用

什么是中间件&#xff1f; 在 Next.js 中&#xff0c;中间件&#xff08;Middleware&#xff09;是一种用于处理每个传入请求的功能。它允许你在请求到达页面之前对其进行修改或响应。 通过中间件&#xff0c;你可以实现诸如日志记录、身份验证、重定向、CORS配置、压缩等任务…

ElasticSearch-文档元数据乐观并发控制

文章目录 什么是文档&#xff1f;文档元数据文档的部分更新Update 乐观并发控制 最近日常工作开发过程中使用到了 ES&#xff0c;最近在检索资料的时候翻阅到了 ES 的官方文档&#xff0c;里面对 ES 的基础与案例进行了通俗易懂的解释&#xff0c;读下来也有不少收获&#xff0…

实验二 数据库的附加/分离、导入/导出与备份/还原

实验二 数据库的附加/分离、导入/导出与备份/还原 一、实验目的 1、理解备份的基本概念&#xff0c;掌握各种备份数据库的方法。 2、掌握如何从备份中还原数据库。 3、掌握数据库中各种数据的导入/导出。 4、掌握数据库的附加与分离&#xff0c;理解数据库的附加与分离的作用。…

技术中台与终搜——2

文章目录 5、语言处理与自动补全技术探测5.1 自定义语料库5.1.1 语料库映射OpenAPI5.1.2 语料库文档OpenAPI 5.2 产品搜索与自动补全5.2.1 汉字补全OpenAPI5.2.2 拼音补全OpenAPI 5.3 产品搜索与语言处理5.3.1 什么是语言处理&#xff08;拼写纠错&#xff09;5.3.2 语言处理Op…

15_业务系统基类

创建脚本 SystemRoot.cs 因为 业务系统基类的子类 会涉及资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs 所以在业务系统基类 提取引用资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs 并调用单例初始化 using UnityEngine; // 功能 : 业务系统基类 public c…

k8s优雅重启

理论上处于terminating状态的pod&#xff0c;k8s 就会把它从service中移除了&#xff0c;只用配置一个优雅停机时长就行了。kubectl get endpoints 验证 因此&#xff0c;优雅重新的核心问题&#xff0c;是怎么让空闲长连接关闭&#xff0c;再等待处理中的请求执行完。 一些底…