【自动化测试基础】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 之后,可以直接使用。

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 客户端的安装。

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 -version
java 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 successfully
List of devices attached
emulator-5554   device

6. 总结

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

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

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

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


END配套学习资源分享

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

获取方式 :

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

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

相关文章

【AI】InsCode AI 创作助手 --使用心得

CSDN AI写作助手上线了!InsCode AI 创作助手不仅能够帮助用户高效创作文章,而且能够作为对话式AI回答你想知道的问题。成倍提高生产力!欢迎大家使用新功能后分享自己的使用心得与建议! 文章目录 一、你平时会使用这类AI工具吗&am…

实训第一天

目录 主流的关系数据库 非关系型数据库 Mysql的启动和停止 Mysql登录方式本地登录 远程登录 查看mysql数据库 创建数据库 使用数据库 删除数据库 Mysql结构化查询语句 mysql 数据类型 数值类型 字符类型 日期类型 唯一约束与主键约束 主流的关系数据库 mysql,db2,oracle&a…

常用编码格式整理

什么是字符集,字符编码,编码和解码: 字符集: 将一些自然语言中的字符组成一个集合; 字符编码: 字符编码,就是建立一套自然语言中的“字符”跟计算机能够存储 处理的二进制数的映射的规则。 即在一个字符集内…

2023新版Spring6全新讲解-核心内容之事务管理

Spring核心之事务 一、JdbcTemplate JdbcTemplate是Spring框架对JDBC操作进行的封装,可以简化方便对数据库的操作。 1.数据库表结构 准备一张普通的表 CREATE TABLE t_student (id int NOT NULL AUTO_INCREMENT,name varchar(32) DEFAULT NULL,age int DEFAULT N…

树和子树的定义

在数据结构中存在一种叫“树”的结构。 树的定义: 树(tree)是由n(n>0)个节点(或元素)组成的有限集合(记为T)。 如果n0,它是一棵空树,这是树的特征。如果…

“树的子结构”

描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2},2个树的结构如下,可以看出B是A的子结构 数据范围: 0…

华为OD机试题【导师请吃火锅】【2023 B卷 100分】

文章目录 🎯 前言🎯 题目描述🎯 解题思路📙 Python实现代码📗 Java实现代码📘 C语言实现: 🎯 前言 🏆 《华为机试真题》专栏含2023年牛客网面经、华为面经试题、华为OD机…

树的结构-树的各种定义及性质

树: n个结点组成的有限集合。 (1)有且仅有一个特定的称为根的结点。 (2)当n>1时,其余结点可分为m个互不相交的有限集合,其中每个集合本身又是一棵树,称为根节点的子树。 注意&…

VTK-vtkInformation

前言:本博文主要介绍vtk中的接口vtkInformation的应用,以及vtkInformation的衍生用法,希望对各位小伙伴有所帮助,谢谢! 目录 vtkInformation介绍 描述: Information中接受的类型: 方法 vtk…

半导体(TSS)放电管的两大选购注意事项及选型小策略

固体放电管,是以半导体工艺制作而成的,因此我们也称为半导体(TSS)放电管,它常在电路中并联使用,具备伏安特性。 TSS放电管在电路中类似开关,在正常工作时不动作,但一般被保护电路受到…

PRE、RC、beta、RTM 含义扫盲

alpha版:内部测试版。α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本一般是作为技术预览的,很可能包含很多BUG,功能也不全,主要是给开发人员和测试人员测试和找BUG用的。——————————————————————————————————…

直播预告|RTM 助力信令与消息全球实时互通

RTM 是实时消息(Real-time Messaging)的简称。在实时互动场景中,用户通常有两种互动方式:一种是通过音视频进行互动,比如语音连麦、视频连麦等;另一种是通过非音视频的方式进行互动,比如文字聊天…

数据库sql server 2008 r2 RTM版本升级到sql server 2012 r2

(数据库sql server 2008 r2 RTM版本升级到2012) 1.先介绍sql 2008数据库的几个版本 10.00.1600其实就是SQL 2008 10.50.1600其实就是SQL 2008 R2 10.50.2500其实就是SQL 2008 R2 SP1 10.50.4000其实就是SQL Server 2008 R2 SP2 SQL Server 版本号汇总 那么sql server 2008后…

IBM LSF学习(是什么)

碎碎念:这里主要介绍,LSF是什么,本人秉承的写作原则或者技术学习原则,“是什么”,“为什么”,“怎么用”。 这里借鉴了这几篇文章并进行自我理解: https://blog.csdn.net/qq_43653083/article/d…

微软服务器操作系统指什么意思,现代服务器操作系统:你绝对想不到是什么!...

大家好,小编又和大家见面了。上一篇文章,我们了解了Windows Server 2008,今天,我们讲一讲Windows Server 2012。 Windows Server 2012(开发代号:Windows Server 8)是微软的一个服务器系统。这是Windows 8的服务器版本&…

直播选择 RTC 还是 RTMP?

RTC 实时直播 RTC(Real Time Communication)实时音视频通信,它最大的特点就是低延时和无卡顿。从功能流程上说,它包含了采集、编码、前后处理、传输、解码、缓冲、渲染等诸多环节,每一个细分环节,还有更细…

灰度测试是什么意思

本文章,百度论坛知乎等处查询,了解灰度测试,方便学习。本文章只限学习。文章可能内容多,我进行了网上查询终结,还需细看整理,如有重复内容请见谅,我也正在了解,方便手机携带查看。 …

MySQL安装流程 及 8.0与5.7区别

一、MySQL版本介绍 1、MySQL 8.0 窗口函数:MySQL 8.0版本支持窗口函数,这是数据分析工作中非常常用的一类函数。窗口函数可以让用户在单个查询中跨多个行检索数据,并在查询结果中对数据执行计算。隐藏索引:在MySQL 8.0版本中&am…

探究Cache缓存功能---【pytest】

前言 pytest运行完用例之后会生成一个 .pytest_cache的缓存文件夹,用于记录用例的ids和上一次失败的用例。 1、跑自动化时经常会出现这样一个情况,一轮自动化跑完后零星出现了几个失败测试用例,无法断定失败的原因,所以可能需要重…