zoukankan      html  css  js  c++  java
  • 文末有福利 | 仅需10行代码,带你搞定千万级流量 App 自动化测试

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

    ** 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. App 自动化测试实战**

    本周霍格沃兹测试学院测试公开课,@ 西西老师 将在24日带你快速掌握“ 10行代码 + Uiautomator2的进阶使用 ** +
    千万级流量 App实战** ”,助你实现职场进阶。

    立即扫码报名,锁定听课名额!记得进群领取环境安装攻略哦~

    ”PageObject(PO)设计模式在UI自动...“

    阅读


    App自动化之dom结构和元素定位...“

    阅读

    ”基于Junit4,利用xUnit框架让你的测试...“

    阅读

    关注我们

    测试开发实战BAT 内推职位 | 大咖公开课

    戳“阅读原文”,来提升自己的核心竞争力吧!

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

  • 相关阅读:
    laravel路由和MVC
    laravel目录介绍
    laravel下载安装
    Mac 程序员的十种武器
    Python中列表的copy方法
    Ubuntu 安装vim失败解决
    Linux userAdd 增加用户如果没有配置文件情况解决
    Ubuntu 软件管理
    awk工具详解
    httpsClient
  • 原文地址:https://www.cnblogs.com/hogwarts/p/15823228.html
Copyright © 2011-2022 走看看