『与善仁』Appium基础 — 10、APPium自动化测试框架介绍

时间:2024-10-25 21:55:28

文章目录

      • 1、主流的移动端⾃动化⼯具
        • (1)Robotium
        • (2)Macaca
        • (3)Appium
      • 2、⾃动化测试⼯具选择的关注点
      • 3、APPium简介

我们前面说的Android环境搭建和adb命令都是为移动端自动化测试环境搭建做准备的。

1、主流的移动端⾃动化⼯具

(1)Robotium
  1. ⽀持语⾔:Java
  2. 仅⽀持Android系统
  3. 不⽀持跨应⽤
(2)Macaca
  1. ⽀持语⾔:Java,Python,
  2. ⽀持Android和iOS系统
  3. ⽀持跨应⽤
(3)Appium
  1. ⽀持语⾔:Java,C#,Python,php,perl,ruby,
  2. ⽀持Android和iOS系统
  3. ⽀持跨应⽤

2、⾃动化测试⼯具选择的关注点

  1. 是否⽀持native,webview。
  2. 是否⽀持获取toast。
  3. 是否⽀持跨应⽤。

说明

(1)native:表示APP原生页面。

  • 使用Android/IOS支持的语言编写页面。

    Android是Java语言。

    IOS 是Object-C语言。

  • 优点:页面打开速度快。

  • 缺点:更新复杂。

    当你修改了原生页面,需要重新发布的话,就需要重新发布到应用市场上,无论app修改了什么,哪怕是一点点原生页面,都需要重新发布。需要应用市场平台审核,审核需要一定时间。

    在用户方面,更新需要用户升级或重新下载app。

(2)webview:简单理解就是app中的H5页面。

  • 使用前端技术编写的页面。

  • 优点:更新方便。

    进行修改,不需要重新发布应用市场,webview页面在我们自己的服务端就可以自行更新。

  • 缺点:打开速度慢,需要加载页面的很多元素,如js,css等。

(3)toast:就是页面中的一个标签。

  • toast的样子

    比如我在Android虚拟机中打开文件管理器,点击返回按钮会有一行提示“再次点击即可退出。”,如下图:
    在这里插入图片描述
    这个样式的提示就叫toast

  • toast并不是弹窗,在页面中弹窗你不操作的话会一直存在,而toast默认时间就自动消失了。

补充

  • 我们现在大部分的app页面,都是由native页面和webview页面混合组成的,既有原生页面,也有H5页面。
  • 在app中区分原生页面还是H5页面的基础办法(不一定准确),打开原生页面是没有进度条的,打开H5的页面是有进度条的。

3、APPium简介

  1. 官⽹:,由SauceLab公司开发。

  2. Appium是由nodejsexpress框架写的Http Server,Appium使⽤WebDriverjson wire协议(该协议可支持多语言),来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。

    Appium对IOS系统的支持得益于Dan Cuellar’s对于IOS自动化的研究。

    Appium也集成了Selendroid,来支持老android版本。

  3. Appium支持Selenium WebDriver支持的所有语言,如JavaObject-CJavaScriptPhpPythonRubyC#Clojure,或者Perl语言,更可以使用Selenium WebDriver的API。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。同样,如果只使用Google的UIAutomation,我们就只能用java来编写测试用例。Appium实现了真正的跨平台自动化测试。

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

    支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。

    所谓的“移动原生应用”是指那些用 iOS 或者 Android SDK 编写的应用。

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

    所谓的“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。

    比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。

  5. Appium使用的供应商提供的框架:

    IOS 9.3及以上:苹果的XCUITest

    IOS 9.3及更低版本:苹果的UIAutomation

    Android 4.2+:谷歌的UiAutomator/UiAutomator 2

    Android 2.3+:谷歌的Instrumentation(Instrumentation由单独的项目Selendroid提供支持)

    Windows:微软的WinAppDriver

下面这段介绍来自于appium的官网:

Appium is an open-source tool for automating native, mobile web, and hybrid applications on iOS mobile, Android mobile, and Windows desktop platforms. Native apps are those written using the iOS, Android, or Windows SDKs. Mobile web apps are web apps accessed using a mobile browser (Appium supports Safari on iOS and Chrome or the built-in ‘Browser’ app on Android). Hybrid apps have a wrapper around a “webview” – a native control that enables interaction with web content. Projects like Apache Cordova or Phonegap make it easy to build apps using web technologies that are then bundled into a native wrapper, creating a hybrid app.

Importantly, Appium is “cross-platform”: it allows you to write tests against multiple platforms (iOS, Android, Windows), using the same API. This enables code reuse between iOS, Android, and Windows testsuites.