Appium环境安装与架构介绍
Appium架构
Appium 设计哲学
- 不需要为了自动化而重新编译或修改被测应用
- 不应该让移动端自动化测试限定在某种语言或者某个具体的框架
- 不要为了移动端的自动化测试而重新造轮子
- 移动端自动化测试应该是开源的
Appium 架构
Appium 架构图如下:

Appium 的核心是一个 Web 服务器,提供了一套 REST 的接口,接收到客户端的连接,监听到命令,在移动设备上执行这些命令,将执行结果放在 HTTP 响应中返还给客户端。
事实上,这种客户端/服务端的架构给予了许多的可能性。可以使用任何实现了该客户端的语言来写测试代码,可以把服务端放在不同的机器上,可以只写测试代码,然后使用服务来执行命令。
对于 Android、iOS 底层使用了不同的工作引擎驱动实现自动化测试。Appium 引擎列表:

Appium 支持的语言
Appium 支持如下语言编写测试用例:

Appium 环境安装
Appium Windows 版本只支持 Android 系统,Appium Mac 版同时支持 Android 系统 和 iOS 系统。这里只介绍 MacOS 系统的安装。
Appium 环境依赖
软件列表:
1. Java 1.8
2. Android SDK
3. Appium Desktop
其中 Java 推荐使用 1.8 版本。Android SDK 是 Android 系统的开发工具包,里面有很多自动化测试常用的工具。Appium Desktop 提供了服务与录制功能。
下面开始进行环境安装,以下环境变量的配置,需要打开 MacOS 系统中的 terminal 终端来完成,环境变量可以配置在 ~/.bash_profile 下。如果您使用的是 oh-my-zsh,则需要配置环境变量到 ~/.zshrc 下。
安装Nodejs 首先从官网下载Nodejs,推荐LTS版本,比较稳定 官网下载地址 通过命令行确认nodejs安装正确,在命令行运行node -v和npm -v,没有报错并且能够显示对应的版本,说明安装正常,可以进行下一步 通过npm安装Appium server 因为npm的源在国外,访问起来速度会比较慢容易报错异常终止导致安装不成功,所以可以使用cnpm也就是国内源来安装,成功率…
Appium 客户端安装(Python版本)
如果想要在代码中能够相关包,需要安装第三方库:
pip install Appium-Python-Client
Appium 客户端安装(Java版本)
当使用 Maven 或 Gradle 等构建工具时,会自动加载依赖项。
<properties>...<!-- 尽可能使用最新版本 --><appium.version>7.3.0</appium.version>...</properties><dependencies>...<dependency><groupId>io.appium</groupId><artifactId>java-client</artifactId><version>${appium.version}</version></dependency>...</dependencies>
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:
Appium环境安装与架构介绍
Appium架构 Appium 设计哲学 不需要为了自动化而重新编译或修改被测应用不应该让移动端自动化测试限定在某种语言或者某个具体的框架不要为了移动端的自动化测试而重新造轮子移动端自动化测试应该是开源的 Appium 架构 Appium 架构图如下: Appium 的核心是一个 …...
Vue+Vite项目初建(axios+Unocss+iconify)
一. 创建项目 npx --package vue/cli vue 项目成功启动后,进入http://localhost:3200,即可进入创建好的页面(假设启动端口为3200) 二. 测试网络通讯模块 假设有本地服务器地址localhost:8000提供接口服务,接口为localhost:8000/token&#…...
ASUS华硕枪神8笔记本电脑G614JIR,G814JVR,G634JYR,G834JZR工厂模式出厂Windows11系统 带重置还原功能
适用ROG枪神8系列笔记本型号: G614JIR、G614JVR、G634JYR、G634JZR G814JIR、G814JVR、G834JYR、G834JZR 链接:https://pan.baidu.com/s/1tYZt6XFNC2d6YmwTbtFN7A?pwd3kp8 提取码:3kp8 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主…...
Python入门:常用模块—xml模块
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单 xml的格式如下,就是通过<>节点来区别数据结构的: <data> <country name"Liechtenstein"> <rank updated"yes"…...
蓝队应急响应工具箱v2024.1
1 蓝队工具箱 v2024.1 2 简介 蓝队工具箱是为打造一款专业级应急响应的集成多种工具的工具集,由真实应急响应环境所用到的工具进行总结打包而来,由 ChinaRan404,W 啥都学,清辉等开发者编写.把项目现场中所用到的工具连同环境一同打包,并实…...
Linux中获取字符串长度与获取子字符串
一、 获取字符串长度 #!/bin/bash string"jobs" echo ${string} # 输出结果: jobs echo ${#string} # 输出结果: 4 二、提取子字符串 以下实例从字符串第 2 个字符开始截取 4 个字符: #!/bin/bash str"敢于亮剑决不后退" echo ${str:2:…...
Rust语言之sha-256爆破
文章目录 一、实现Sha-256加密1.创建项目2.编写Cargo.toml文件3.编写程序代码 二、sha256爆破1.获取命令行参数2.读取文件3.校验输入参数4.暴力破解 一、实现Sha-256加密 SHA-256是一种安全哈希算法,主要特点是将输入的数据(无论长度)通过特定…...
Rust中的字符串处理及相关方法详解
在Rust中,字符串是一种非常重要的数据类型,而String类型则提供了对动态可变字符串的支持。本文将介绍一些常见的字符串处理方法以及相关示例代码。 创建字符串 在Rust中,有多种方式创建字符串,以下是一些常见的例子:…...
NS安装-CentOS服务器安装Nightscout CGM
NS CGM 安装必要条件 有自己的云服务器好像没有2,有云服务器就行了 安装顺序 先安装数据库,目前支持的是 MongoDB ,官方推荐4,其实目前最新版本就行。可以用宝塔安装,比较简单克隆代码,我是放到 /opt/ns…...
利用ChatGPT提升工作效率
随着科技的飞速发展,人工智能逐渐成为我们生活的一部分。ChatGPT作为一种先进的自然语言处理技术,已经在各个领域取得了显著的成果。本文将探讨如何利用ChatGPT提升工作效率,让我们的生活变得更加便捷。 一、什么是ChatGPT? ChatG…...
django admin页面美化
美化 Django Admin 页面可以通过多种方式实现,从简单的 CSS 样式调整到完全自定义模板。以下是一些建议和步骤来美化 Django Admin 页面: 1. 使用 CSS 覆盖默认样式 这是最简单的方法,你可以通过添加自定义 CSS 文件来覆盖 Django Admin 的…...
Git 操作以及Git 常见问题
Git 操作 git 教程:https://www.runoob.com/git/git-tutorial.html 基本概念 工作区:克隆项目到本地后,项目所在的文件夹; 暂存区:从工作区添加上来的变更(新增,修改,删除ÿ…...
如何学习和规划类似ChatGPT这种人工智能(AI)相关技术
学习和规划类似ChatGPT这种人工智能(AI)相关技术的路径通常包括以下步骤: 学习基础知识: 学习编程:首先,你需要学习一种编程语言,例如Python,这是大多数人工智能项目的首选语言。数学…...
4 月 9 日至 4 月 10 日,Hack.Summit() 2024 首聚香江
Hack.Summit() 是一系列 Web3 开发者大会。2024 年的活动将于 2024 年 4 月 9 日至 4 月 10 日在香港数码港举行。自十年前首次举办以来,此次会议标志着 Hack.Summit() 首次在亚洲举办,香港被选为首次亚洲主办城市,这对 Hack VC 和该地区都具…...
[力扣 Hot100]Day29 删除链表的倒数第 N 个结点
题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 出处 思路 两个指针间隔n,一趟遍历解决。 代码 class Solution { public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* phead;ListNode* …...
探索设计模式的魅力:掌握命令模式-解锁软件设计的‘遥控器’
🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,并且坚持默默的做事。 引言:探索命令模式的奥秘 软件设计领域充满挑战与机遇,命令模式…...
LNMP搭建discuz论坛
discuz论坛是一种网络论坛软件,也称bbs,它是一种用于在互联网上建立论坛社区的程序系统。只哟中功能强大的论坛软件,可以帮助用户建立一个专业、完善的论坛社区,并且可以实现多种功能,如搭建用户注册、登录、查看主题、…...
257.【华为OD机试真题】幼儿园篮球游戏(贪心算法-JavaPythonC++JS实现)
🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解…...
[计算机网络]深度学习传输层TCP协议
💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录专栏:深度学习传输层TCP协议 🎉欢迎大家点赞👍评论📝收藏⭐文章 [计算机网络]深度学习传输层TCP协议 前提概括一: TCP协议段格式二:确认应答三:超时重传四:…...
动态头部:统一目标检测头部与注意力
摘要 在目标检测中,定位与分类相结合的复杂性导致了各种方法的蓬勃发展。以前的工作试图提高在不同的目标检测头的性能,但未能呈现一个统一的视图。在本文中,我们提出了一种新的动态头部框架来统一目标检测头部和注意力。通过在尺度感知的特…...
Speech Seaco Paraformer问题解决:识别不准?试试热词功能提升准确率
Speech Seaco Paraformer问题解决:识别不准?试试热词功能提升准确率 1. 语音识别不准的常见困扰 语音识别技术在日常工作和生活中应用越来越广泛,但很多用户在使用过程中都会遇到一个共同问题:识别结果不准确。特别是当录音内容…...
WiFi DensePose:用无线电波“看透“世界 — 无摄像头人体感知革命
No cameras. No wearables. No Internet. Just radio waves. 没有摄像头,没有可穿戴设备,不需要联网。只有物理世界的无线电波。🌟 引言:重新定义"感知" 想象这样一个场景:一位独居老人在浴室摔倒࿰…...
SEO_2024年最新SEO策略与趋势介绍(274 )
<h1 id"2024seo">2024年最新SEO策略与趋势介绍</h1> <p>在数字营销的大背景下,搜索引擎优化(SEO)始终是提升网站流量和品牌知名度的关键因素。2024年,随着互联网技术的不断进步,SEO策略和…...
VibeVoice语音合成效果展示:印度英语in-Samuel_man技术讲座样例
VibeVoice语音合成效果展示:印度英语in-Samuel_man技术讲座样例 1. 真实语音合成效果体验 今天我要带大家体验一个让人惊艳的语音合成技术——VibeVoice实时语音合成系统。这不是普通的文字转语音工具,而是一个能够生成极其自然、富有表现力的人工智能…...
一U多系统终极方案:用Ventoy管理ISO镜像+VMware验证的完整工作流
一U多系统终极方案:用Ventoy管理ISO镜像与VMware验证的完整工作流 在数字工具日益复杂的今天,系统管理员和技术爱好者常面临一个经典难题:如何高效管理多个操作系统镜像并确保其启动兼容性。传统方法需要反复格式化U盘或携带多个启动设备&am…...
清华大学LaTeX论文模板完整路线图:未来发展与功能规划指南
清华大学LaTeX论文模板完整路线图:未来发展与功能规划指南 【免费下载链接】thuthesis LaTeX Thesis Template for Tsinghua University 项目地址: https://gitcode.com/gh_mirrors/th/thuthesis 清华大学LaTeX论文模板(thuthesis)是清…...
Qwen3.5-4B模型Proteus电路仿真辅助:原理图分析与代码生成
Qwen3.5-4B模型Proteus电路仿真辅助:原理图分析与代码生成 1. 电子设计学习的新帮手 电子电路设计学习过程中,很多初学者都会遇到这样的困境:面对Proteus中的复杂原理图,既看不懂电路功能,也不知道如何为微控制器编写…...
告别OpenCV DNN!在Windows上用C++和ONNX Runtime部署PyTorch模型(附完整代码)
告别OpenCV DNN:用ONNX Runtime实现C高效模型部署实战 如果你正在Windows平台上用C部署PyTorch模型,大概率已经体验过OpenCV DNN模块的"龟速"推理。当项目从实验室走向生产环境时,性能瓶颈往往就藏在这些看似不起眼的环节里。今天…...
智能驾驶中的惯性导航:从L2到L4的IMU选型指南(2023最新)
智能驾驶中的惯性导航:从L2到L4的IMU选型指南(2023最新) 当特斯拉Model 3在隧道中失去GPS信号时,车载IMU仍能保持厘米级定位精度——这背后是惯性导航技术在自动驾驶领域的革命性应用。不同于消费级电子设备中仅用于计步的简易传感…...
8个Illustrator自动化脚本解决方案,彻底改变设计师工作流程
8个Illustrator自动化脚本解决方案,彻底改变设计师工作流程 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts illustrator-scripts项目提供了一套专业的Adobe Illustrator…...

