Appium 实践 | 让测试更快更稳更可靠:片状测试

简介: 使用 Appium 时,会遇到又慢又不稳定的情况。Appium 使用的底层工具可能会限速,在功能测试中,许多环境问题也会导致自动化测试不稳定。其实有一些方法可以避开这些问题。本篇文章是系列中的一篇,后面也会有相应文章讨论稳定性和速度。

本文为霍格沃兹测试学院对 Appium Pro 的系列原创翻译文章之一,旨在普及最先进的测试开发技术。进阶学习,文末加群。

使用 Appium 时,会遇到又慢又不稳定的情况。Appium 使用的底层工具可能会限速,在功能测试中,许多环境问题也会导致自动化测试不稳定。其实有一些方法可以避开这些问题。本篇文章是系列中的一篇,后面也会有相应文章讨论稳定性和速度。

创建 Session 片状

片状其实就是不可能靠的意思--如果在本地测试成功,在未来它可能运行失败,这是不是不可靠?这个问题很复杂,Appium 确实会出现不稳定问题,但你需要找出问题所在!

  • 你是否了解 App 或者设备的速度,App 稳定性,屏幕大小,或者动态内容?是否毫无根据的假设这些值;
  • App 本身就不稳定(也许是 App 自身存在的问题或者人为,人工操作是否也会出现这个问题);
    设备内存和处理器计算不足;
  • 网络问题(用 HTTP 发送到后端可能失败);
  • 设备问题(设备会出现各种奇怪的问题);

如果你说,上面这些情况都没问题,问题肯定就出在 Appium 上!其实,Appium 只是众多技术的一环,下面这个图说明了 iOS 测试的底层技术栈:

看到没,Appium 并不是一个庞大的怪兽,相反,它使用了许多底层工具,问题可能出在这些底层工具上(比如 XCUITest 和 UiAutomator2 )。希望你能调查清楚问题所在。某种问题并不孤立,而是在整个构建中随机出现。当你检查日志时,你会发现这种片状现象总是在一天的某个时间发生。这是非常重要信息,这可能有一个计时代码正在执行!询问其他团队,他们可能知道问题所在。

后面的文章会详细讨论这些问题,现在我给出一些在 CI 上的建议:

  1. 将测试添加到构建前,检测是否有片状问题。多次运行它 (可能 100 次 ?) 以确保可靠,如果 100% 通过,很好,merger 这个commit 到 master 分支吧。
  2. 如果测试有一些没有通过,说明存在不可靠或者片状问题。花点时间调查原因,也许仅仅因为定位或者等待问题。Appium日志和一步一步的截图很重要。
  3. 当发现问题时,如果能解决,就解决它。如果解决不了,可以向 Appium 或者 Apple提供错误报告,你还可以丢弃这个测试或者注释掉(如果有时间,也可以手动测试)。
  4. 如果您在构建中了保留测试并允许构建在失败时重试测试,您必须跟踪重试次数的统计数据,并设置一些可靠性阈值,超过该阈值再进行调查研究。如果测试随着时间的推移,片状问题越来越多,你的应用程序可能有问题。

Appium 测试是功能测试,不是单元测试。单元测试与其他任何东西都是隔离的,而功能测试则生活在真实的世界中,要混乱得多。功能测试不可能覆盖所有代码问题,应该只考虑关键的用户操作,并通过少量测试捕获 bug,从 bug 中提取有价值的信息。

与此同时,要确保那些少量的测可能可靠。通过强化一些测试,你将了解关于应用程序和整个环境的很多信息。这样就能从一开始就把学到的东西投入到新的测试中去,而不是在以后的道路上一遍又一遍的解决同样的问题。

更多技术文章分享及测试资料点此获取

相关文章
|
23天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
40 4
|
24天前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
|
23天前
|
测试技术 Python
探索软件测试的深度与广度:从理论到实践
在数字化时代,软件已成为我们生活中不可或缺的一部分。随着技术的不断进步和用户需求的多样化,确保软件质量变得尤为重要。本文将深入浅出地介绍软件测试的核心概念、类型及其在软件开发生命周期中的重要性。我们将通过实际案例,展示如何实施有效的测试策略,并探讨自动化测试的未来趋势,旨在为读者提供一套完整的软件测试知识体系,帮助提升软件质量和开发效率。
|
24天前
|
测试技术 Python
探索软件测试的奥秘:从理论到实践
在软件开发的宇宙中,软件测试犹如一颗璀璨的星辰,指引着质量的方向。本文将带你穿梭于软件测试的理论与实践之间,揭示其内在的逻辑和魅力。从测试的重要性出发,我们将探讨不同类型的测试方法,并通过实际案例分析,深入理解测试用例的设计和应用。最后,我们将通过一个代码示例,展示如何将理论知识转化为实际操作,确保软件质量的同时,也提升你的测试技能。让我们一起踏上这段探索之旅,发现软件测试的无限可能。
|
26天前
|
jenkins 测试技术 持续交付
自动化测试框架的搭建与实践
在软件开发领域,自动化测试是提升开发效率、确保软件质量的关键手段。本文将引导读者理解自动化测试的重要性,并介绍如何搭建一个基本的自动化测试框架。通过具体示例和步骤,我们将探索如何有效实施自动化测试策略,以实现软件开发流程的优化。
54 7
|
26天前
|
测试技术
探索软件测试的奥秘:从理论到实践
本文深入探讨了软件测试的基本概念、重要性、主要类型以及实施策略。通过分析不同测试阶段和相应的测试方法,文章旨在为读者提供一套完整的软件测试知识体系,帮助他们更好地理解和应用测试技术,确保软件产品的质量和可靠性。
49 4
|
29天前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
46 2
|
29天前
|
数据可视化 测试技术 API
软件测试中的自动化测试框架选择与实践
在当今快节奏的软件开发环境中,自动化测试成为了确保软件质量和加速交付的关键。本文将探讨自动化测试的重要性,并比较几种流行的自动化测试框架,包括Selenium、Appium和TestComplete。文章还将提供一些最佳实践和案例研究,以帮助读者更好地理解和实施自动化测试策略。
|
21天前
|
监控 搜索推荐 测试技术
电商API的测试与用途:深度解析与实践
在电子商务蓬勃发展的今天,电商API成为连接电商平台、商家、消费者和第三方开发者的重要桥梁。本文深入探讨了电商API的核心功能,包括订单管理、商品管理、用户管理、支付管理和物流管理,并介绍了有效的测试技巧,如理解API文档、设计测试用例、搭建测试环境、自动化测试、压力测试、安全性测试等。文章还详细阐述了电商API的多样化用途,如商品信息获取、订单管理自动化、用户数据管理、库存同步、物流跟踪、支付处理、促销活动管理、评价管理、数据报告和分析、扩展平台功能及跨境电商等,旨在为开发者和电商平台提供有益的参考。
26 0
|
28天前
|
人工智能 数据管理 jenkins
探索软件测试中的自动化框架:从基础到高级实践
在当今快速发展的软件行业中,自动化测试已成为提高开发效率和保障产品质量的关键手段。本文将深入探讨软件测试自动化的各个方面,包括其重要性、主流的自动化测试框架、以及如何有效地实施自动化测试策略。我们还将通过案例分析,展示自动化测试在实际项目中的应用效果,以及面临的挑战和解决方案。无论是软件开发者还是测试工程师,了解并掌握自动化测试技术都将极大提升工作效率和产品质量。
46 0