软件测试 | APP测试 —— Appium 的环境搭建及工具安装教程
大家应该都有同一种感觉,学习appium最大的难处之一在于环境的安装,安装流程比较繁琐,安装的工具和步骤也较多,以下是基于Windows系统下的Android手机端的安装流程。就像我们在用Selenium进行web自动化测试的时候一样,我们需要一个浏览器来执行测试脚本。那么移动端自动化测试,我们同样需要一部Android手机(手机需要链接电脑)或者 Android 模拟器。
appium的环境搭建
一、环境准备
在环境搭建前需要检查本机电脑的位数,根据相应位数下载对应的安装包。
需要准备的工具如下:
Jdk
android-sdk_r24.3.4-windows
Python
appium
.net Frameword
Node.js:node-v4.4.7-x64
appium-Python-Client
Android 模拟器
SDK platform tools 安装
二、jdk 安装
众所周知,Android 是由 Java 语言开发的,所以想开发 Android 应用首先需要 Java 环境, 所以, 我们首先需要安装 Java 环境。java 下载地址:http://www.java.com/zh_CN/download/manual.jsp。
注:java 环境分 JDK 和 JRE ,JDK 就是 Java Development Kit.简单的说 JDK 是面向开发人员使用的 SDK,它提供了 Java 的开发环境和运行环境。JRE 是 Java Runtime Enviroment 是指 Java 的运行环境,是面向 Java 程序的使用者,而不是开发者。
(1) 下载:下载 jdk 包,小编的是 64 位 win10 版本,其它高级版本应该也是可以的。根据自己的系统选择对应版本。

(2) 安装:双击下载的 JDK,设置安装路径,注意安装路径不要有空格,不要有中文。jdk 和 jre 不要放在一个文件夹下。
(3) 环境变量:设置三个环境变量,分别是 JAVA_HOME,CLASS_PASS,PATH,在我的电脑>选择“属性”->“高级”->“环境变量”->“系统变量”->“新建”里设置。



(4)验证:编辑完成后,需要验证 java 是否安装成功,方法是在 cmd 中输入 java 和 javac,如果显示以下信息,则说明安装成功。java 命令可以运行 class 文件字节码。javac 命令可以将 java 源文件编译为 class 字节码文件。


三、Android-sdk 下载安装
Android SDK 提供了你的 API 库和开发工具构建,测试和调试应用程序, Android。简单来讲,Android SDK 可以看做用于开发和运行 Android 应用的一个软件。
根据我的验证 adt 和 sdk 都可以用来运行 android 模拟器,所以下载哪个都可以。下载链接中已经标识了系统信息,请根据自己的操作系统下载相应的版本。
扩 展理解:
ADT(Android Development Tools):目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为 Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。adt只是一个eclipse的插件,里面可以设置sdk路径。
SDK(Software Development Kit):一般是一些被软件工程 师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在Android中,他为开发者提供了库文件以及其他开发所用到的工具。简单理解为开发工具包集合,是整体开发中所用到的工具包,如果你不用Eclipse作为你的开发工具,你就不需要下载 ADT,只下载SDK即可开发。SDK可以自己编译,在linux环境下通过make命令进行,耗时比较长,需要有耐心。我们可以把自己编译的 SDK通过ADT导入eclipse。在此基础上可以对源码包进行修改,比如修改android system/app/phone.apk中的源码。
(1) 下载:好多人直接下载 AndroidStudio,但是如果只做自动化的话只需要下载 Android SDK 就可以了。
下载地址:http://tools.android-studio.org/index.php/sdk/。


(2) AndroidSDK 环境变量:下载成功解压后配置 Android SDK 的环境。如上面新建 JAVA_HOME 一样,新建 ANDROID_HOME,如下:

“我的电脑”右键菜单--->属性--->高级--->环境变量--->系统变量-->新建

找到 path 变量名—>“编辑”添加:

四、Node.js 安装
简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。
(1)下载:
下载地址是 https://nodejs.org/en/Cs

(2)环境变量:下载获取到安装文件后,直接双击安装文件,根据程序的提示, 完成 nodejs 的安装(一直下一步就行,可以将路径进行修改)。将 Node.js 的安装路径(也就是 node.exe 文件所在的目录)D:\Program Files\nodejs 追加到环境变量 Path 中。

(3)验证:检查一下环境是否配置好,在命令行中输入 npm。

五、net framework 安装
由于 appium 是用.net 开发的,所以安装之前需要安装.net framework,否则安装过程中会报错,
官网下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=30653
下载成功后直接点击安装即可。
六、appium 安装
(1) 下载:
下载地址 https://bitbucket.org/appium/appium.app/downloads/
当前最新版本为 appiumForWindows_1_4_16_1.zip
注意:这是一个 Windows 版本,如果你的电脑为 MAC 请下载 appium-1.5.3.dmg。以 Windows 为例,将下载的 appiumForWindows.zip 进行解压,点击 appium-installer.exe 进行安装。
(2)环境变量:
将安装的 appium 文件夹所在目录\appium\node_modules\.bin 添加进 path。

(3)验证:cmd 打开命令行窗口,输入 appium-doctor ,出现以下提示,All Checks were successful ,说明环境配置成功。

七、Python 安装
(1) 下载:打开 Python 官网网址 https://www.python.org/,双击进行安装。安装完成后,可以看到安装好的 Python 目录,如图:

(2)验证:打开 cmd,输入 Python,即可看到版本信息并进入 Python,如下:

八、appium-python-client 安装
安装完 Python 后,我们需要将 Python 与 appium 关联起来。cmd 打开命令行窗口,输入:pip install appium-Python-Client,提示成功就可以了。

九、Android 模拟器安装
当 Android SDK 安装完成之后,并不意味着已经装好了安装模拟器。Android 系统有多个版本,所以我们需要选择一个版本进行安装。
打开解压后的 SDK 文件夹,点击 SDK Manager,双击启动 SDK Manager.exe程序。

点击”create”:

如果显示屏分辨率比较低的话,尽量选择低分辨率的“Device”。点击“OK”,在 AVD Manager 窗口,点击“Start...”按钮启动 android 模拟器。

因为新虚拟机没了实体键,所以我们可以利用键盘按键来操作 android 虚拟机。

当然,不能保证你 SDK 可以更新。所以, 这里推荐一个网站:http://www.androiddevtools.cn/它提供了国内的代理,以及各种开发工具的安装。在 Android SDK Manager 的菜单栏上点击“Tools”---->“Options...” 设置相关代码,如下图:

然后,就可以更新了:

十、SDK platform tools 安装
Android SDK Platform-tools 是版本有区别的工具文件夹,里面有 adb 、
aapt、fastboot 等工具包。在 AndroidDevTools.cn 网站上找到Android SDK Platform-tools 下载链接。

(1) 安装:安装 Tools 下的 Android SDK Platform-tools 和 Android SDK Build-tools,Android SDK Tools 可以选择是否更新,建议直接更新。镜像:随便选个版本也可以选择多个版本安装,由于镜像比较大,所以喜欢真机的朋友们可以不下载镜像,GoogleFQ 安装:Extras 文件夹下所有的全部安装。


(2) Tool 环境变:将下面环境变量添加到 path 中,如下:
变量名:PATH
变量值:%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
%ANDROID_HOME%\build-tools\27.0.3

(3) 验证:检查 Android SDK 是否配置成功,win+r cmd 打开命令行窗口,在命令行窗口中输入 adb –-version:

打开 Windows 命令提示符,通过“appium-doctor”命令检查 appium 环境。如果显示”All Checks ware successful”,则说明环境以及搭建成功。

ok,今天我们的知识分享就到这里了,下一期我们将从appium的原理,它的加载过程,工作过程以及所使用的技术等。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:
软件测试 | APP测试 —— Appium 的环境搭建及工具安装教程
大家应该都有同一种感觉,学习appium最大的难处之一在于环境的安装,安装流程比较繁琐,安装的工具和步骤也较多,以下是基于Windows系统下的Android手机端的安装流程。就像我们在用Selenium进行web自动化测试的时候一样,我…...
计算机人工智能前沿进展-大语言模型方向-2024-09-13
计算机人工智能前沿进展-大语言模型方向-2024-09-13 1. OneEdit: A Neural-Symbolic Collaboratively Knowledge Editing System Authors: Ningyu Zhang, Zekun Xi, Yujie Luo, Peng Wang, Bozhong Tian, Yunzhi Yao, Jintian Zhang, Shumin Deng, Mengshu Sun, Lei Liang, Z…...
衡石分析平台使用手册-替换衡石minio
替换衡石minio 在使用HENGSHI SENSE服务过程中,可以根据业务需要替换HENGSHI自带的minio。本文讲述使用Aws S3和Aliyun OSS替代衡石minio的过程。 准备工作 在进行配置前,请在aws s3或aliyun oss完成如下准备工作。 创建access_key和secret_acces…...
怎么将几个pdf合成为一个?把几个PDF合并成为一个的8种方法
怎么将几个pdf合成为一个?将多个PDF文件合并成一个整体可以显著提高信息整合的效率,并简化文件的管理与传递。例如,将不同章节的电子书合成一本完整的书籍,或者将多个部门的报告整合成一个统一的文档,可以使处理流程变…...
明明没有程序占用端口,但是启动程序却提示端口无法使用,项目也启动失败
明明没有程序占用端口,但是启动程序却提示端口无法使用,项目也启动失败 win10、端口占用、port、netstat、used背景 曾在springboot中遇到过,新建spring cloud时又遇到这个问题,如果不从根本上解决,就需要改端口&…...
ClickHouse的安装配置+DBeaver远程连接
1、clickhouse的下载: 先去clickhouse官网进行下载,继续往下翻找文档,将DBeaver也下载下来 下载地址:https://packages.clickhouse.com/rpm/stable/ 下载这个四个rpm包 2、上传rmp文件到Linux中 自己创建的一个clickhouse-ins…...
UVM仿真的运行(四)—— objection 机制
目录 0. 引言 1. uvm_phase::execute_phase line 1432~1470 2. uvm_objection 2.1 get_objection_total 2.2 raise_objection 2.3 drop_objection 2.4 m_execute_scheduled_forks 2.5 wait_for 3. 小结 0. 引言 前面介绍了uvm仿真的启动,按照domain中指定的DAG的pha…...
【ShuQiHere】算法分析:揭开效率与复杂度的神秘面纱
【ShuQiHere】 🚀 引言 在计算机科学的世界中,算法 是每一个程序背后的隐形支柱。从简单的排序到复杂的人工智能,算法无处不在。然而,编写一个能运行的程序只是开始,当程序面对庞大的数据集时,算法的效率…...
记忆化搜索专题——算法简介力扣实战应用
目录 1、记忆化搜索算法简介 1.1 什么是记忆化搜索 1.2 如何实现记忆化搜索 1.3 记忆化搜索与动态规划的区别 2、算法应用【leetcode】 2.1 题一:斐波那契数 2.1.1 递归暴搜解法代码 2.1.2 记忆化搜索解法代码 2.1.3 动态规划解法代码 2.2 题二࿱…...
【Java】【力扣】83.删除排序链表中的重复元素
题目 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 示例 1: 输入:head [1,1,2] 输出:[1,2]示例 2: 输入:head [1,1,2,3,3] 输出&#…...
vue3项目实现全局国际化
本文主要梳理vue3项目实现全项目格式化,例如在我前面文章使用若依创建vue3的项目中,地址:若依搭建vue3项目在导航栏中切换,页面中所有的组件的默认语言随之切换,使用的组件库依旧是element-plus,搭配vue-i1…...
Oracle 19c异常恢复—ORA-01209/ORA-65088---惜分飞
由于raid卡bug故障,导致文件系统异常,从而使得数据库无法正常启动,客户找到我之前已经让多人分析,均未恢复成功,查看alert日志,发现他们恢复的时候尝试resetlogs库,然后报ORA-600 kcbzib_kcrsds_1错误 2024-09-15T17:07:32.55321508:00 alter database open resetlogs 2024-09-…...
【Webpack--000】了解Webpack
🤓😍Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-前端领域博主 🐱🐉若此文你认为写的不错,不要吝啬你的赞扬,求收藏,求评论,求一个大大的赞!👍* &#x…...
开源 AI 智能名片链动 2+1 模式 S2B2C 商城小程序与社交电商的崛起
摘要:本文深入探讨了社交电商迅速发展壮大的原因,并分析了开源 AI 智能名片链动 21 模式 S2B2C 商城小程序在社交电商中的重要作用。通过对传统电商与社交电商的对比,以及对各发展因素的剖析,阐述了该小程序如何为社交电商提供新的…...
在线IP代理检测:保护您的网络安全
在互联网飞速发展的今天,越来越多的人开始意识到网络安全和隐私保护的重要性。在线IP代理检测工具作为一种有效的网络安全手段,能够帮助用户识别和检测IP代理的使用情况,从而更好地保护个人隐私和数据安全。本文将详细介绍在线IP代理检测的相…...
【算法】BFS—解开密码锁的最少次数
题目 一个密码锁由 4 个环形拨轮组成,每个拨轮都有 10 个数字: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 。每个拨轮可以自由旋转:例如把 9 变为 0,0 变为 9 。每次旋转都只能旋转一个拨轮的一位数字。 锁的初始数字为 0000 ,一个…...
非守护线程会阻止JVM的终止吗
非守护线程会阻止JVM的终止。在Java中,线程分为守护线程(Daemon Threads)和非守护线程(Non-Daemon Threads,也被称为用户线程)。这两种线程在JVM终止时表现出不同的行为。 非守护线程是JVM中执行程序主要逻…...
Grafana面板-linux主机详情(使用标签过滤主机监控)
1. 采集器添加labels标签区分业务项目 targets添加labels (模板中使用的project标签) … targets: [‘xxxx:9100’] labels: project: app2targets: [‘xxxx:9100’] labels: project: app1 … 2. grafana面板套用 21902 模板 演示...
MYSQL数据库基础篇——DDL
DDL:DDL是数据定义语言,用来定义数据库对象。 一.DDL操作数据库 1.查询 ①查询所有数据库 输入; 得到结果: ②查询当前数据库 输入; 例如执行下面语句: 2.创建 输入 然后展示数据库即可得到结果&…...
Springboot 集成 Swing
背景 Springboot 在 Java 给 Java 开发带来了极大的便利,那么如何把它集成到 Swing GUI 编程项目中,使得 GUI 编程更加高效?本人简单做了一下尝试,完成一个 demo ,贴出来供大家参考 具体步骤 创建一个 spring boot …...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...
