一些理论

什么是 APP UI 界面自动化测试?

顾名思义,APP UI 界面自动化测试,是针对 app 的 UI 界面进行的自动化测试。他通过模拟手动操作用户 UI 界面的方式,以代码方式实现自动操作和验证的一种自动化测试手段。在十年前,那时候还是 PC web 的天下,以 Selenium 驱动 web UI 的自动化测试还是主流。五年前,当测试人员逐渐熟悉了 Selenium API 编写 UI 自动化用例时,互联网的主战场已经从 web 端逐渐过渡到了 app 端。现在,app 在 UI 自动化方面的框架已经比较成熟,例如我们已经使用了三年多的 appium,还有诸如 uiautomator、espresso、robotium 等等。

app 界面自动化测试能解决什么问题?

1、重复性的功能测试及验证

2、避免疲惫操作时的人为测试遗漏

3、通过 UI 自动化操作获取其他测试数据的能力

界面自动化测试优缺点是什么?

优点

1、实施起来较容易:很多同学都有过这种经历,刚开始接触测试开发时,都是先接触 UI 的自动化。UI 的框架比较成熟,容易上手,相关学习文档比较全面。实施起来一般都不依赖于源码,是比较容易落地的一种自动化测试手段。

2、覆盖范围广:此项是重点。UI 上的一次操作的函数触发数量可能会非常多,点击一个按钮,可能触发了内部的几十个或者更多的函数调用。从函数调用数量来看,和单元测试的一个单测用例检查一个函数的逻辑是不同的。UI 操作检查的各个模块集成后模块之间的联动逻辑。是集成测试的有效手段,而单元测试是模块内部逻辑的检查。

缺点

缺点也是比较明显,随着敏捷迭代的速度越来越快,UI 控件的频繁变更导致控件定位不稳定,提高了用例脚本的维护成本,同时定位的不稳定导致用例的可信度降低。

Appium

Appium 简介

Appium 是一个开源测试自动化框架,可用于原生,混合和移动 Web 应用程序测试。 它使用 WebDriver 协议驱动 iOS,Android 和 Windows 应用程序。

Appium 理念

Appium 实现自动化测试需要遵循以下四个理念:

(1) 实现自动化测试时,不必重新编译或者以任何方式修改 app;

(2) 编写或运行测试 case 的时候可以使用多种语言;

(3) 一个自动化测试框架不需要重造轮子;

(4) 无论在精神上还是实践上,自动化框架都是开源的;

Appium 设计原理

API 接口调用 Selenium 的接口,Appium Server 接收 WebDriver 标准请求,解析请求内容,调用对应的框架相应操作。代码将 DesiredCapability 中的键值对组合成一个 JSON,然后通过 HTTP 协议发送到 Appium 服务器创建一个 session.代码与 Appium 的所有交互都是围绕着这个 session 进行的。session 创建成功后,Appium 再通过 USB 接口与手机之间创建 TCP 连接,先安装一些服务端 App,比如 Android API 4.2+ 是 uiautomator,Android 2.3+ 是 Instrumentation 手机的操作都是有 Appium 发送指令到 uiautomator,然后再由 uiautomator 进行控制的。

最后

下一讲我们会聊聊 APPIUM android 自动化测试环境的安装方法。

关注微信号,了解更多关于自动化测试的知识。

加入 QQ 群 320463587,加入 app 自动化的技术交流吧。


↙↙↙阅读原文可查看相关链接,并与作者交流