Appium笔记(一) 丶Appium的自我介绍

1、我是谁,个人特色是什么php

  Appium是一款开源测试自动化框架,可用于原生、混合移动Web应用程序。它使用WebDriver协议驱动iOS,Android和Windows应用程序。重要的是,Appium是“跨平台”的:它容许您使用相同的API针对多个平台(iOS,Android,Windows)编写测试。这使得iOS,Android和Windows测试套件之间的代码重用成为可能。 html

  • “原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。java

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

  • “混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。好比,像 Phonegap,能够帮助开发者使用网页技术开发应用,而后用原生代码封装,这些就是混合应用。git

   Appium哲学github

    根据如下四条原则概述的理念,Appium的设计旨在知足移动自动化需求:web

    1. 您没必要从新编译您的应用或以任何方式对其进行修改以实现自动化。
    2. 你不该该被锁定到特定的语言或框架来编写和运行你的测试。
    3. 当涉及到自动化API时,移动自动化框架不该该重蹈覆辙。
    4. 一个移动自动化框架应该是开放源代码,在精神和实践以及名义上!

  支持多平台、多语言objective-c

    Appium是跨平台的,能够用在OSX,Windows以及Linux桌面系统上运行。编程

    Appium选择了Client/Server的设计模式。只要Client可以发送http请求给server,那么的话Client用什么语言来实现都是能够的,这就是Appium及Selenium(WebDriver)如何作到支持多语言的缘由;设计模式

    Appium扩展了WebDriver的协议,没有本身从新去实现一套。这样的好处是之前的WebDriver API可以直接被继承过来,之前的Selenium(WebDriver)各类语言的Building均可以拿来就用,省去了为每种语言开发一个Client的工做量;

语言/框架 Github地址
Python https://github.com/appium/python-client
Ruby  https://github.com/appium/ruby_lib
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
RobotFramework https://github.com/jollychang/robotframework-appiumlibrary

 

2、我和selenium的关系

Appium类库封装了标准Selenium客户端类库,为用户提供全部常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。

Appium客户端类库实现了Mobile JSON Wire Protocol(一个标准协议的官方扩展草稿)和W3C WebDriver spec(一个传输不可预知的自动化协议,该协议定义了MultiAction 接口)的元素。

Appium服务端定义了官方协议的扩展,为appium 用户提供了方便的接口来执行各类设备动做,例如在测试过程当中安装/卸载App。这就是为何咱们须要appium特定的客户端,而不是通用的Selenium 客户端。固然,appium 客户端类库只是增长了一些功能,而实际上这些功能就是简单的扩展了Selenium 客户端,因此他们仍然能够用来运行通用的Selenium会话。

 

3、我是咋工做的咧

  我这么厉害,那我是怎么工做的呢?经过下图简单的展现出了Appium的工做原理(该原理图是本人根据我的理解和网上的一些资料所得出,若有不对之处,欢迎指正)。

        

首先是咱们写的测试脚本(Test Scripts),Appium支持多语言,由于它针对流的几种语言分别开发的相应的Appium库。好处就是咱们能够选择本身熟悉的语言编写Appium脚本。

而后是它的服务,Appium支持多平台,包括MAC和Windows。它针对这两大平台开发了Appium-Server。

其次是驱动同时支持Android 和 iOS两个操做系统,Appium-Server 经过调用不一样的接口来实现对Apk/Ipa的操做。针对Android设备,Android SDK 版本在17以上的会经过调用Android 系统 UIAutomator 组件的接口来实现相应操做,SDK版本在17如下会经过调用Android系统Senlendroid组件的接口来实现相应操做;针对IOS设备,则经过调用IOS系统Apple Instruments组件的接口来实现相应操做的。

最后对不一样系统的设备上应用的自动化操做,同时支持Android 模拟器、真机和IOS真机。

综上所述,这就使得Appium变得很是灵活。

 

即,当我在MAC平台上,经过Python(python-client )编写了一个Appium自动化测试脚本并执行,请求会首先到 Appium.dmg (Mac下的Appium-Server),Appium-Server经过解析,而后调用IOS系统的Apple Instruments组件的接口从而驱动iOS设备来执行Appium自动化测试脚本。

亦或者,我在Windows平台上,经过Java( Java-client )编写了一个Appium自动化脚本并执行,请求会首先到 AppiumForWindow.zip(Window下的Appium-Server),Appium-Server经过解析,而后调用Android模拟器或真机相关组件的接口从而驱动Android模拟器或真机来执行Appium自动化脚本。

 

 

4、怎么才能让我为你效力

    1.若是你须要安装使用Appium,你必须先要有一个基础的JAVA环境,即安装并配置好JDK。具体配置教程的传送门

    2.编程语言,一门你熟悉且运用的比较顺手的编程语言。我用的是Python,目前python的下载和安装已经变得很简单了,直接去官网下载而后运行安装就行了。官网下载传送门

    3.有了编程语言,你必须就得有一个用于“搬砖”(写代码)的IDE,这个根据我的喜爱不一样,都会有不一样选择。惟一原则:用着顺手就好。  

    4.下载安装一个Appium Server

      可根据你所使用的计算机系统平台,选择一个对应的Appium Server。具体可参考3、我是咋工做的咧

    5.下载安装一个Appium Client

      能够在支持多平台、多语言小节的Client列表内,根据你选择的语言来选择下载并安装对应的Appium Client。

    6.最后为了方便调试和更顺畅的玩耍安卓应用自动化,你还须要有一个安卓的SDK。Android SDK配置教程

    

Ps:在编写过程当中对虫师大大的相关文章有所借鉴,在此表示感谢

相关文章
相关标签/搜索