Appium 环境配置
Appium 是一个开源的、跨平台的测试框架,可以用来测试 Native App、混合应用、移动 Web 应用(H5 应用)等,也是当下互联网企业实现移动自动化测试的重要工具。Appium 坚持的测试理念:
•无需用户对 App 进行任何修改或者重新编译,App 应该 Born to be Automated。
•不应该限制用户只能使用特定的语言或者框架来编写和执行测试。
•移动测试框架的 API 应该是稳定的,合理的,不应对自动化 API 反复地造轮子。
•移动测试框架应该是开源的,包括“精神和肉体”。
本文是 Appium 的环境配置教程。
Appium、Appium-desktop、Appium Client 的区别
Appium:是 Appium 体系的核心,因为它本身也是一个 web 接口服务,所以也会被成为 appium server,对外默认开启包括 4723 等多个端口。
Appium-Desktop:是为了让 Appium 能够更好用,让小白入门更容易,让调试和界面分析更方便,官方开发了 GUI 的工具 Appium-desktop。
Appium Client:Appium 只是一个 Web 接口,他接受 HTTP 请求,所以各个语言都可以自己封装发送请求,于是就有 appium 下的各个子项目。以下是各语言对 Appium Client 做的支持。

Appium 的安装 (Mac 版)
安装前检查
#查看是否已安装以下软件
#查看 java 环境是否安装
java -version
#查看 git 是否安装
git --version
#查看 ruby 是否安装
ruby -v
#查看 brew 是否安装
brew -v
#如果不存在 brew,需要执行
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
#查看 android-sdk 是否安装
adb
安装 NodeJS
#通过 brew 安装 node
brew install node
#检查 node、npm 版本
node -v
npm -v
Appium 安装方式
Appium 安装方式一:npm方式
#通过 node 直接进行安装,此方式极易出现网络超时等异常,不推荐
npm install -g appium
Appium 安装方式二:cnpm 方式(推荐)
•什么是淘宝源镜像?
这是一个完整 npmjs.org 镜像,你可以用此代替官方版本 (只读),同步频率目前为 10 分钟 一次以保证尽量与官方服务同步。
#淘宝源安装命令
npm install -g cnpm --registry=https://registry.npm.taobao.org
•为什么选择淘宝 npm 镜像?
由于 Node 安装插件是从国外服务器下载,受网络影响大,速度慢且出现异常。所以如果 npm 的服务器在中国就好了,所以我们乐于分享的淘宝团队(阿里巴巴旗下业务阿里云)提供了这个福利。
# 通过淘宝源的 npm 镜像安装,
# 安装的时间可能稍微有些长,需要耐心等待
cnpm install -g appium
#安装完成检验下
appium -v
# 整体检查 appium 环境是否安装成功
# 需要先通过 cnpm 安装 appium-doctor,
# 然后执行 appium-doctor
cnpm install -g appium-doctor
appium-doctor

Appium 的安装 (Windows 版)
安装前检查
#jdk 是否安装
java -version
#android sdk 是否安装
adb
nodejs 安装
1. 下载地址: https://nodejs.org/zh-cn/download/
选取 win 对应的 .msi 进行下载
2. 下载完成,进行安装。一路下一步
3. 安装完成在 Path 变量下配置 C:\Program Files\nodejs\;(Ps:此处为对应 node 安装的路径)
4. 检查 node 环境 , 分别检查 node -v npm -v
Appium 环境安装
安装步骤同 Mac。推荐淘宝源镜像方式安装 Appium
Appium-desktop 的安装
#首先去官网下载 dmg 文件
官网地址:https://github.com/appium/appium-desktop/releases/tag/v1.10.0
#下载完成双击 dmg 文件进行安装即可

Appium Client(Java&Python)
#java 版导入相关 pom 依赖即可
<dependency><groupId>io.appium</groupId><artifactId>java-client</artifactId><version>7.0.0</version>
</dependency>
#python 版需要执行 pip install Appium-Python-Client
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作


相关文章:
Appium 环境配置
Appium 是一个开源的、跨平台的测试框架,可以用来测试 Native App、混合应用、移动 Web 应用(H5 应用)等,也是当下互联网企业实现移动自动化测试的重要工具。Appium 坚持的测试理念: •无需用户对 App 进行任何修改或…...
前端JavaScript篇之Javscript数组的常用方法有哪些?JavaScript判断数组的方式有哪些?
目录 Javscript数组的常用方法有哪些?JavaScript判断数组的方式有哪些?1. Array.isArray() 方法:2. instanceof 操作符:3. Object.prototype.toString.call() 方法:4. Array.from() 方法: Javscript数组的常…...
【Spring Boot 3】【Redis】基本数据类型操作
【Spring Boot 3】【Redis】基本数据类型操作 背景介绍开发环境开发步骤及源码工程目录结构 背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工…...
[MySQL]关于表的增删改查
目录 1.插入 1.1单行数据全列插入 1.2多行插入,指定列插入 编辑2.查询 2.1全列查询 2.2指定列查询 3.3查询字段为表达式 2.4别名 编辑2.5去重 2.6排序 2.7条件查询 2.7.1基本查询: 2.7.2 AND 和OR 2.7.3范围查询 2.7.4模糊查询 2.7.5分页查询 limit …...
编译和链接(翻译环境:预编译+编译+汇编+链接、运行环境)
一、翻译环境和运行环境 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。 VS中编译器:cl.exe ;Linux中…...
洛谷 P1364 医院设置
题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距…...
JAVAEE初阶 网络编程(三)
TCP回显服务器 一. TCP的API二. TCP回显服务器的代码分析三. TCP回显服务器代码中存在的问题四. TCP回显服务器代码五. TCP客户端的代码六.TCP为基准的回显服务器的执行流程 一. TCP的API 二. TCP回显服务器的代码分析 这的clientSocket并不是表示用户端的层面东西,…...
Linux 的提示符太长了,帮你精简一下
普通用户修改文件 ~/.bashrc 修改 50 行左右的代码,将两个w改为大写的W 如果是root用户则修改文件/root/.bashrc,同样的方法。...
nvm, node.js, npm, yarn 安装配置
文章目录 nvm 安装node.js 安装npm yarn 配置 nvm 安装 nvm 是一个 node.js 管理工具,可以快捷下载安装使用多个版本的node.js linux 命令行输入: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashwget -qO- https…...
Springboot之监听器
Springboot之事件监听器 事件监听的几种方式1 方式一:实现接口1.1 创建事件1.2 创建事件监听器1.3 发布事件 2 方式二:注解方式2.1 创建事件2.1.1 创建发送邮件事件2.1.2 创建发送短信事件 2.2 创建事件监听器2.3 发布事件2.4 事件异步处理(方…...
【02】mapbox js api加载arcgis切片服务
需求: 第三方的mapbox js api加载arcgis切片服务,同时叠加在mapbox自带底图上 效果图: 形如这种地址去加载: http://zjq2022.gis.com:8080/demo/loadmapbox.html arcgis切片服务参考链接思路:【01】mapbox js api加…...
Vue四个阶段,八个钩子函数
- 创造阶段:创建Vue实例和初始化数据事件,数据代理,监测watch - beforeCreate,只是创建实例,不能this.$el,this.msg,this.方法名() - created,数据代理了,能v…...
rancher和k8s接口地址,Kubernetes监控体系,cAdvisor和kube-state-metrics 与 metrics-server
为了能够提前发现kubernetes集群的问题以及方便快捷的查询容器的各类参数,比如,某个pod的内存使用异常高企 等等这样的异常状态(虽然kubernetes有自动重启或者驱逐等等保护措施,但万一没有配置或者失效了呢)࿰…...
idea编译打包前端vue项目
网上download了一个前端vue项目 第一次接触前端记录一下编译打包遇到的问题 1、idea前端项目打包一般是依赖 <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.0…...
Unity中URP下的 额外灯 逐像素光 和 逐顶点光
文章目录 前言一、额外灯 的 逐像素灯 和 逐顶点灯1、存在额外灯的逐像素灯2、存在额外灯的逐顶点灯 二、测试这两个宏的作用1、额外灯的逐像素灯2、额外灯的逐顶点灯 前言 在之前的文章中,我们了解了 主光相关的反射计算。 Unity中URP下的SimpleLit的 Lambert漫反…...
《WebKit 技术内幕》学习之五(2): HTML解释器和DOM 模型
2.HTML 解释器 2.1 解释过程 HTML 解释器的工作就是将网络或者本地磁盘获取的 HTML 网页和资源从字节流解释成 DOM 树结构。 这一过程中,WebKit 内部对网页内容在各个阶段的结构表示。 WebKit 中这一过程如下:首先是字节流,经过解码之…...
Redis实战之-分布式锁-redission
一、分布式锁-redission功能介绍 基于setnx实现的分布式锁存在下面的问题: 重入问题:重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都…...
离线数据仓库-关于增量和全量
数据同步策略 数据仓库同步策略概述一、数据的全量同步二、数据的增量同步三、数据同步策略的选择 数据仓库同步策略概述 应用系统所产生的业务数据是数据仓库的重要数据来源,我们需要每日定时从业务数据库中抽取数据,传输到数据仓库中,之后…...
09 STM32 - PWM
9.1 PWM简介 脉冲宽度调制(Pulse Width Modulation,简称PWM),是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。 9.2 PWM波原理 如下图所示,使用定时器定时,从0开始&#x…...
三勾点餐系统java+springboot+vue3,开源系统小程序点餐系统
项目简述 前台实现:用户浏览菜单、菜品分类筛选、查看菜品详情、菜品多属性、菜品加料、添加购物车、购物车结算、个人订单查询、门店自提、外卖配送、菜品打包等。 后台实现:菜品管理、订单管理、会员管理、系统管理、权限管理等。 项目介绍 三勾点…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
