搭建Appium工具环境
1、安装Java Development Kit(JDK)
前往Oracle官网下载JDK。
在https://www.oracle.com/java/technologies/javase-jdk11-downloads.html 找到最新版本的JDK。根据操作系统选择适合的版本,并根据指示下载安装程序。
安装JDK。运行下载的安装程序,并按照指示进行安装。
配置JAVA_HOME环境变量。打开系统环境变量设置,创建一个名为JAVA_HOME的新变量,并将JDK的安装路径设置为变量值。确保将该路径添加到系统的PATH变量中。
可以参考截图,进行JDK环境变量配置操作。

测试jdk环境变量配置是否正确。
如下截图所示能够查询出版本号信息,证明环境变量配置正确。

2、安装Android Studio及Android SDK
前往Android Studio官网(https://developer.android.com/studio)下载最新版本的Android Studio。
安装Android Studio。运行下载的安装程序,并按照指示进行安装。这将同时安装Android SDK。
配置Android SDK路径。启动Android Studio后,点击“Configure”按钮,选择“SDK Manager”选项。在打开的窗口中,找到“Android SDK Location”字段并复制SDK路径。
可以参考截图,进行SDK环境变量配置操作。


测试SDK环境变量配置是否正确。
拿查看%ANDROID_HOME%\platformtools下的adb版本号来证明SDK环境变量配置是否正确。
如下截图所示能够查询出版本号信息,证明环境变量配置正确。

3、安装Node.js
前往Node.js官网(https://nodejs.org/),下载最新版本的Node.js安装程序。
安装Node.js。运行下载的安装程序,并按照指示进行安装。
安装完毕后一般会自动配置环境变量。
然后,测试node环境变量配置是否正确。

4、安装Appium
打开命令行窗口。可以在Windows系统中使用命令提示符(CMD),在Mac系统中使用终端。
执行以下命令来安装Appium:
npm install -g appium
5、安装Appium Server
Appium依赖于Appium Server进行测试,因此需要安装并启动Appium Server。
在命令行窗口中,执行以下命令来安装Appium Server:
npm install -g appium
6、配置Appium环境变量
配置ANDROID_HOME环境变量。打开系统环境变量设置,创建一个名为ANDROID_HOME的新变量,并设置为Android SDK的路径。
配置APPIUM_HOME环境变量。打开系统环境变量设置,创建一个名为APPIUM_HOME的新变量,并将Appium安装目录的路径设置为变量值。
完成以上步骤后,Appium工具环境就安装完成了,可以使用Appium来进行移动应用的自动化测试和开发。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:
搭建Appium工具环境
1、安装Java Development Kit(JDK) 前往Oracle官网下载JDK。 在https://www.oracle.com/java/technologies/javase-jdk11-downloads.html 找到最新版本的JDK。根据操作系统选择适合的版本,并根据指示下载安装程序。 安装JDK。运行下载的安…...
【面经八股】搜广推方向:常见面试题(六)
【面经&八股】搜广推方向:常见面试题(六) 文章目录 【面经&八股】搜广推方向:常见面试题(六)1. Memorization 和 Generalization2. Wide 和 Deep3. Cross-product transformation4. 推荐系统划分5. 线性模型6. Embedding-Based 模型7. 推荐系统工作流程8. Wide P…...
6.前端--CSS-基础选择器【2023.11.26】
1.CSS基本选择器 标签选择器: 标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式。标签选择器可以把某一类标签全部选择出来,比如所有的 <…...
Java制作“简易王者荣耀”小游戏
第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 GameFrame 运行类 package com.sxt;import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; im…...
正则表达式例题-PTA
PTA-7-55 判断指定字符串是否合法-CSDN博客 7-54 StringBuffer-拼接字符串 题目: 输入3个整数n、begin、end。 将从0到n-1的数字拼接为字符串str。如,n12,则拼接出来的字符串为:01234567891011 最后截取字符串str从begin到end(包…...
基于Python的南京二手房数据可视化分析的设计与实现
点我完整下载:基于Python的南京二手房数据可视化分析的设计与实现.docx 基于Python的南京二手房数据可视化分析的设计与实现 "Design and Implementation of Python-based Visualization Analysis for Nanjings Second-hand Housing Data" 目录 目录 2 摘…...
软件特征与类型
软件包括计算机系统中的程序和文档,它是一组能完成特定任务的二进制代码。 ▶1.软件的特性 1)软件是一种逻辑元素 软件是逻辑的而非物理的元素;软件是设计开发的,而不是生产制造的。虽然软件开发和硬件制造存在某些相似点,但二…...
无人机遥控器方案定制_MTK平台无人设备手持遥控终端PCB板开发
随着科技的不断发展和无人机技术的逐步成熟,无人机越来越受到人们的关注。作为一种高新技术,无人机的应用范围不断拓展,包括农业、环境监测、城市规划、运输物流等领域。同时,无人机的飞行控制技术也得到了不断的优化和提升。 早…...
【C++】静态成员
静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员。 静态成员分为: 静态成员变量 所有对象共享同一份数据在编译阶段分配内存类内声明,类外初始化 静态成员函数 所有对象共享同一个函数静态成员函数只能访问静态成员变量 …...
单片机学习10——独立按键
独立按键输入检测: #include<reg52.h>sbit LED1P1^0; sbit KEY1P3^4;void main() {KEY11;while(1){if(KEY10) //KEY1按下{LED10; //LED1被点亮}else{LED11;}} } 按键 #include<reg52.h>#define uchar unsigned char #define uint unsigned intsbit …...
微服务系列(三)--通过spring cloud zuul过滤器实现线上流量复制
思路 补充一下,为什么这里我会想到使用"pre"类型的过滤器实现流量复制/流量镜像。 刚开始的时候,参考了阿里的流量镜像实现方案: 配置流量复制策略,阿里的方案本身是对基于云原生envoy做的,这确实是istio原…...
微信小程序image组件图片设置最大宽度 宽高自适应
问题描述:在使用微信小程序image组件的时候,在不确定图片宽高情况下 想给一个最大宽度让图片自适应,按比例,image的widthfiex和heightFiex并不能满足(只指定最大宽/高并不会生效) 问题解决:使用…...
虚幻学习笔记—文本内容处理
一、前言 本文使用的虚幻引擎5.3.2,在虚幻中已经集成了很多可以直接处理多样化文本的蓝图,比如格式化动态显示、浮点数多样化等。 二、实现 2.1、格式化文本显示动态内容:在设置某个文本时可以使用“Format Text”蓝图设置自定义可以的显示…...
WhatsApp API号解封教程(内含图片指引和申诉模板)
WhatsApp API 是专门为中大型企业设置的WhatsApp APP页面,API号并不像WhatsApp个人号和企业号一样可以直接从App Store 或Google Play 下载,而是需要对接官方来连接API。 虽然申请WhatsApp API号的程序和手续比较复杂,但是这个操作对于企业来…...
爬取极简壁纸
js反编译的代码需要解密之类的,直接给我干蒙圈了,借助selenium可以直接获取到调式工具中的源码,可以获取渲染后的链接,然后将链接交给下载函数(使用异步提高效率)即可。 后续学习完js反编译的话࿰…...
docker操作手册
写在前面的几个重要命令 docker与本地件的文件拷贝 # 查看容器ID docker ps -a# 本地文件拷本到容器 docker cp {local_path} {CONTAINER ID}:{path}# 容器拷本到本地 docker cp {CONTAINER ID}:{path} {local_path} # eg docker cp /Users/helloworld/Downloads/R-3.5.0 0a1…...
css Vue尺子样式
原生css生成尺子样式 <template><div class"page"><div class"Light"></div><div class"rile"><ul id"list"><!--尺子需要几个单位就加几个--><li></li><li></li&…...
C++ 数据结构之-最小栈(MinStack)
最小栈 最小栈(Min Stack)是一个支持常数时间复杂度获取栈中最小元素的特殊栈数据结构。通常,标准的栈数据结构只支持在常数时间内执行入栈(push)和出栈(pop)操作,但无法在常数时间内…...
【日常总结】优雅升级Swagger 2 升至 3.0, 全局设置 content-type application/json
目录 一、场景 二、问题 三、解决方案 四、延伸 上一节:【日常总结】Swagger-ui 导入 showdoc (优雅升级Swagger 2 升至 3.0)-CSDN博客 一、场景 接上一节:在 Swagger3Config extends WebMvcConfigurationSupport,…...
2023.11.27如何使用内网穿透工具实现Java远程连接操作本地Elasticsearch搜索引擎
文章目录 前言1. Windows 安装 Cpolar2. 创建Elasticsearch公网连接地址3. 远程连接Elasticsearch4. 设置固定二级子域名 前言 简单几步,结合Cpolar内网穿透工具实现Java远程连接操作本地Elasticsearch。 什么是elasticsearch?一个开源的分布式搜索引擎࿰…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...

