技术分享 | Appium环境安装与架构介绍

news2024/11/26 0:27:37

 Appium架构

Appium 设计哲学
  • 不需要为了自动化而重新编译或修改被测应用

  • 不应该让移动端自动化测试限定在某种语言或者某个具体的框架

  • 不要为了移动端的自动化测试而重新造轮子

  • 移动端自动化测试应该是开源的

Appium 架构

Appium 架构图如下:

Appium 的核心是一个 Web 服务器,提供了一套 REST 的接口,接收到客户端的连接,监听到命令,在移动设备上执行这些命令,将执行结果放在 HTTP 响应中返还给客户端。

事实上,这种客户端/服务端的架构给予了许多的可能性。可以使用任何实现了该客户端的语言来写测试代码,可以把服务端放在不同的机器上,可以只写测试代码,然后使用服务来执行命令。

对于 Android、iOS 底层使用了不同的工作引擎驱动实现自动化测试。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 下。

详细安装参见测试人论坛:

 appium安装说明简易版 环境配置

安装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>

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

【数据库】数据库模式 Schema

数据库模式 Schema 1.MySQL2.PostgreSQL3.SQL Server4.Oracle5.SQLite 在数据库的术语中&#xff0c;模式&#xff08;schema&#xff09;是一个逻辑概念&#xff0c;用于组织数据库中的对象。模式中的对象通常包括 表、索引、数据类型、序列、视图、存储过程、主键、外键 等等…

STM32笔记—DMA

目录 一、DMA简介 二、DMA主要特性 三、DMA框图 3.1 DMA处理 3.2 仲裁器 3.3 DMA通道 扩展: 断言&#xff1a; 枚举&#xff1a; 3.4 可编程的数据传输宽度、对齐方式和数据大小端 3.5 DMA请求映像 四、DMA基本结构 4.1 DMA_Init配置 4.2 实现DMAADC扫描模式 实现要求…

代码随想录 Day38 完全背包问题 LeetCode T70 爬楼梯 T322 零钱兑换 T279 完全平方数

前言 在今天的题目开始之前,让我们来回顾一下之前的知识,动规五部曲 1.确定dp数组含义 2.确定dp数组的递推公式 3.初始化dp数组 4.确定遍历顺序 5.打印dp数组来排错 tips: 1.当求取物品有限的时候用0-1背包,求取物品无限的时候用完全背包 结果是排列还是组合也有说法,当结果是组…

设计模式之工厂模式(Factory)

任何可以产生对象的方法或类&#xff0c;都可以称为工厂。 下面的代码定义了Car这种交通工具: public class Car {public void go() {System.out.println("Car go wuwuwuwuw....");} }然后在main函数里面想要调用调用Car的go方法&#xff0c;就需要new一个car对象&…

Netty入门指南之传统通信的问题

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Netty应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言多线程…

管理类联考——写作——技巧篇——书写标点符号使用要求规范文档

写作答题卡书写标点符号使用要求规范文档 常用标点符号有逗号、句号、叹号、问号等 11 种&#xff0c;下面一一列举其用法和书写规范。 一、句号 用法&#xff1a;用于陈述句的末尾。 占格情况&#xff1a;占一格&#xff0c;写在格子左下方。 举例&#xff1a; 我看见妈妈走…

web3案例中解决交易所中 ETH与token都是0问题 并帮助确认展示是否成功

可能写了这么久 很多人会发现一个问 我们前面的案例 个人在交易所中的 自定义token 和 ETH 一直是放了个0 大家也不太敢确认是否真的有效 那么 很简单 我们操作 存入一些进交易所 不就ok了 我们 来看之前交易所写的代码 我们写了 depositEther 存入 ETH 和 depositToken 存入…

03 贝尔曼公式

贝尔曼公式 前言1、Motivating examples2、state value3、Bellman equation:Derivation4、Bellman equation:Matrix-vector form4、Bellman equation:Solve the state value5、Action value 前言 本文来自西湖大学赵世钰老师的B站视频。本节课主要介绍贝尔曼公式。 本节课概要…

海外问卷项目是怎么赚钱的?

大家好&#xff0c;我是橙河老师&#xff0c;今天聊一聊海外问卷项目是怎么赚钱的&#xff1f; 在海外国家&#xff0c;问卷调查这种商业模式一直都很流行&#xff0c;很多商业公司为了收集消费者的意见&#xff0c;会对外发有偿的调查问卷&#xff0c;从最开始的纸质调查&…

MySQL第五讲·关于外键和连接, 如何做到关联查询?

你好&#xff0c;我是安然无虞。 文章目录 外键和连接&#xff1a;如何做关联查询&#xff1f;如何创建外键&#xff1f;连接关联查询中的误区 外键和连接&#xff1a;如何做关联查询&#xff1f; 在实际的数据库应用开发过程中&#xff0c;我们经常需要把2个或2个以上的表进…

C语言函数初使用

目录 1知识点&#xff1a; 2一个小代码&#xff0c;后续知识点讲解&#xff1a; 3知识点&#xff1a; 定义函数 实例 函数声明 调用函数 函数参数 4总结&#xff1a; 1知识点&#xff1a; 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数&#xff0c;…

网站源码备份 [极客大挑战 2019]PHP1

打开题目 题目提示我们备份网站 我们输入/www.zip 下载zip文件&#xff0c;打开发现 打开index.php <?phpinclude class.php;$select $_GET[select];$resunserialize($select);?> 文件包含class.php&#xff0c;get传参一个select函数&#xff0c;反序列化select参…

HMM与LTP词性标注之命名实体识别与HMM

文章目录 知识图谱介绍NLP应用场景知识图谱&#xff08;Neo4j演示&#xff09;命名实体识别模型架构讲解HMM与CRFHMM五大要素&#xff08;两大状态与三大概率&#xff09;HMM案例分享HMM实体识别应用场景代码实现 知识图谱介绍 NLP应用场景 图谱的本质&#xff0c;就是把自然…

JS逆向爬虫---请求参数加密②【某麦数据analysis参数加密】

主页链接: https://www.qimai.cn/rank analysis逆向 完整参数生成代码如下&#xff1a; const {JSDOM} require(jsdom) const dom new JSDOM(<!DOCTYPE html><p>hello</p>) window dom.windowfunction customDecrypt(n, t) {t t || generateKey(); //…

ZZULIOJ 1108: 打印数字图形(函数专题) (C/C++)

1108: 打印数字图形&#xff08;函数专题&#xff09; 题目描述 从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形。要求在程序中定义并调用如下函数&#xff1a;PrintSpace(m)用来输出m个空格&#xff1b;PrintDigit(m)来输出一行中的数字串"12…m…21"&#xff…

element树形结构下拉组件组装对应格式数据

element树形结构下拉组件组装对应格式数据 <el-row><el-col :span"24"><el-form-item label"购买渠道" prop"treeData" class"grid-content bg-purple"><el-cascaderv-model"testForm.treeData":optio…

鳄鱼指标的3颜色线都代表什么?澳福官网一段话明白了

投资者一直在使用鳄鱼指标进行交易&#xff0c;但是对指标上面的3种颜色的K线都代表什么不明白&#xff1f;直到看到澳福官网一段话才明白&#xff0c;原来这么简单&#xff01; 鳄鱼指标&#xff0c;这一工具是由三条移动平均线组合而成。具体来说&#xff0c;蓝线&#xff0…

8-3、T型加减速单片机程序【51单片机控制步进电机-TB6600系列】

摘要&#xff1a;根据前两节内容&#xff0c;已完成所有计算工作&#xff0c;本节内容介绍具体单片机程序流程及代码 一、程序流程图 根据前两节文章内容可知&#xff0c;T型加减速的关键内容是运动类型的判断以及定时器初值的计算&#xff0c;在输出运动参数后即可判断出运动…

前端代码优化小技巧

导读 今天分享一下开测前端代码的一些优化&#xff0c;及使用的一些小技巧&#xff0c;来优化我们的网站&#xff0c;前端开发中最常见的问题就是很少使用ES6方法导致代码冗余&#xff0c;不够清晰&#xff0c;定时器和闭包导致内存溢出及泄露,网站中css导致排版错乱&#xff…

C++基础——对于C语言缺点的补充(2)

上篇文章中说到&#xff0c;为了解决C语言会出现人为定义的函数和库函数出现重定义的错误&#xff0c;C引入了一个新的概念&#xff0c;即命名空间&#xff0c;通过认为定义命名空间&#xff0c;来解决上述问题。 在本篇文章中&#xff0c;将继续介绍C相对于C语言不足来进行的补…