从解读Appium官网的第一段话开始敲开移动互联网自动化的大门

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实现,因此AppiumSelenium一样遵从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是不管的,由各底层的驱动去完成即可。

3、广告环节(总结)

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

  • 跨语言:Java、Python、nodejs等
  • 跨平台
    • Android、 IOS
    • Windows、Mac
  • 底层多引擎可切换
  • 生态丰富,社区强大
    • 官方文档中英文皆有,中文由testerhome社区组织翻译
    • testerhome社区有众多高手分享经验,讨论采坑,走前人填平的路,助(祝)前进的道路一马平川!
写在最后:

经验欠缺,能力尚弱,还在路上摸索前进,有志同道合的小伙伴欢迎交流指导~
想了解怎么安装配置环境的小伙伴可以参考另一篇文章:
Windows(Win10)、Mac下安装appium

相关链接:
appium官网:http://appium.io/
appium官方GitHub:https://github.com/appium/appium
testerhome社区:https://testerhome.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章