分类标签归档:selenium

自动化混合应用


自动化混合应用

Appium 的核心理念之一是,你不应该为了测试而改变被测的应用程序。在这种理念中,可以使用像 Selenium 测试 Web 应用的方式去测试混合应用。Appium 需要知道你是想自动化应用的原生部分还是 Web 视图,这在技术上有一点复杂。但值得庆幸的是,我们可以继续使用 Selenium WebDriver 做所有的事。

一旦测试处于 Web 视图上下文之中,所有 Selenium WebDriver API 指令集都是可用的。

进入 Web 视图上下文(context)

在你的 Appium 测试中,以下是与 Web 视图通信所必须的几个步骤:

  1. 导航到你的应用程...

阅读全文...

自动化测试移动网络应用


自动化测试移动网络应用

如果你有兴趣在 iOS 系统上的 Safari 浏览器或者 Android 系统上的 Chrome 浏览器进行网页自动化的话 ,Appium可以帮助你。你只要正常地写 WebDriver 测试,通过特别的设置,可以把 Appium 当成 Selenium 服务来运行。

模拟器上的移动端Safari浏览器

首先,确定你的 Safari 开发者模式开启,移动调试端口打开。

如果你需要用模拟器或真实设备,你必须在用 Appium 之前打开 Safari 浏览器。

然后,想在移动端 Safari 上运行你的测试,就需要按如下设置 desired capabilities:...

阅读全文...

Appium服务器参数


Appium 服务器参数

许多 Appium 1.5 中的服务器参数已被弃用,取而代之使用的是 -default-capabilities 标识

用法:node . [标志]

服务器标志

所有标志都是可选的,但是有些必须跟指定标志组合使用才生效。

...
标志 默认 描述 示例
--shell null 进入 REPL 模式
--allow-cors false 打开 CORS 兼容模式,这将允许从托管在任何域中的网站内连接到 Appium 服务器。启用此功能时要小心,因为如果您访问的网站使用跨域请求,在 Appium 服务器上启动或运行内省会话,则可能存在安全风险。

阅读全文...

移动手势的自动化


移动手势的自动化

尽管 Selenium WebDriver 的规范已经支持了一些移动交互,但它的参数并不总是能轻易映射到底层设备的自动化框架所提供的方法上(比如 iOS 上的 UIAutomation)。为此,Appium 在最新的规范(https://dvcs.w3.org/hg/webdriver/raw-file/tip/webdriver-spec.html#multiactions-1) 中实现了新的触摸操作和多点触控 API。注意,这与早期版本中原始的 JSON Wire 协议里的触摸操作 API 不同。

这些 API 允许你使用多个执行器去建立任意的手势。请查看对应语言的...

阅读全文...

元素的定位与交互


元素的定位与交互

Appium 支持 WebDriver 定位策略的子集:

  • 通过 "class" 查找 (例如, UI 组件的类型)
  • 通过 "xpath" 查找 (例如, 一个元素的路径以抽象的方式去表达,具有一定的约束)

你可以查看关于以上的列表,选择器策略

Appium 还额外支持部分 Mobile JSON Wire Protocol 的定位策略。

  • -ios predicate string:相当于使用 iOS Predicate 去递归地搜索元素(iOS 10.0 及以上版本)
    • -ios uiautomation 用于 iOS 9.3 及以下版本
  • -android ...

阅读全文...

--default-capabilities标识


--default-capabilities 标识

Appium 1.5 移除了大部分旧版本遗留的 CLI 标识;其余部分可转换成 JSON 并成为 --default-capabilities 标识的一部分。举个例子:

# 未处理的 JSON 作为一个参数
--default-capabilities '{"app": "myapp.app", "deviceName": "iPhone Simulator"}'
# 或一个 JSON 文件的名字
--default-capabilities /path/to/file.json

Windows 用户在命令行传递 JSON 时记得去掉引...

阅读全文...

Appium 服务器初始化参数(Capability)


Appium 服务器初始化参数(Capability)

描述
automationName 自动化测试的引擎 Appium (默认)或者 Selendroid
platformName 使用的手机操作系统 iOS, Android, 或者 FirefoxOS
platformVersion 手机操作系统的版本 例如 7.1, 4.4
deviceName 使用的手机或模拟器类型 iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等等...

阅读全文...

运行测试


运行测试

准备你要测试的应用(iOS)

被测应用要在模拟器上运行,就必须针对该模拟器进行专门的编译,例如在 Xcode 项目下执行如下命令(你可以使用 xcodebuild -showsdks 查看可用的 SDK 列表):

> xcodebuild -sdk iphonesimulator6.0

这会在 Xcode 项目下创建一个 build/Release-iphonesimulator 目录,目录中包含 .app 包。你将使用这个包和 Appium server 沟通。

如果需要,可以将应用程序目录压缩到 .zip 文件中!Appium 会帮你解压(如果你使用的不是局部的 Ap...

阅读全文...

支持Appium服务器的客户端程序库列表


支持 Appium 服务器的客户端程序库列表

这些库封装了标准的Selenium客户端,提供了所有JSON Wire协议指定的常规selenium命令,并另外添加了移动设备相关的命令,例如多点触控手势和屏幕方向。

Appium客户端程序库实现了Mobile JSON Wire Protocol(一个基于官方标准协议的扩展扩展),和W3C Webdriver规范(一个无关传输的自动化规范;这是定义的MultiAction API的地方)中的元素。

Appium服务端自身定义了基于官方协议的扩展,帮助Appium用户使用各种设备操作(例如在测试会话过程中安装/卸载应用)。这就是为什么我们需要...

阅读全文...

Appium 介绍


Appium 介绍

Appium 是一个开源工具,用于自动化 iOS 手机、 Android 手机和 Windows 桌面平台上的原生、移动 Web 和混合应用。「原生应用」指那些用 iOS、 Android 或者 Windows SDKs 编写的应用。「移动 Web 应用」是用移动端浏览器访问的应用( Appium 支持 iOS 上的 Safari 、Chrome 和 Android 上的内置浏览器)。「混合应用」带有一个「webview」的包装器——用来和 Web 内容交互的原生控件。类似于 Apache CordovaPhonegap 项目,创建一个混合应用使得用 Web 技...

阅读全文...