zoukankan      html  css  js  c++  java
  • 移动自动化测试入门,你必须了解的背景知识和工具特性

    本文为霍格沃兹测试学院优秀学员课程学习笔记,想一起系统进阶的同学文末加群交流。

    ** 1. 移动互联网测试背景**

    随着智能手机的普及和互联网的发展,移动互联网已经渐渐成为人们的一种的生活方式。既然是生活方式,那么对生活品质就会有不断的提升要求,就会对所用的移动互联网产品有更高的体验需求。
    这对于测试工程师来说就有了更高的质量保证要求,而时间短,进度快,种类多,使得我们仅靠人工很难保证版本的测试充分,这个时候就需要借助自动化来释放人力,提升效率了。

    1.1 一般架构

    • 移动端 :用户会通过公司的产品来使用公司的业务,这些移动端产品包含了Android App、iOS App、H5、小程序

    • 服务端 :用户所有的操作最终会通过各种协议,类似 HTTP 协议等,发送至公司的服务集群进行处理

    1.2 测试阶段

    通常我们一个项目的开展都要经历需求、研发、测试、交付这几个过程,而客户端的测试阶段也就是处于产品交付之前:

    1.3 UI 自动化误解与价值

    **1.3.1 误解

    **

    很多人认为 UI 自动化没有用或者只能模拟人工点点点,其实不然,有这种看法大多还是因为我们自身的能力和理解不够(包括我本人也是在不断学习,增加认识)。

    **
    技术上:** 没有用更好的 POM 进行封装维护;

    框架上: 没有增加 Watch,智能等待,失败重试等机制来使框架有更灵活的机制

    策略上: 没有使用分层测试的策略,合理的控制 UI 自动化的规模,并不是所有的手工用例都需要用 UI 自动化去实现:

    • 少数核心用例交给自动化测试

    • 大部分的基础回归测试交给自动遍历

    • 新功能测试交给人工测试

    **1.3.2 价值

    **

    上面的提到的误解如果解开就可以正确合理的开展 UI
    自动化测试,就可以为企业带来实际的价值,当然,做起来并没有那么容易,需要我们测试工程师不断的探索。通过下面这张图来看我们的测试架构,来提炼出 UI
    自动化测试的价值所在。

    • 回归测试

    • 自动探索测试

    • 专项自动化测试

    • 竞品分析

    ** 2. 主角登场——Appium**

    上面说了这么多,就为了引出今天的主角 —— Appium一个为了移动端 UI 自动化测试而生的框架,先来看 Appium
    官网打开后看到的第一句话,如下:

    还是谷歌翻译一下~:

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

    没错,就是这简单的一段话,描述出了 Appium 的优势、架构和底层实现原理,下面通过对这段话的解读来认识 Appium,敲开移动互联网自动化的第一道门。

    2.1 Appium 是谁?

    Appium ,单词的由来就是 App+Selenium 的组合。因此顾名思义,为了 App 而来,与 Selenium 有很大的关系,看下面的架构图:

    从架构图中我们可以看到,最上层就是用的 Selenium 实现,因此 Appium Selenium 一样遵从 WebDriver 协议,通过 Selenium 客户端将请求转发至 Android 或者 iOS 上框架的引擎的实现,如果用过 Selenium 做 Web
    自动化的话,现在几乎可以无缝的切换至 Appium,很多的用法和思想都保持一致。

    2.2 优势解读

    • 既然上层使用了 selenium,那么 selenium 的跨语言性应该也保留了下来—— 跨语言 ,支持 Java/Python/Ruby/PHP/NodeJS 等

    • 官方介绍中提到了多个平台的支持,再结合上述的架构图——多平台支持 Android、 iOS、 Windows

    • 官方还提到了多种开发模式支持 Native Hybird Webview,这些就可以使我们可以在 H5 和小程序上开展 UI 自动化了

    如下图很好的展示了 Appium 对上述优势的支持:

    除了上述之外还有的优势就是

    • 支持跨 App,可以在多个 App 之间交互

    • 不依赖源代码,可以测试第三方应用,比如测试微信服务号

    2.3 集大成者-底层引擎的实现

    先来看目前 Mobile 自动化的方案,如下对各个端有不同的实现方案,五花八门,且很多不支持跨 App

    而 Appium 几乎包括了所有的优势,可谓是集大成者,为何?再来看 Appium 官方 GitHub
    给出的底层引擎实现说明(很多已经淘汰,我们学习推荐使用的即可):

    Android端

    • espresso :Android 官方支持的框架

    • selendroid:eBay 实现的框架

    • uiautomator:Android 官方实现的集成测试的框架

    • uiautomator2(推荐使用):基于 uiautomator 的一个拓展,也是我们目前最推荐使用的框架

    iOS端

    • uiautomation

    • xcuitest(推荐使用)

    另外还有 Mac 和 Windows 的驱动引擎支持。

    正是因为这些引擎的支持实现,所以 Appium 才可谓是集大成者,是目前一款优秀的移动端UI自动化框架,我们使用 Appium 只负责告诉各个底层,我需要做哪些操作,具体如何操作 Appium 是不管的,由各底层的驱动去完成即可。

    最后,如果做移动端自动化测试,我们推荐的是使用 Appium 框架去敲开这扇大门,进入移动互联网自动化的世界。

    • 跨语言:Java、Python、nodejs等

    • 跨平台:Android、 IOS、Windows、Mac

    • 底层多引擎可切换

    • 生态丰富,社区强大

    官方文档中英文皆有,中文由 Testerhome 社区组织翻译,并有众多高手分享经验,讨论采坑。

    相关链接:

    Appium 官网:http://appium.io/

    Appium 官方 GitHub:https://github.com/appium/appium

    TesterHome 社区:https://testerhome.com/


    ** _3.
    来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
    QQ交流群:484590337
    公众号 TestingStudio
    点击获取更多信息

  • 相关阅读:
    支持向量机SVM知识点概括
    决策树知识点概括
    HDU 3081 Marriage Match II
    HDU 3572 Task Schedule
    HDU 4888 Redraw Beautiful Drawings
    Poj 2728 Desert King
    HDU 3926 Hand in Hand
    HDU 1598 find the most comfortable road
    HDU 4393 Throw nails
    POJ 1486 Sorting Slides
  • 原文地址:https://www.cnblogs.com/hogwarts/p/15821979.html
Copyright © 2011-2022 走看看