淘宝Android UI自动化测试实践与挑战

版权申诉
5星 · 超过95%的资源 2 下载量 100 浏览量 更新于2024-07-03 2 收藏 1.5MB PPTX 举报
“测试自动化实践,主要探讨了淘宝Android客户端的UI自动化测试方案,包括实际遇到的问题和未来的计划。” 淘宝在Android客户端的UI自动化测试中采用了名为TMTS(TaobaoMobileTestSystem)的框架,该框架是专为无线UI自动化测试设计的。TMTS的核心是基于Android的Instrumentation API,这允许它在应用程序运行时直接与系统交互,进行更底层的操作。由于淘宝应用的复杂性,尤其是大量内嵌WebView的场景,TMTS特别强调了对WebView的支持。 在实际使用过程中,TMTS遇到了一些问题。例如,原先的设计需求是支持对发布版本的测试,无需为自动化测试单独打包。然而,这与某些应用在退出时调用killProcess来结束自身进程的行为产生了冲突,导致测试结果无法正常收集。为解决这个问题,团队曾尝试过Robotium框架,但因为淘宝应用的特殊性,仍然无法有效收集结果。 TMTS的架构包括以下几个关键组件: 1. TmtsFrameworkFinder:返回TmtsView对象,用于识别和操作界面元素。 2. TmtsDevice:提供设备级别的操作,如点击功能键、旋转屏幕等。 3. Logger:负责记录并保存测试过程中的日志信息。 TMTS提供了特定的视图类,如TmtsTextView、TmtsAbsListView和TmtsWebView,以支持对文本、列表视图和Web内容的自动化操作。例如,TmtsTextView提供了设置和获取文本的功能,TmtsAbsListView支持滚动到指定行,而TmtsWebView则能够执行JavaScript命令并接收返回值。 在测试实践中,TMTS被整合到持续集成流程中,每天自动打包并运行测试用例,然后生成测试报告。这种方式适应了敏捷开发的需求,有助于尽早发现和修复问题。 对于未来计划,尽管没有在描述中详细提及,但可以推测淘宝可能会继续优化TMTS,提升对复杂应用的支持,增强稳定性,以及可能的性能改进和新功能的添加。此外,考虑到开源在技术社区的重要性,他们可能还会考虑将TMTS开放源代码,以促进社区的参与和协作,进一步提升框架的质量和影响力。 淘宝的Android UI自动化测试实践体现了对复杂业务场景的深入理解和技术创新,他们的解决方案为其他面临类似挑战的公司提供了有价值的参考。通过持续优化和改进,TMTS有望成为更加成熟和强大的自动化测试工具。