当前位置: 首页 > news >正文

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>

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

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

http://www.lryc.cn/news/301818.html

相关文章:

  • Vue+Vite项目初建(axios+Unocss+iconify)
  • ASUS华硕枪神8笔记本电脑G614JIR,G814JVR,G634JYR,G834JZR工厂模式出厂Windows11系统 带重置还原功能
  • Python入门:常用模块—xml模块
  • 蓝队应急响应工具箱v2024.1​
  • Linux中获取字符串长度与获取子字符串
  • Rust语言之sha-256爆破
  • Rust中的字符串处理及相关方法详解
  • NS安装-CentOS服务器安装Nightscout CGM
  • 利用ChatGPT提升工作效率
  • django admin页面美化
  • Git 操作以及Git 常见问题
  • 如何学习和规划类似ChatGPT这种人工智能(AI)相关技术
  • 4 月 9 日至 4 月 10 日,Hack.Summit() 2024 首聚香江
  • [力扣 Hot100]Day29 删除链表的倒数第 N 个结点
  • 探索设计模式的魅力:掌握命令模式-解锁软件设计的‘遥控器’
  • LNMP搭建discuz论坛
  • 257.【华为OD机试真题】幼儿园篮球游戏(贪心算法-JavaPythonC++JS实现)
  • [计算机网络]深度学习传输层TCP协议
  • 动态头部:统一目标检测头部与注意力
  • 【状态估计】深度传感器与深度估计算法(1/3)
  • ClickHouse从入门到精通(高级)
  • 什么是Docker的容器编排工具,它们之间有何不同?
  • qml之Control类型布局讲解,padding属性和Inset属性细讲
  • 【Jvm】性能调优(拓展)Jprofiler如何监控和解决死锁、内存泄露问题
  • 运行错误(竞赛遇到的问题)
  • nodename nor servname provided, or not known
  • 前端vue金额用逗号分隔
  • vulvhub-----Hacker-KID靶机
  • 遨博I20协作臂关节逆解组Matlab可视化
  • 力扣题目训练(15)