App自动化测试之Appium 环境搭建保姆级教程(全网最全)

news2024/11/19 5:54:16

前言

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

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

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

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

  • Appium 服务;
  • Appium 客户端;
  • Java JDK
  • Android SDK
  • 手机

一、安装 Appium 服务

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

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

 

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

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

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

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

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 inter face listener started on 0.0.0.0:4444

 

二、安装 Appium 客户端

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

pip install Appium-Python-Client

三、安装 Java JDK

Appium 需要 Java 8 以上的开发环境最新的版本是 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)

四、安装 Android SDK

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

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

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

安卓环境和 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 来检测是否安装成功。

五、手机连接

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

如果你只是个人使用,不太方便把自己的真机做成测试机来使用,那么我建议大家安装模拟器,目前来说在国内手机模拟器非常非常多,常用的有雷电、夜神、逍遥、网易 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

六、总结

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

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

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

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

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

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

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

相关文章

fragment常用知识点

fragment基本使用 摘自官网的代码示例 class ExampleActivity : AppCompatActivity(R.layout.example_activity) {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)// 注意这里有判断,当saveInstanceState为空时再创建。…

git提交代码报错Git: husky > pre-commit

目录 git提交代码报错原因解决方法(三种)1、第一种2、第二种3、第三种 git提交代码报错原因 这个问题是因为当你在终端输入git commit -m “XXX”,提交代码的时候,pre-commit(客户端)钩子,它会在Git键入提交信息前运行做代码风格检查。如果代…

53 代码审计-TP5框架及无框架变量覆盖反序列化

目录 演示案例:Metinfo-无框架-变量覆盖-自动审计或搜索phpmyadmin-无框架-反序列化-自动审计或搜索Thinkphp5-有框架-搭建使用入口访问调试SQL等 演示案例: Metinfo-无框架-变量覆盖-自动审计或搜索 变量覆盖会直接覆盖原始变量,来形成新的变量值 搜索关键字或者…

智慧社区前景无限,科技引领未来发展

社区是城镇化发展的标志,作为人类现代社会的生活的基本圈子,是人类生活离不开的地方,社区人口密度大、车辆多,管理无序,社区的膨胀式发展多多少少带来一定的管理上的缺失。社区作为智慧城市建设的重要一环,…

zedbox 实现配置 yolov5

Stereolabs 的 ZED Box 是一款由 NVIDIA Jetson™ 提供支持的紧凑型网关,用于在移动和现场情况下挑战 AIoT(物联网)。它旨在将空间感知和理解带到边缘,并聚合、处理和分析来自 3D 传感器和设备的数据。 相关内容 1.win10下 cud…

A-23 P离子交换树脂:高效去除无机有机污染物的新选择

在当今水处理行业中,高效、环保的离子交换树脂备受关注。本文将为您介绍一款具有卓越性能的碱性季胺基阴离子交换树脂——Tulsion A-23 P。通过分析其特性和应用,展示其在水处理领域的优势。 一、Tulsion A-23 P离子交换树脂的特性 物理化学稳定性&#…

Connection refused: no further information

解决目录 一、报错信息二、解决方法 一、报错信息 二、解决方法 1、报错原因是开启了代理,像AS是绝对不能开代理的。 2、设置为No proxy,然后Apply再选择OK,重新同步。 要远离消耗你的人和事,不要花费任何情绪或者精力在他们身…

【排序算法】快速排序

一:基本概念 1.1 介绍 快速排序由C. A. R. Hoare在1962年提出,它是一种基于二叉树结构的交换排序算法,它采用了一种分治的策略,通常称其为分治法。该方法的基本思想是:先从数列中取出一个数作为基准数,然…

【MySQL系列】Centos安装MySQL

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

10天玩转Python第1天:python基础知识与常用开发工具全面详解

这里写自定义目录标题 1.课程之前1.1 课程介绍1.2 今日内容1.3 Python 介绍[了解]1.4 语言的分类 2 Python 环境配置2.1 Python 解释器的安装2.2 pycharm 的配置安装2.3 路径的选择(建议) 3 使用 pycharm 书写代码3.1 双击打开 pycharm 软件3.2 创建新 项目3.3 配置项目的路径和…

网工内推 | 项目经理专场,最高20K*13薪,软考证书优先

01 Trasen 招聘岗位:大项目经理(医疗行业/HIS) 职责描述: 1.负责项目按计划完成交付并顺利验收结项; 2.参与项目前期预算、评审、方案设计等; 3.负责具体项目实施,制定项目计划、组织项目资源、…

wvp gb28181 pro 配置https访问

准备工作 必须要有域名。虽然数字证书也有ip证书,但是会很麻烦,多数ca机构验证服务器需要用到80或443端口,也就是必须先备案,所以最好还是使用域名证书。购买域名证书。根据安全级别要求自行配置。单域名(不支持通配符的),阿里云的域名都是可以免费申请的。完成域名到服…

jieba,一个结巴的Python库

微信公众号:愤怒的it男,超多Python技术干货文章。 一、jieba的简介 在自然语言处理任务时,中文文本需要通过分词获得单个的词语,此时一个好的分词工具是非常有必要的。jieba分词是一个开源项目,地址为:git…

Python从入门到精通四:Python循环语句

前言 循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。 为什么学习循环语句 循环在程序中同判断一样,也是广泛存在的,是非常多功能实现的基础: while循环的基础语法 学习目标&…

竞赛保研 LSTM的预测算法 - 股票预测 天气预测 房价预测

0 简介 今天学长向大家介绍LSTM基础 基于LSTM的预测算法 - 股票预测 天气预测 房价预测 这是一个较为新颖的竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 1 基于 Ke…

基于Qt的登录页面设计

题目: 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和…

leetcode 股票DP系列 总结篇

121. 买卖股票的最佳时机 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。 只能进行一次交易 很简单&#xff0c;只需边遍历边记录最小值即可。 class Solution { public:int maxProfit(vector<int>& prices) {int res …

Java:字符流 文件输出 与 读入 方法

Java&#xff1a;字节流 文件输出与读入方法 并 实现文件拷贝 文章目录 字符流FileReaderFileWrite 字符流 字符流底层就是字节流。 字符流 字节流 字符集 特点&#xff1a; 输入流&#xff1a;一次读入一个字节&#xff0c;遇到中文时&#xff0c;一次读多个字节。 输出流…

我的 CSDN 三周年创作纪念日:2020-12-12

本人大叔一枚&#xff0c;自1992年接触电脑&#xff0c;持续了30年的业余电脑发烧爱好者&#xff0c;2022年CSDN博客之星Top58&#xff0c;阿里云社区“乘风者计划”专家博主。自某不知名财校毕业后进入国有大行工作至今&#xff0c;先后任职于某分行信息科技部、电子银行部、金…

六级翻译之印章

好像大房子挺难得 三段式 1Since ancient from now&#xff0c;seals have been a symbol of power and certerfiction of identity.seals not only practical but also is a form of art.Seal is an ancient art combining with manafutuer of crafting and desgin of…