Appium自动化环境搭建保姆级教程

APP自动化测试运行环境比较复杂,稍微不注意安装就会失败。我见过不少朋友,装了1个星期,Appium 的运行环境还没有搭好的。

搭建环境本身不是一个有难度的工作,但是 Appium 安装过程中确实存在不少隐藏的比较深的坑,如果一不小心踩中了其中的一个,那可能会花费比较长的时间来解决。

今天九柄出一个 Appium 安装的详细教程,只要你照着这个做,并且注意我标出来的每一个注意事项,就可以轻松地装好 Appium 运行环境。

我们以安卓自动化测试环境为例,APP自动化测试需要安装的环境主要有以下几个:

  1. Appium 服务;
  2. Appium 客户端;
  3. Java JDK
  4. Android SDK
  5. 手机

1. 安装 Appium 服务

Appium 服务安装有 2 中形式:带 GUI 界面版和命令行版本。界面版和命令行版在功能上没什么区别,只是它带了操作界面,可以让你比较方便的填写Appium运行的参数。

直接找到 Appium GitHub下载地址,选择操作系统的版本。如果你的操作系统是windows,那你就直接选择 windows的安装包,如果你的操作系统是MAC就选择对应的MAC安装包。因为九柄的电脑是windows系统,所以就以windows来演示吧的。GitHub 在国内的下载速度比较慢,可能需要等几个小时,如果你没有「快速访问GitHub」的条件,可以直接私信我,我把我本地的安装包发给你

安装包下载完成之后,我们直接点击安装,这儿需要注意一个问题,在安装的时候选择只给本人安装,而不要选择 All Users,否则后面可能你会因为权限的问题而导致APP的运行失败。

安装完成之后,我们直接打开对应的Appium图标,然后点击开启服务。此时APP会监听一个本地的端口,默认是 4723 端口,你可以自己修改成其他没有被占用的端口号。等有新的操作指令进来之后,Appium服务会转发这些操作指令到连接的手机。

命令行版本的 Appium 首先需要安装 Node.js 的运行环境,直接打开 Node.js官网下载 LTS 长期支持版。下载完成后,指定目录安装,并且记住安装路径,把 Node.js 的执行路径设置到电脑的环境变量 Path 中。

在配置好 Path 环境变量后,接下来使用 Node.js 的包管理工具 npm 安装 Appium 命令行工具。 npm 不需要单独安装,装好 Node.js 之后,可以直接使用。

  1. npm install -g appium

Appium 安装完成之后,我们可以直接在命令行当中输入appium启动服务。命令行提供了很多运行参数,可以使用 -p 修改服务监听的端口,也可以将运行日志保存到指定的文件路径可以直接通过 --help 获取每一个命令行参数的说明。


C:\Users\jiubing>appium -p 4444[Appium] Welcome to Appium v1.22.0[Appium] Non-default server args:[Appium] port: 4444[Appium] Appium REST http interface listener started on 0.0.0.0:4444

2. 安装 Appium 客户端

Appium 客户端安装相对来说比较简单,它支持主流的编程语言,九柄目前用的是Python语言,所以我们直接安装 Python的客户端,打开命令行工具,使用 Python 的包管理工具完成 Appium 客户端的安装。

  1. pip install Appium-Python-Client

3. 安装 Java JDK

Appium 需要 Java 8 以上的开发环境,我们在 Oralce 官网能直接下载到,最新的版本是 8u202。由于网络影响,你可能无法正常进入oracle官网下载,那么你可以选择通过国内镜像下载也是可以的,我经常会通过华为镜像地址下载,下载后点击安装,设置好安装路径。

JDK 下载安装好后,同样需要配置环境变量。打开环境变量设置窗口,开始菜单 -> 右键计算机 -> 系统属性 -> 高级系统设置 -> 高级 -> 环境变量。

点击新建,变量名填 JAVA_HOME, 变量值是 JDK 的安装目录。在弹出框中变量值填写 JDK 安装的根目录,即上面记录下来的 C:\Program Files\Java\jdk1.8.0_141),如下图示:

在系统变量找到 Path 变量,点击新建,增加配置 %JAVA_HOME%\bin,点击确认,重启电脑,让环境变量生效。

打开 Windows 的 cmd 窗口,输入 Java 命令查看是否正确安装。 如果安装没问题,会显示正常的版本,否则会提示错误。


C:\Users\jiubing>java -versionjava version "1.8.0_301"Java(TM) SE Runtime Environment (build 1.8.0_301-b09)Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)

4. 安装 Android SDK

目前安卓的运行环境主要集成在一个叫做 Android Studio 的软件当中,这个软件非常的庞大,是用于安卓软件的集成开发环境。

这个软件非常吃内存,作为自动化测试,也不会用到里面的巨大多数功能,所以我们会尝试更轻量级的ADT Bundle,号称安卓的新手开发礼包,这里面提供了必要的安卓运行需要的工具以及环境。

官网下载地址:linux 64 bit、linux 32 bit、MacOS X、Win32、Win64

国内下载地址,都是免安装版本,直接解压放到目录下就可以。如果觉得麻烦,也可以私信我领取最新的版本,我下载好的升级到了最新的系统版本工具。

安卓环境和 JDK 一样,也需要配置环境变量。解压完成后进入到对应的 adt-bundle-windows-x86_64-20140702\sdk\platform-tools 目录,这个目录有存放 appium 自动化所需要的相关组件和工具,接下来我们需要来将platform-tools这个目录配置到系统环境变量中,方便全局使用。

进入到系统环境变量设置中 -> 新建 ANDROID_HOME,变量值为你的 SDK 对应的目录,比如我的 ADT 软件包解压之后是在 D 盘,那么 SDK 对应的目录就是:D:\adt-bundle-windows-x86_64-20140702\sdk

接下来我们把 SDK 对应的 platform-tools 目录以及 tools 配置到系统变量 Path 里面去:Path 里面点击新建,添加%ANDROID_HOME%\platform-tools 以及 %ANDROID_HOME%\tools2 个变量,其他需要用到的可以自行添加。设置好,重启电脑让环境变量生效。打开系统的 cmd 窗口输入 adb version 来检测是否安装成功。

5. 手机连接

手机可以是模拟器、真机和云设备。

如果你只是个人使用,不太方便把自己的真机做成测试机来使用,那么我建议大家安装模拟器,目前来说在国内手机模拟器非常非常多,常用的有雷电、夜神、逍遥、网易 mumu 以及腾讯手游助手等等。

任何一个公司的模拟器都是可以满足自动化测试的需求,设置上会稍微有一点区别,不过不明显。目前来说,我会使用雷电模拟器跟大家演示。(如果会鼓捣,官方的模拟器更清爽,启动也更快)

直接从雷电的官网下载最新的模拟器版本,然后像安装其他普通软件一样安装,安装完成之后,打开命令行工具,然后在命令行当中输入 adb devices,如果能够正常发现模拟器,那么就会显示以下信息。


C:\Users\jiubing>adb devices* daemon not running; starting now at tcp:5037* daemon started successfullyList of devices attachedemulator-5554 device

6. 总结

到这里,Appium 运行环境就设置好了,注意事项再提醒一下。

1、Appium 服务分为界面版和命令行版本,新手可直接使用界面版,上手快一些,Appium 下载的速度非常慢,自备工具或者做伸手党,向别人要也可以。

2、SDK 和 ADT Bundle 都需要设置环境变量,设置完成后重启电脑。

3、不管是模拟器还是真机,都需要被 adb 命令识别到。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

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

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

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

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

相关文章

用友NC pagesServlet SQL注入致RCE漏洞复现(XVE-2024-13067)

0x01 产品简介 用友NC是由用友公司开发的一套面向大型企业和集团型企业的管理软件产品系列。这一系列产品基于全球最新的互联网技术、云计算技术和移动应用技术,旨在帮助企业创新管理模式、引领商业变革。 0x02 漏洞概述 用友NC /portal/pt/servlet/pagesServlet/doPost接口…

操作系统入门系列-MIT6.828(操作系统工程)学习笔记(三)---- xv6初探与实验一(Lab: Xv6 and Unix utilities)

系列文章目录 操作系统入门系列-MIT6.S081(操作系统)学习笔记(一)---- 操作系统介绍与接口示例 操作系统入门系列-MIT6.828(操作系统工程)学习笔记(二)----课程实验环境搭建&#x…

SM国密加密算法简介

国密(商密)算法算法类型是否公开技术特点应用场景SM1对称密码算法否,需要加密芯片的接口进行调用加密强度与AES相当电子政务/商务,智能IC卡、加密卡等SM2非对称密码算法是基于ECC,签名速度与密钥生成速度快于RSA&#…

Vue3 全屏组件 源码

在Vue 3中&#xff0c;实现了全屏功能的组件&#xff0c;开箱即用。 使用了screenfull依赖库&#xff0c;可以省去浏览器适配的麻烦。 代码如下&#xff1a; <template><div ref"myFullScreen" ><slot></slot></div> </template…

ResizeObserver监听画布尺寸改变动态渲染echarts

前言&#xff1a; 在日常开发中有时遇到同数据相关的业务可能会用到echarts插件。一般在封装echarts组件的时候大家可能都会通过windows对象监听浏览器窗口大小的改变动态渲染echarts,这样当echarts窗口改变导致echarts画布元素大小改变的同时&#xff0c;就能调用相关api进行重…

RocketMQ相关知识知多少

一、RocketMQ的定义 官网网址&#xff1a;领域模型概述 | RocketMQ Apache RocketMQ 自诞生以来&#xff0c;因其架构简单、业务功能丰富、具备极强可扩展性等特点被众多企业开发者以及云厂商广泛采用。历经十余年的大规模场景打磨&#xff0c;RocketMQ 已经成为业内共识的金…

Flink的简单学习二

一 Flink的核心组件 1.1 client 1.将数据流程图DataFlow发送给JobManager。 1.2 JobManager 1.收集client的DataFlow图&#xff0c;将图分解成一个个的task任务&#xff0c;并返回状态更新数据给client 2.JobManager负责作业调度&#xff0c;收集TaskManager的Heartbeat和…

方法调研:DDOS检测有哪些方法?

检测DDoS攻击的方法多种多样,主要可以归纳为以下几类:流量分析、行为分析、协议分析、分布式检测和基于机器学习的方法。每种方法都有其独特的优势和适用场景。以下是这些方法的详细介绍: 1. 流量分析 基线分析 原理:建立正常流量的基线,通过比较当前流量与基线的偏差来…

【Java】--SpringBoot 统一异常处理

目录 统一异常处理 统一异常处理 通过使用注解ControllerAdvice&#xff08;控制器通知类&#xff09;ExceptionHandler&#xff08;异常处理器&#xff09;来实现&#xff0c;两个结合表示出现异常的时候执行某个通知&#xff0c;即执行某个方法事件。 对应的异常类执行对应…

三、基于图像分类预训练编码及图神经网络的预测模型 【框图+源码】

背景&#xff1a; 抽时间补充&#xff0c;先挖个坑。 一、模型结构 二、源码

美团一面:什么是CAS?有什么优缺点?我说你说的是AtomicInteger吗?

引言 传统的并发控制手段&#xff0c;如使用synchronized关键字或者ReentrantLock等互斥锁机制&#xff0c;虽然能够有效防止资源的竞争冲突&#xff0c;但也可能带来额外的性能开销&#xff0c;如上下文切换、锁竞争导致的线程阻塞等。而此时就出现了一种乐观锁的策略&#x…

解析Java中1000个常用类:ProcessHandle.Info类,你学会了吗?

效率工具 推荐一个程序员常用的工具网站:程序员常用工具(http://tools.cxyroad.com),有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。云服务器 云服务器限时免费领:轻量服务器2核4G腾讯云:2核2G4M云服务器新老同享99元/年,续费同价阿…

企业数字化转型的测度难题:基于大语言模型的新方法与新发现

《经济研究》新文章《企业数字化转型的测度难题&#xff1a;基于大语言模型的新方法与新发现》运用机器学习和大语言模型构造一套新的企业数字化转型指标。理论分析和数据交叉验证均表明&#xff0c;构建的指标相对已有方法更准确&#xff1a; 1.第一步&#xff1a;选择“管理…

17.Redis之主从复制

1.主从复制是怎么回事&#xff1f; 分布式系统, 涉及到一个非常关键的问题: 单点问题 单点问题&#xff1a;如果某个服务器程序, 只有一个节点(只搞一个物理服务器, 来部署这个服务器程序) 1.可用性问题,如果这个机器挂了,意味着服务就中断了~ 2.性能/支持的并发量也是比较有限…

【HarmonyOS】鸿蒙系统中应用权限等级介绍、定义、申请授权讲解

【HarmonyOS】鸿蒙系统中应用权限等级介绍、定义、申请授权讲解 针对权限等级&#xff0c;相对于主体来说&#xff0c;会有不同的细分概念。 一、权限APL等级&#xff1a; 首先在鸿蒙系统中&#xff0c;对于权限本身&#xff0c;分为三个等级&#xff1a;normal&#xff0c;s…

(9)svelte 教程: Event Modifiers

&#xff08;9&#xff09;svelte 教程&#xff1a; Event Modifiers 什么是 Event Modifiers Event Modifiers 是 Svelte 框架中的一种特性&#xff0c;它允许你在绑定事件处理函数时&#xff0c;添加一些修饰符来修改事件的默认行为或事件流。通过这些修饰符&#xff0c;可…

SQL面试问题集

目录 Q.左连接和右连接的区别 Q.union 和 union all的区别 1、取结果的交集 2、获取结果后的操作 Q.熟悉开窗函数吗&#xff1f;讲一下row_number和dense_rank的区别。 Q.hive行转列怎么操作的 Q.要求手写的题主要考了聚合函数和窗口函数&#xff0c;row_number()&#…

TypeScript算法每日一题:最富有客户的资产总量(1672)

作者&#xff1a;前端小王hs 阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主 题库&#xff1a;力扣 题目序号&#xff1a;1672&#xff08;简单&#xff09; 题目&#xff1a;最富有客户的资产总量 给你一个m x n的整数网格accounts&#xff…

同一个tomcat不同端口运行不同项目

第一步&#xff1a;修改 server.xml 文件 修改 tomcat 安装目录下 conf/server.xml 文件&#xff0c;需要几个端口就添加几个 Service 节点。 配置 2 个端口&#xff1a;9131 和 9133&#xff0c;于是增加两个 Service 节点。 每个 Service 节点的 name 属性值要设置不同的值…

【MATLAB】雷达信号处理程序源码 雷达系统仿真代码 matlab SAR

【MATLAB】雷达信号处理程序源码 雷达系统仿真代码 matlab SAR 包含以下所有源码,内容如下&#xff1a;&#xff1a; 1、 MATGPR R3探地雷达数据处理 MATLAB 程序 2、 python 雷达图像识别 3、 SAR 雷达回波仿真 matlab 4、 SAR 雷达影像处理源码 5、 STFT 处理 IPIX 雷达…