一、Appium介绍

1、资料
 
 
Appium中文文档:https://testerhome.com/
 
 
 
2、特点
 
appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。
  • “移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。
  • “移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。
  • “混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。
重要的是,appium是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。
 
特点:
 
(1)Appium采用Client-Server的架构设计,并采用标准的HTTP通信协议;Server端创建并管理多个WeDriver session与iOS/Android原生测试框架交互,无需测试人员关注细节实现;Client端基本上可以采用任意主流编程语言编写测试用例。
 
(2)支持Android4.2以上版本,基于UiAutomator架构。
 
(3)基于webdriver标准协议
 
 
Appium工作原理
 
  • 使用Selenium WebDriver,在执行测试时用于和Selenium Server通信的时JSON Wire Protocl;
    • 通过Selenium WebDriver驱动测试脚本,只要有对应的Selenium client library存在就可以用相应的语言写脚本;
    • 对不同平台和应用类型的支持
                
3、与selenium
  • appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。
  • appium客户端类库实现了Mobile JSON Wire Protocol(一个标准协议的官方扩展草稿)和W3C WebDriver spec(一个传输不可预知的自动化协议,该协议定义了MultiAction 接口)的元素。
  • appium服务端定义了官方协议的扩展,为appium 用户提供了方便的接口来执行各种设备动作,例如在测试过程中安装/卸载App。这就是为什么我们需要appium特定的客户端,而不是通用的Selenium 客户端。当然,appium 客户端类库只是增加了一些功能,而实际上这些功能就是简单的扩展了Selenium 客户端,所以他们仍然可以用来运行通用的Selenium会话。
 
4、支持多平台,多语言
 
appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。
原因:appium选择了Client/Server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是appium及Selenium(WebDriver)如何做到支持多语言的原因;
语言/框架                             Github地址
Ruby                                    https://github.com/appium/ruby_lib
Python                                https://github.com/appium/python-client
Java                                     https://github.com/appium/java-client
JavaScript (Node.js)        https://github.com/admc/wd
Objective C                       https://github.com/appium/selenium-objective-c
PHP                                    https://github.com/appium/php-client
C# (.NET)                           https://github.com/appium/appium-dotnet-driver
 
5、iOS测试
 
Appium利用Apple组件之一的UI Automation特性实现。
  • Appium作为一个HTTP Server接收测试脚本通过JSON Wire Protocol传输的指令。
    • Appium发送这些指令给Apple组件;
      • 这些指令就可在启动了被测应用的模拟器或真机中执行:
        • 执行脚本:JSON指令->JavaScript命令;
        • 返回响应:JavaScript->JSON Wire Protocol
6、Android
  • 执行脚本:JSON指令-JAVA命令;
  • 返回响应:响应->JSON Wire Protocol
 
 
 
posted @ 2020-05-26 20:39  晨尛  阅读(486)  评论(0编辑  收藏  举报