Appium 简介

作者: 自如_ | 来源:发表于2019-06-24 16:03 被阅读219次

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

相关文章

  • (二)Appium自动化框架简介

    Appium自动化框架简介 git地址 一、Appium简介 1、Appium遵循的原则: 1.使用自动化来测试a...

  • Appium基础教程

    [TOC] Appium教程 Appium简介 Appium是一款开源的Appium自动化工具, 基于Webdri...

  • Appium学习02-实战基础

    Appium学习笔记目录 本文包含内容 appium session简介 appium基础代码详解 实战示例 会话...

  • Appium简介

    Appium介绍 Appium是一个开源工具,用于自动化测试iOS、Android、Windows等移动原生或移动...

  • Appium简介

    什么是Appium Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用Web...

  • Appium简介

    Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用WebDriver协议驱动...

  • Appium 简介

    1.1 Appium 概述 Appium 是一个开源、跨平台(测试程序跨平台、支持多平台上的app测试)、多语言支...

  • appium简介

    1、简介 Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用WebDrive...

  • appium简介

    扩展知识espresso是白盒测试框架,通常是给开发人员用的monkey是任意的在应用界面乱点乱划,适合压力测试m...

  • Appium简介

    一、什么是Appium Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium...

网友评论

    本文标题:Appium 简介

    本文链接:https://www.haomeiwen.com/subject/ewngqctx.html