Appium简介

为什么选择Appium

Appium是一个自动化测试开源工具,支持iOS和android平台上的移动原生应用、移动Web应用和混合应用。Appium是一个跨平台工具,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,大大增加了测试套件间代码的复用性。
- 移动原生应用:是指那些用iOS或者android sdk写的应用;
- 移动web应用:是指那些使用移动浏览器访问的应用,appium支持iOS的safari和android上的chrome;
- 混合应用:是指原生代码封装在网页视图(原生代码和web内容交互)。

Appium的理念

  1. 无需为了自动化,而重新编译或者修改我们的应用;
  2. 不必局限于某种语言或者框架来写和运行测试脚本;
  3. 一个移动自动化的框架不应该在接口上重复造轮子;
  4. 无论精神上,还是名义上,都必须要开源。

Appium的设计

  • Appium的真正的工作引擎是第三方自动化框架,不需要在本身应用里植入appium特定或者第三方代码。
    iOS:苹果的UI Automator框架
    Android 4.2+:Google的UI Automator框架
    Android 2.3+:Google的UI Instrumentation框架
  • Appium把这些第三方框架封装成一套API,即WebDriver API。
  • Appium扩充了WebDriver的协议,在原有的基础上添加自动化相关的API方法。

Appium的相关概念

  1. C/S架构
    Appium的核心是一个Web服务器,它提供了一套REST的接口。它接收到客户端的连接、监听的命令,接着在移动设备上执行这些命令,然后将执行的结果放在HTTP响应中返还给客户端。
  2. Session
    自动化总是在一个session的上下文中运行,客户端初始化一个和服务端交互的session。客户端发送一个附有desired capabilities的JSON对象参数的POST请求“/session”给服务器,服务端就会开始一个自动话的session,然后返回一个session ID,客户端拿到这个ID后就用这个ID发送后续的命令。
  3. Desired Capabilities
    Desired Capabilities是一些键值对。客户端将这些键值对发给服务端,告诉服务端我们想要启动怎样的自动化session。
  4. Appium server
    Appium server是用nodejs写的,我们可以源码编译或者从NPM直接安装。
  5. Appium服务端
    Appium服务端有很多语言库Java,Ruby,Python,PHP,JavaScript,C#等,这些库实现了对WebDriver协议的扩展。使用Appium的时候,只需使用这些库代替常规的WebDriver库就可以了。
  6. Appium.app,Appium.exe
    Appium提供了GUI封装的Appium server下载,它封装了运行Appium server的所有依赖元素。而且这个封装包含了一个Inspector工具,可以让使用者检查应用的界面元素层级。

Appium的环境部署

详细查看Appium-安装篇,Appium-Android开发环境。
提示:Appium Android系统运行要求:Java 7及以后版本,Android SDK API17以上版本,Android虚拟设备或者真实手机设备。

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