当前位置:   article > 正文

手把手教你搭建基于Airtest的App&Web UI自动化测试框架!

手把手教你搭建基于Airtest的App&Web UI自动化测试框架!

前言

本文为《手把手教你搭建基于Airtest的App&Web UI自动化测试框架》系列文章的开篇,笔者将逐步指导如何运用Airtest框架实现App&Web UI自动化测试,并打造独具特色的UI自动化测试框架,希望能起到一个抛砖引玉的作用,为测试同学提供实用参考。

本系列文章将分为三个部分:
1. 开篇:介绍App&Web UI自动化测试框架的特色亮点,展示框架结构及最终效果。
2. 分章深入:逐步展开多个关键话题,从基础到深入,深入探讨项目所涉及的要点。
3. 终章总结:收尾篇章将深入补充项目细节和最终概括成果。

在开篇中,我们将首先讨论实际编码前的准备工作。本系列文章不涉及Python基础知识,若读者已掌握编程基础或对Python有一定了解,将有助于更好地理解本系列内容。

为什么选择Airtest框架

测试框架汇总

依托于当前技术快速迭代,系统快速更新,市面上诞生了众多开源测试框架。笔者分别对当下较为主流的几款测试框架进行了实际测试和深入了解。仅以笔者的个人需求整理汇总如下:

图片

基于我司情况,为了给我司的UI自动化测试框架能顺利落地,就需要找到一个门槛低、脚本维护成本低的UI自动化测试框架,笔者在经过深入调研与综合评估,决定选用Airtest作为核心的自动化测试框架。

Airtest框架介绍

Airtest由网易游戏和谷歌共同研发,并以Python作为其脚本语言。是一款跨平台的自动化测试框架,专为游戏和应用程序(尤其是移动应用)的用户界面(UI)自动化测试而设计。

1、跨平台兼容性

在当今多元化的移动应用市场中,我们的产品需在Android、iOS以及Windows等多个平台上保持一致的用户体验。Airtest作为一款专为跨平台UI自动化测试而设计的框架,完美契合了这一需求。它不仅支持主流的移动操作系统,还能无缝衔接Windows平台的应用测试。这意味着,我们只需编写一套脚本,即可实现对各平台应用的自动化测试,显著提升了测试效率,减少了重复劳动,同时也确保了不同平台间的一致性验证。

2、图像识别技术的创新应用

Airtest独树一帜地引入了基于图像识别的UI元素定位机制,这为我们应对复杂、动态或无明确标识符的UI元素提供了强大工具。在游戏测试、定制化UI或频繁迭代的产品中,传统的基于控件ID或属性的定位方式往往力有不逮。而Airtest通过截屏与图像比对,能够精准识别并操作任何可视化的界面元素,无论其内部结构如何变化。这种技术的应用极大地增强了测试脚本的健壮性和适应性,确保了在产品UI不断演进的过程中,自动化测试依然能保持高效且可靠。

3、Poco库的深度集成

Airtest内嵌的Poco库为移动应用自动化提供了强大的补充。Poco基于控件树的交互方式,对原生控件及部分游戏引擎有深度支持,特别是在稳定版应用中,其精确定位和操作能力显著优于图像识别。Poco与Airtest的图像识别技术互补,使我们在面对各类UI场景时,都能灵活选择最适宜的交互方式。这种双重保障确保了在处理各种复杂UI交互时,我们的自动化测试既能兼顾效率,又能保证准确性。

4、易用的集成开发环境与可视化特性

Airtest提供的集成开发环境(IDE)极大地简化了自动化测试脚本的编写与调试过程。IDE集成了脚本编辑、录制回放、截图、元素查看、日志输出等功能,形成了一个完整的测试工作流,降低了测试工程师的技术门槛,加速了脚本的开发速度。特别是其录制回放功能,允许非编程背景的测试人员通过直观的操作录制生成自动化脚本,进一步提升了团队整体的自动化测试能力。此外,可视化元素查看和实时日志输出有助于快速定位问题,提升调试效率。

5、强大的扩展性与社区支持

Airtest基于Python语言构建,充分利用了Python丰富的生态系统,使得我们能够便捷地引入第三方库、编写自定义函数以应对复杂的业务逻辑,甚至生成详尽的测试报告。Airtest社区活跃,官方文档详实,遇到问题时能得到及时的技术支持和解决方案。这种强大的扩展性和社区支持,使得Airtest能够轻松融入公司的现有测试体系,适应不断变化的测试需求。

  1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
  2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
  3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
  4. 分享他们的经验,还会分享很多直播讲座和技术沙龙
  5. 可以免费学习!划重点!开源的!!!
  6. qq群号:691998057【暗号:csdn999

基于Airtest开发的自动化测试框架亮点

基于Airtest二次开发缘由

当然由于各个公司的测试需求,Airtest本身提供的能力是不能完全满足的,比如免费开源的Airtest对脚本批量执行没有其收费版丝滑的体验,报告只能在本地保存和查看,缺少测试结构汇总等等。(值得注意的是,这些不足之处只是针对免费开源的Airtest框架,Airtest提供的收费版功能是比较强大的,大家可以酌情体验。)

为了满足我司的测试需求,所以需要Airtest的基础上进行二次开发和封装,以满足定制化的测试需求。

当前框架实现的功能

  1. 兼容Web系统和APP应用的测试框架,支持Pycharm中进行脚本调试工作

  2. 框架经过丰富封装和优化,降低测试脚本编写和维护难度,使测试同事只需专注编写和维护测试脚本

  3. 通过二次开发,实现脚本批量执行功能,支持直观展示测试脚本清单和指定执行测试脚本

  4. 可定制化二次开发测试报告输出格式及保存方式

  5. 采用本地与线上同时存储测试报告,实现一体化查看各脚本报告明细

  6. 理论上支持多环境,框架已进行相应封装,只需设计和维护脚本以适应不同环境。

  7. 支持测试结果汇总并整合了邮件发送功能

测试框架概览

总结

在对市场上主流UI测试框架进行深入剖析与综合比较之后,基于我司自身的测试需求、技术背景与业务特性,决定采纳Airtest作为核心的自动化测试工具。

这一选择并不否认其他优秀框架的有效性与适用性,事实上,诸如Appium、Selenium和Playwright等框架在各自的领域均展现出强大的功能与广泛的适用性。然而,对于我司而言,Airtest的独特优势与高度契合性使其脱颖而出,成为满足当前及未来测试需求的理想选择。

而对于能力较强、追求更多定制化与灵活性的测试工程师,笔者是比较推荐探索使用Appium、Selenium或Playwright框架,以应对更为复杂、特定的测试场景。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/430850
推荐阅读
相关标签
  

闽ICP备14008679号