App自动化测试Appium实战(一)Appium介绍

Appium是一个支持mobile应用测试的开源框架,它支持多平台、多系统的app自动化测试,该系列会从零开始讲解Appium,并使用Appium自动化iOS和Android应用的测试。本篇先介绍Appium的基本架构和概念。

文章目录

    • 支持的应用类型
    • 支持的系统
    • Appium特点
    • appium基本概念
      • client/server架构
      • session
      • Desired Capabilities
      • Appium Client
      • Appium Desktop

支持的应用类型

Appium支持native app(原生应用)、mobile web app(web应用)、hybrid app(混合应用)的自动化测试。
原生应用是指使用iOs、Android或者Windows SDKs写的应用,通常来说iOS就是ipa格式文件,Android就是apk格式文件。也就是我们手机上使用的各种App,它们依赖于设备的本地资源。
web应用是指通过移动设备的浏览器访问的应用,比如我们通过收集safari访问的百度网页。
混合应用是指在原生应用中嵌入webview的应用,即可以从应用中访问网页的应用。

支持的系统

Appium支持Android、iOS和windows desktop的应用测试。而且它们使用的API一致,那么同一份代码可以用于同一App在不同系统上的测试。

Appium特点

  1. 测试前不需要重新编译app;
    因为Appium是通过已有的第三方框架驱动移动端测试,比如XCUITest、UIAutomation、UiAutomator/UiAutomator2、WinAppDriver等,就不需要
    将一些框架本身的代码编译到App中。
  2. 不局限于某一特定的框架和语言,python/java/js/ruby等都可以;
    因为Appium把所有第三方的api包成统一的api,WebDriver api,即Selenium WebDriver。所以说Appium也是基于WebDriver的拓展,在其基础上增加了一些用于App测试的API。
  3. 移动App自动化测试的api和web自动化测试的api一致;
    WebDriver基本已是web应用自动化的标准,Appium也遵循该标准,只是在此基础上加了一下api用于移动应用的自动化。
  4. 开源。

appium基本概念

client/server架构

前文提到Appium遵循了WebDriver的标准,所以Appium和WebDriver一样是client/server的架构。Appium实质上是一个暴露api的WebDriver,接收client命令,在mobile service上执行命令,然后以http response的形式展示执行结果。

session

client要执行测试的时候就和server建立一个session。

Desired Capabilities

建立session所需要的key-value,告诉Appium server建立怎么样的session。比如家里一个iOS的session还是Android的session。

Appium Client

既然Appium是一个server,那么client是什么呢?Client就是封装了Selenium client libraries的一些libraries,它们不仅支持Selenium原有的api,也提供了支持移动测试的api。不同的语言有不同的client,详情可参考:Appium clients list

Appium Desktop

Appium的GUI客户端,可以从页面操作Appium,主要有inspector用于定位app的元素。

你可能感兴趣的:(移动app测试)