Appium基础认识

       本文介绍了Appium相关的一些工具的概念以及彼此的关系,方便对appium有一个整体的认识。内容包括了JUnit,TestNG简介以及Appium的基本工做原理。java


自动化工具的比较:python

Appium 主流语言 开源社区良好,跨平台
Xamarin Test Cloud C#、ruby 开源,Xamarin Test Recorder很是好用。配套完整,和AWS Device Farm相似的真实手机云测试。
Xamarin的目的是使用C#开发Android、IOS等移动原生应用
Eggplant SenseTalk 企业服务收费,不开源。能够发邮件索要体验帐号

备注:因为须要在AWS Device Farm上进行自动化测试而其支持Appium,因此采用Appium。web


JUnit:Java测试框架,最多见于单元测试,最初针对单元代码编程

TestNG:Java测试框架,消除JUnit的许多限制,更灵活,适用于大型项目。最初设计于高级测试。bootstrap


Selenium:浏览器

一、web应用程序的自动化测试工具,直接运行在浏览器中ruby

二、基于Client/Server架构,因此理论上支持全部语言架构


Appium:app

一、能够看作Selenium在移动端的扩展框架

二、开源、跨平台的UI自动化测试工具

三、支持IOS、Android、FireOS平台上的原生、web应用和混合应用。

四、无需修改现有应用的任何信息

五、无语言限制,基于C/S架构,理论上支持全部编程语言


Appium工做原理:

真正执行自动化的工做引擎是平台相关的自动化框架(无需修改应用的缘由)

IOS(XCode6+):UIAutomation(弃用)

IOS(XCode8+):XCUITest

Android2.3+:Google’s Instrumentation(由单独对的Selendroid提供)

Android4.2+:Google’s UIAutomator


wKiom1nJvm_wjjM0AAAeBh2cAOg275.png

工做原理示意图


appium-client:

一、能够理解为咱们借助appium-client库写的测试代码

二、appium-client如java-client、python-client等是对Selenium Client扩展的库,方便使用

三、整个流程:创建Session,执行测试,销毁Session


appium-server:

一、解析client发来的命令请求

二、将请求发送到device上

三、device上的中间件如:Android上的bootstrap将请求转换成device执行完毕返回server,server再返回给client


device:

一、Android Emulator

二、Android Phone

三、IOS Simulator

四、IOS Phone


如何写测试代码:

一、根据你选择的编程语言,选择官方提供的对应的client(API),如java-client。

二、选择合适的测试框架如JUnit,TestNG等编写测试代码

三、搭建Appium Server,使用appium-doctor验证环境可用。

四、链接物理、模拟设备,执行代码


Appium和JUnit、TestNG的关系(框架是啥!)

一、Appium能够理解为一套工具,包括一个运行在服务端的Appium-Server,以及一套API用于与Server通讯。Client经过API向Server发送请求,Server将请求发送到Device,Device上的中间件如Android上的bootstrap或IOS上的WebDriverAgent,会把请求转化为平台相关的自动化操做在Device上执行。

二、不必定非要JUnit或TestNG,若是选择python也能够用unittest等。甚至不使用任何框架,在Java中直接在main函数中完成Session的建立,测试代码的执行,Session的销毁的整个流程。但是这就丢失了使用测试框架的好处。

三、自动化测试优先选择TestNG,网上广泛说:JUnit是单元测试的首选,而TestNG相对于JUnit更适合其余类型的测试。个人缘由是:AWS Device Farm同时支持JUnit和TestNG,但老是先把JUnit转换成TestNG代码再执行的。另外AWS官方示例代码使用的就是TestNG。

相关文章
相关标签/搜索