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 方法 扩展协议即可。
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 查看