(1)特点

appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。

>>“移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。

>>“移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。

>>“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。

重要的是,appium是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。

(2)Appium与Selenium

Appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。

Appium客户端类库实现了Mobile JSON Wire Protocol(一个标准协议的官方扩展草稿)和W3C WebDriver spec(一个传输不可预知的自动化协议,该协议定义了MultiAction 接口)的元素。

Appium服务端定义了官方协议的扩展,为appium 用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App。这就是为什么我们需要appium特定的客户端,而不是通用的Selenium 客户端。当然,appium 客户端类库只是增加了一些功能,而实际上这些功能就是简单的扩展了Selenium 客户端,所以他们仍然可以用来运行通用的Selenium会话。

(3)支持多平台、多语言

Appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。

Appium选择了Client/Server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是appium及Selenium(WebDriver)如何做到支持多语言的原因;

Appium扩展了WebDriver的协议,没有自己重新去实现一套。这样的好处是以前的WebDriver API能够直接被继承过来,以前的Selenium(WebDriver)各种语言的binding都可以拿来就用,省去了为每种语言开发一个client的工作量;

(4)Appium工作原理

在安装和介绍appium之前,非常有必要介绍一下appium是如何工作的。

通过上面一张图简单展示了appium的工具原理。

首先,appium支持多语言,因为它针对流的几种语言分别开发的相应的appium库。好处就是我们可以选择自己熟悉的语言编写appium脚本。

其次,appium支持多平台,包括MAC和Windows。它针对这两大平台开发了appium-Server。

最后,appium又同时支持Android 和 iOS两个操作系统。

这就使得appium变得非常灵活。

当我在MAC平台上,通过Python(python-client )编写了一个appium自动化脚本并执行,请求会首先到 appium.dum (MAC下的appium-Server),appium-Server通过解析,驱动iOS设备来执行appium自动化脚本。

或者,我在Windows平台上,通过Java( java-client )编写了一个appium自动化脚本并执行,请求会首先到 appiumForWindow.zip(Window下的appium-Server),appium-Server通过解析,驱动Android虚拟机或真机来执行appium脚本。

所以,你会看到appium的强大之处就在于此。

(5)你都需要安装什么?

这才是你最关心的问题,使用appium都需要安装些什么?其实,从appium工作原理你就应该知道需要装什么了。

编程语言:

Python , Java ......

appium client:

参考 3、支持多平台、多语言 的列表,根据你选择的语言来选择对应的 appium-client。

appium Server:

参考 4、appium工作原理 的介绍,根据你的系统平台选择 对应的 appium-server。

测试运行环境

你需要一个Android模拟器,或 一个 Android 手机,或 一台 iPhone 手机。

appium自动化测试_Appium自动化测试入门教程No.1—— Appium介绍相关推荐

  1. Arduino可穿戴开发入门教程Arduino开发环境介绍

    Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件 ...

  2. WPF入门教程系列三——Application介绍(续)

    接上文WPF入门教程系列二--Application介绍,我们继续来学习Application 三.WPF应用程序的关闭 WPF应用程序的关闭只有在应用程序的 Shutdown 方法被调用时,应用程序 ...

  3. WPF入门教程系列四——Dispatcher介绍

    WPF入门教程系列四--Dispatcher介绍 一.Dispatcher介绍 微软在WPF引入了Dispatcher,那么这个Dispatcher的主要作用是什么呢? 不管是WinForm应用程序还 ...

  4. VAPS XT开发入门教程00:基本介绍

    昨天(2021.10.12)到某研究所对其人员进行培训,发现一些问题,经过整理之后,形成本文比较系统化的培训流程. 当然,如果需要打补丁,本文会更新. VAPS XT介绍 VAPS XT基于PC机的人 ...

  5. 开源手机自动化测试框架iQuery入门教程(一)

    上次介绍iQuery之后,已经有些朋友在开始在手机自动化测试程序里试用iQuery了,由于之前的介绍文档比较含糊,先搁置扩展iQuery使其支持多种编程语言的系列文章,补充一下iQuery的入门教程, ...

  6. 【ROS入门教程】---- 01 ROS介绍

    ROS,机器人系统的不二选择 文章目录 ROS,机器人系统的不二选择 ROS是什么 ROS的强大之处 ROS的学习方法 总结 ROS是什么 作为新世纪的孩子们,可能从出生以来,我们就伴随着机器人的飞速 ...

  7. Android 入门教程:Android Studio 介绍

    原文:Beginning Android Development Tutorial: Introduction to Android Studio 作者:Megha Bambra 译者:kmyhy A ...

  8. appium java 虫师_appium新手入门(9)—— appium API 之应用操作

    本小节的所罗列的方法主要针对应用的操作,如应用的安装.卸载.关闭.启动等. 1.安装应用 方法: installApp() 安装应用到设备中去.需要apk包的路径. driver.installApp ...

  9. IOS 初级开发入门教程(一)介绍篇

    导读 目前移动端开发市场上引导开发者追求技多不压身,一个全栈开发者至少要懂后台服务器.数据库.Android.web.ios开发等."一超多强"是指开发者先成为一门技术的专家然后掌 ...

最新文章

  1. golang go-sql-driver 数据库报错 bad connection
  2. python数据清理的实践总结_python 数据的清理行为实例详解
  3. 【C语言】创建一个函数,将输入的2个数排序
  4. mqtt调试助手_腾讯物联网开发平台入门操作,如何使用MQTT协议上传温度湿度数据...
  5. python中__init__导入失败_python - 如何使用__init__.py修复“在非包中尝试相对导入”...
  6. php 更新配置文件
  7. AMBERT!超越BERT!多粒度token预训练语言模型
  8. SQLServr添加数据列
  9. 定义的form,宏等双击提示不存在的…
  10. 系列文章--WF学习资料汇总
  11. c语言实验上机报告,c语言上机实验报告_实验报告.doc
  12. 第二工业大学计算机应用大专录取分,2016年上海第二工业大学专科层次依法自主招生各专业分数线...
  13. Bacnet协议/Bacnet4j读写
  14. codevs 2867 天平系统3
  15. PDF文档搜索工具:PDF Search Mac版
  16. 0.618法C语言编程,c语言编程题--0.618法求最小值
  17. 曹操捷龙鸿宇CAD铝单板钣金展开插件
  18. 软件工程选择与判断题
  19. 计算机网络教程试题库,计算机网络教程_复习题及答案.doc
  20. 蛋鸡问题,先有鸡还是先有蛋。顺便回答第一个编译器是怎么来的。(思考使人伟大)

热门文章

  1. Java中List排序的3种方法!
  2. CentOS 7 搭建swagger Api文档管理系统
  3. 精通ASP.NET MVC ——控制器可扩展性
  4. python爬取新闻网站标题_python如何正确抓取网页标题
  5. C++PrimerPlus学习——第十七章编程练习
  6. html中最右边,html – 如何获得最右边的列填充剩余空间?
  7. php excel header,【IT专家】PHP生成excel,方法一-header生成
  8. html在线摄像头,在HTML里加载摄像头的方法
  9. 商品进销差价_商品进销差价概述
  10. python开发基础戴歆第四章_第一阶段:Python开发基础 day04 课后练习