腾讯Android自动化测试实战1.1 Android自动化测试框架概述

简介:

1.1 Android自动化测试框架概述

2007年Android开源时,Monkey、Instrumentation和MonkeyRunner这3个测试框架,是跟Android源码一起发布的,这也是最早可用的自动化测试框架,那几年大家基本都是用这些框架来开展自动化相关测试工作的。2010年,第一个第三方的测试工具Robotium(基于Instrumentation)发布了,不少测试人员就转用这个框架,Robotium社区逐步发展起来。图1-1所示为Robotium热度随时间变化的趋势。

2010年还有一个自动化测试框架Robolectric开源了,主要支持单元测试;Robolectric 允许用户做大部分真实设备上可以做的事情,且可以在常规的JVM持续集成环境中运行,不需要通过模拟器,因此可以摆脱模拟器启动慢的问题。

 

 

图1-1 Robotium热度随时间变化的趋势

注:引用自https://www.google.com/trends/explore#q=robotium

2011年新发布的Android SDK包含了chimpchat,可以通过Java来调用Monkey,也可以用Java语言实现类似MonkeyRunner功能(MonkeyRunner之前只支持Python)。

2013年则是一个Android自动化测试框架爆发年,Selendroid、Espresso、Calabash、Appium等框架都是在这一年发布或者开源的。其中,Appium整合Selendroid以及UI Automator等框架的优点,使用Selenium的WebDriver JSON协议,使WebDriver用户使用起来非常方便。自2013年以来,Appium发展非常迅速(不过基本上是印度的同学在搜索)。图1-2所示为Appium热度随时间变化的趋势。

 

图1-2 Appium热度随时间变化的趋势

注:引用自https://www.google.com/trends/explore#q=Appium

按照时间线,把上面介绍的自动化测试框架梳理一下,如图1-3所示。

当然国内也有不少团队或者个人开发自动化测试框架并开源,例如百度的Café(https://github.com/BaiduQA/Cafe),阿里巴巴的两个自动化测试框架Athrun)http://code.taobao.org/svn/athrun)、Macaca(http://macacajs.github.io/macaca/)。腾讯内部也开发了Android自动化框架,不过暂时没有开源。相信国内其他公司也在开发相关自动化框架,有些公司基于已有的开源框架二次开发定制适合自己项目的自动化框架,可能暂时也没有开源。

 

图1-3 Android自动化测试框架时间线

注:上面提到的是相对有一定使用人数的自动化测试框架,除此之外,业界还有不少其他测试框架,如MonkeyTalk、RoboSpock、NativeDriver等。

上面简单介绍了Android自动化测试框架的历史(时间线展示)。Android自动化测试里面还涉及到一个签名的问题(Instrumentation的限制),我们按照重签名的维度重新划分一下,方便读者做自动化测试框架的选型。图1-4所示为Android自动化测试框架图谱,仅供参考。

 

 

图1-4 Android自动化测试框架图谱

注:Appium不需要更改被测App签名;

Hybrid:混合Android原生控件以及Webview控件;

Native:纯Android原生控件。

相关文章
|
17天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
68 8
|
3天前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
49 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
12天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
46 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
18天前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
38 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
9天前
|
机器学习/深度学习 人工智能 jenkins
探索软件测试中的自动化与持续集成
【10月更文挑战第21天】 在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的进步和开发模式的转变,自动化测试和持续集成已经成为提高软件质量和效率的关键手段。本文将深入探讨自动化测试和持续集成的概念、实施策略以及它们如何相互配合以优化软件开发流程。我们将通过分析实际案例,展示这些技术如何在实际项目中发挥作用,以及面临的挑战和解决方案。此外,文章还将讨论未来趋势,包括人工智能在测试领域的应用前景。
57 17
|
9天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
33 7
|
22天前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
2月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
81 4
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
67 4
|
27天前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####