Appium在Android UI测试中的应用实践

  • 时间:
  • 浏览:0
  • 来源:uu快3app_uu快3预测苹果

正确的获取元素原本便都要能获取元素相关的信息,愿意 使用各语言常用的测试框架编写测试即可,如 Java 的 JUnit,Nodejs 的 Mocha 等。

取舍元素位置后,即可根据前述的 Find 措施来查找/取舍元素

Appium 是有有二个 C/S 架构的,支持 Android/iOS Native, Hybrid 和 Mobile Web Apps 的测试框架,与测试守护线程通过 Selenum Webdriver 协议通讯。Webdriver 的好处是通过 HTTP RPC 的措施调用 Server 上的过程,编写测试脚本不受语言的限制,无论是 Python, Java, NodeJS 均都要能方便的编写测试。本文中将使用 Python 进行编程。

Appium 需用依赖 Android SDK 编译在手机端运行的有有二个 插件,有过后需用首先安装相应的 Android SDK 版本。这里直接使用了 Android Studio 中自带的 SDK Manager。在 SDK Manager 中取舍和测试机相对应的 SDK Platform 和较新的 Build-tools,有过后需用使用模拟器测试需用装对应的 ARM/x86 System Image,以及 Intel HAXM Installer,用于加速 x86 虚拟机。Appium 使用 adb 来与目标机器通讯,有过后对于真机和模拟器操作几乎都有相同的,怎样才能建立模拟器在此不再赘述。

Android UI 测试工具有统统种,如 Monkey, UIAutomator, Selendroid, Robotium 等。其中 UIAutomator, Monkey, Selendroid 均为非侵入式的 UI 测试,也有过后不需用修改源代码,就说 我安装了目标守护线程就都要能进行测试。Robotium 需用与源码一同编译测试。Appium 实际上有过后有有二个 测试工具的统一调度软件,将不同的非侵入式测试工具整合在一同,对外提供统一的 API。在 Android 2.3 原本的版本,Appium 会调用 Selendroid ,原本的版本会直接使用 UIAutomator,iOS 下使用 UIAutomation。Appium 还支持 FirefoxOS 的 UI 测试。

使用 Appium 进行 UI 控制

5. findElement(s)ByXPath

通过 UIAutomator 的取舍器来获取元素。有过后 Appium 在 Android 上实际是调用的 UIAutomator,统统都要能通过 UIAutomator 的取舍器来取舍元素。

这里我使用 Appium 主有过后为了模拟用户点击加进去去微信好友,统统全部的守护线程并没人使用到测试框架。相关的 UI 元素获取/操作措施供当让人们参考。

官网给出了命令行下的安装措施。但实际上 Appium 有 GUI 版本,更适合在 Windows/MacOS 下使用。Windows 下需用安装 .NET Framework。

2. findElement(s)ByClassName

3. findElementById

6. findElementByAndroidUIAutomator

根据注释修改相应属性后即可运行测试。手机需用打开 ADB 调试,执行完以下代码后,Appium 会在手机上安装 Appium Settings 和 Unlock 有有二个 守护线程,愿意 微信会被启动。

了解了相关的函数后,下面就应对 UI 进行定位了。有过后是另一方团队开发的守护线程,推荐让开发同学在所有的空间上都加进去去 resource_id 进行绝对定位。有过后碰到没人谈价 resource_id 的元素,那就要使用别的措施进行定位了。

安装 Appium

UI Automator Viewer 是 Android 官方的 UI 定位工具,趋于稳定 sdk/tools 下。运行都有打开 viewer 界面。点击获取按钮即可获取当前正在运行的 Activity 的 UI 外部。

查询函数

在 Android 中基本没用。Android UI 没人 Name 五种 属性。有说都要能使用 text 值获取。但我并没人成功

编写全部的测试代码

起因是有过后市场部的同事抛来如下需求:批量加进去去一些微信好友。直接抓取请求进行重放的措施是不靠谱的,微信与服务端的通讯均加密,Pass。考虑使用 xposed 等框架 hook 相关函数进行操作。有过后 xposed 需用越狱,且开发比较复杂,Pass。愿意 想到了使用 UI 测试工具进行模拟操作,开发较为简单。

操作函数用于操作选定的元素,有统统,以下仅列举多少,更多的请查阅手册。

通过 resource_id 来获取元素,每个 Activity 中都有唯一的,用法如下

查询函数返回的元素对象都要能像 JS 中的 dom 元素一样,继续使用查询函数来选定其子元素。用之类下。

操作函数

安装完成后需用在 Appium GUI 中配置 Android SDK 目录,愿意 取舍 Android,点击 Launch 就都要能启动 Appium Server。

Selenum Webdriver 使用了五种之类于 JS 中的 DOM 模型的措施来取舍页面中的元素。dr 为当前正在活动的 activity 对象,都要能使用 findElementByXXX 的措施来获取 Activity 中的元素。所有 Element 后带 s 的函数,均获得所有匹配的元素,不带 s 的函数获得第有有二个 匹配的元素。

AppiumDriver(Client) 都要能很方便的获得当前正在运行的 Activity 的 UI 描述,愿意 可根据返回的 XML 文档来寻找元素。

1. findElement(s)ByName

Android 测试工具与 Appium 简介

在 Android 上 AccessbilityID 实际有过后 contentDescription 。五种 属性是为了方便视力受损人士使用手机所设置。开启 TTS 后系统会朗读相关控件的 contentDescription。

怎样才能取舍查询规则

Appium Server 默认会监听 http://localhost:4723 ,用于 RPC 通讯。下面当让人们就都要能打开熟悉的编程环境,编写 UI 测试用例了。这里使用 Python 进行编写,需用先安装 Appium 的 Python Client ,有过后再 python 中使用 appium.webclient 就都要能连接 Appium server了。

通过类名来获取元素,用法如下:

1. UI Automator Viewer

2. AppiumDriver getPageSource

通过 XML Path 描述来寻找元素。我没人成功的获取到,有过后是 XPath 写的有什么的什么的问题。

4. findElement(s)ByAccessbiltiyId