1.Appium 简介

Appium简介

Appium 是一个开源的跨平台的自动化测试工具,可以使用相同的API对多平台(Android、IOS、Windows)进行测试,在不同平台之间可以代码复用

详情请点击 https://study.163.com/course/introduction/1209833813.htm 查看

Appium 的理念

Appium 旨在满足移动端自动化需求的理念,概述为以下四个原则:

       1.不应该为了自动化而重新编译你的应用或以任何方式修改它。

               这就是说你测试使用的应用与最终发布的应用是一致的,为了实现这个目标,Appium使用了系统自带的自动化框架

                           iOS 9.3 及以上: 苹果的 XCUITest

                           iOS 9.3 及以下: 苹果的 UIAutomation

                           Android 4.2+: 谷歌的 UiAutomator / UiAutomator2

                            Android 2.3+: 谷歌的 Instrumentation. (通过绑定独立的项目—— Selendroid 提供对 Instrumentation 的支持)

                             Windows: 微软的 WinAppDriver

       2.你不应该被限制在特定的语言或框架上来编写运行测试

               为了实现这个目标,appium把系统本身提供的框架包装进一套API中,这就是WebDriver API中。WebDriver(也叫                     「Selenium WebDriver」)规定了一个客户端-服务器协议(称为 JSON Wire Protocol),按照这种客户端-服务器架                       构,可以使用任何语言编写的客户端向服务器发送适当的 HTTP 请求。已经有为 各个流行编程语言编写的客户端 。                    也 就意味着可以使用多种语言来进行测试,支持的语言包括pyhton、java、Ruby、js、php、C# 

      3.移动端自动化框架不应该在自动化接口方面重造轮子

              WebDriver 已经成为 Web 浏览器自动化事实上的标准。没有必要在移动端做完全不同的尝试,直接通过增加额外的API             方法 扩展协议即可。  

扫描二维码关注公众号,回复: 11152377 查看本文章

       4.移动端自动化框架应该开源,在精神、实践以及名义上都该如此

             确已知的——你在阅读正是因为 Appium 是开源的 

Appium 的概念

        1.客户端 / 服务器架构

              Appium 的核心一个是暴露 REST API 的 WEB 服务器。它接受来自客户端的连接,监听命令并在移动设备上执行,答复 HTTP 响应来描述执行结果。

实际上客户端 / 服务器架构给予了我们许多可能性:我们可以使用任何有 http 客户端 API 的语言编写我们的测试代码pyhton、java、Ruby、js、php、C# 。我们可以把服务器放在另一台机器上,而不是执行测试的机器。

     2.会话(Session)

   自动化始终在一个会话的上下文中执行,这些客户端程序库以各自的方式发起与服务器的会话,但最终都会发给服务器一个 POST /session 请求,请求中包含一个被称作「预期能力(Desired Capabilities)」的 JSON 对象。这时服务器就会开启这个自动化会话,并返回一个用于发送后续命令的会话 ID。

    3.预期能力(Desired Capabilities)

预期能力(Desired Capabilities)是一些发送给 Appium 服务器的键值对集合(比如 map 或 hash),它告诉服务器我们想要启动什么类型的自动化会话。也有许多能力(Capabilities)可以修改服务器在自动化过程中行为。例如,我们可以将 platformName 能力设置为 iOS,以告诉 Appium 我们想要 iOS 会话,而不是 Android 或者 Windows 会话。

     Capabilities常用参数

  http://appium.io/docs/cn/writing-running-appium/caps/index.html

描述

platformName

使用的手机操作系统

ios、Android,或者FirefoxOS

deviceName

使用的手机了类型

HONOR

udid

链接真机的唯一设备号

例如 1ae203187fc012g

noReset

在当前 session 下不会重置应用的状态。默认值为 false

true, false

appPackage

运行的 Android 应用的包名

com.example.android.myApp

appActivity

Activity 的名字是指从你的包中所要启动的 Android acticity。

xxx. MainActivity,

 

详情请点击 https://study.163.com/course/introduction/1209833813.htm 查看

原创文章 100 获赞 339 访问量 56万+

猜你喜欢

转载自blog.csdn.net/MATLAB_matlab/article/details/105786152