Appium 简介

1.1 Appium 概述

Appium 是一个开源、跨平台(测试程序跨平台、支持多平台上的app测试)、多语言支持的(开发语言)移动应用自动化工具。

1.1.1 测试对象

Appium 的测试对象包括:原生 app,混合 app,移动 web app(就是用手机浏览器打开的网址);

所谓原生 app,就是专门针对某一类移动设备而生的,所有界面和代码都是专门为平台设计的。比如说我们手机上自带的计算器应用,它的代码和界面,就都是用安卓开发语言 java 使用安卓开发库开发出来的。而混合 app 主要是指它的一部分是原生界面和代码,而另一部分是内嵌 web app。开在基本上打开网页浏览的 app 都是混合 app,比如微信、支付宝、开发者头条等。微信的消息界面是原生代码实现的。而打开某个朋友圈,或者打开别人发来的链接部分是 web 部分,内嵌了一个浏览器内核,由浏览器内核实现的。现在混合型 app 很多,稍微功能全一些的都需要具备网页浏览器的功能。而 web app 则完全是手机浏览器里打开的一个网址,大家可能会问,网址怎么是一个 APP

App 的概念其实非常广泛,现在说到 App,大家认为是手机 App。其实这样理解很狭义,App 就是应用的意思,所有的应用程序都是 App ,这里面当然也包括 web 网页应用。Web App 只能运行在浏览器里,靠浏览器解释执行。它其实就是一个触屏版的网站。

1.1.2 测试对象 App 运行平台

Appium 的测试对象运行平台包括:

  • iOS (就是苹果手机、平板、甚至 iWatch 等移动设备上运行的 app
  • Android (就是安卓手机、平板、等移动设备上运行的 app
  • Windows (就是 Windows 手机、平板灯移动设备上运行的 app,但是这种平台使用人数目前太少,少到基本可以忽略不计了。)
  • FirefoxOS (更少,更加可以忽略不计了)

1.1.3 测试对象 App 运行环境:

Appium 的测试对象运行环境包括:

  • 真实设备
  • 模拟器
    真实设备大家都知道,就是苹果安卓的手机、平板等移动设备。而模拟器则是通过在 PC 或者 Mac 电脑上的软件模拟的,苹果安卓的手机、苹果等移动设备。主要是方便我们测试用的。

1.1.4 测试程序语言:

appnium 支持多种程序语言开发测试程序,基本上 Selenium 支持开发的语言,appium 都支持,比如:pyhton、java、Ruby、js、php、C# 等。

1.1.5 测试程序运行平台

appnium 支持测试程序运行在多种平台上,包括:Windows、Linux、Mac OS等。但是要注意的是,如果测试的是 iOS 应用,测试程序本身是可以运行在所有平台的,但是有 appium server 必须要运行在苹果的机器上,比如笔记本 MacBook,或者台式机 iMac

appium server 本身是 js 开发的,也是跨平台的。但是对苹果设备的自动化,appium 依赖苹果的自动化框架,也只能运行在苹果机器上。

1.1.6 自动化原理

我们先来看一下 appium 自动化的架构图:

image.png

这幅图,包含了3个主体部分。

Test script:
这是我们的测试程序,是测试逻辑的实现部分。就像以前我们的 selenium 自动化脚本。而且和 selenium 一样,可以使用多种语言,Appium 客户端也支持多种语言。一般运行在 pc、laptop上,或者苹果笔记本,台式机。

Appium Server:
这是一个 JavaScript 代码实现的程序。是运行在 Node.js 里面的。Node.js 就是 js 程序的一个解释器,就像 Python 解释器和 python 程序的关系一样。可能有人会困惑,js不是运行在浏览器里面的吗?其实 js 是通用的语言,浏览器里面有 js 的解释器,同样可以将解释器单独拿出来作为一个程序运行 js 代码,运行的 js 代码也可以不仅仅是和 web 相关的,可以是任何目的的代码,就像 python,java 一样。

被测试 app:
运行在真实设备或者模拟器中。这个测试系统运行起来交互关系是这样的:测试程序(Test scrip),告诉 Appium Server 要做什么操作。比如要去点击界面的一个元素。怎么告诉 Appium Server ?它们之间有 http 的连接,通过 http 请求发送命令给 Appium ServerAppium Server 接收到测试程序的命令后,再发出命令给设备上运行的控制程序(这程序由Appium Server注入到设备里面运行),控制程序调用相应自动化库里面的方法去执行界面的控制。

  • Android 底层自动化工具
    我们看一下安卓的底层自动化工具。版本 2.3 - 4.1:使用的是 Selendriod 工具(这些系统已经很少了,可以忽略了)

4.2+:使用的是 UiAutomator,(目前 4.2+ 版本的安卓占了 90% 以上的市场份额,所以我们后面讲的都是 4.2+ 安卓版本)。

image.png

当我们执行安卓自动化应用的时候

  • IOS 底层自动化工具
    IOS 9.3 版本之前,苹果使用自动化技术叫 UIAutomation
    iOS 9.3+ 以后苹果推出了 XCUITest 测试技术。
    iOS 10 苹果完全去掉了以前的 UIAutomation 的技术支持。所以现在,我们要进行苹果 app 的自动化,只能使用 XUCITest
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,100评论 1 32
  • 1)解释什么是Appium?Appium是一个免费分发的开源移动应用UI测试框架。 2)列出Appium的可以完成...
    CC先生之简书阅读 21,421评论 0 22
  • 1.什么是Appium? Appium 是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iO...
    六六_fiona阅读 1,706评论 0 5
  • 蓝球范围: 01 04 06 07 08 09 10 14 16 01 04 06 07 09 10 14 16 ...
    99b48d6a94c7阅读 184评论 0 0
  • 来到成都坐地铁到华西坝,很快就找到了撒哈拉。洗了澡,洗去风尘。本来准备去小酒馆跨年的,但是最终决定和大部队一起去吃...
    南方姑娘__阅读 169评论 0 0