什么是Monkey
对于Monkey,大家并不陌生,相信很多后续出现的基于控件遍历的测试工具也或多或少地受了它的启发。简单来说,Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试。
为什么会有Monkey
Monkey 主要用Android的压力测试,对测试软件的稳定性、健壮性快速而有效, 主要目的就是为了测试app是否会Crash.
当我们需要对一个软件进行压力测试,检查其性能时,如果人工进行测试的话,效率会很低,而且比较枯燥。而Monkey可以为我们减轻这部分重复而繁琐的工作,只需要观察被检测程序多久的时间会发生异常,并在结束的时候收集这些异常信息即可。
Monkey的弊端
- 无法准确地得知bug的复现步骤
- 发送的用户事件流的有效性成问题,很多是无效操作
针对Monkey的弊端可以进行哪些方面的改进
1. 如何解决无法得知bug复现步骤的问题
Monkey对于应用程序稳健性的帮助不言而喻,但其弊端也是不可忽视的。
当Monkey跑出一堆问题时,若能及时准确知道复现步骤,将能极大缩短定位问题的时间,帮助开发及时调试程序优化性能。 并且结合Monkey的测试思路,我们还可以同步进行性能方面的数据采集,分析出可能存在问题的场景,提前预警。
以FPS测试为例,提供些思路。下图是3年前构思的以Monkey为驱动去测整个应用程序的FPS性能的工作流程图。(注:图中所写的Monkey并非android原生的monkey,而是根据其原理写一个简单的伪Monkey工具,特点在于测试过程中能记录操作类型和操作轨迹,用于后续能在出错截图中直接标记出操作路径。)
通过上图这样的改造后,无法得知bug复现步骤的问题便在一定程度上得到了解决。于是,应用开发前期我们就可以对整个程序进行全面测试,在繁多的操作流程中找到可能存在问题的场景,这部分场景在测试中会以类似下图的方式展示,明确标记操作路径,并将当时操作产生的FPS等具体信息记录在案。进而测试可以根据这些信息有针对性地对这部分问题场景进行复测,同时开发也能同步进行调试定位,优化性能。
2.如何减少无效操作,提高测试覆盖面
为了解决Moneky无效操作过多的问题,研发基于控件的自动化遍历工具几乎是业界的共识,也由此涌现出了不少优秀的团队优秀的工具,而MQC旗下的Ripper亦是其中的佼佼者。目前MQC中的Android兼容性测试便是以Ripper驱动的。
相比Monkey,以及大多数遍历工具,Ripper有如下优势
- 更多的动作:多点触控、缩放、连击、中文输入……
- 精准控制,高并发,测试效率高
- 根据规则遍历控件,减少重复操作次数,提高测试覆盖面
- 记录测试场景,方便问题追踪
- 识别输入框语义,根据语义输入内容
- 识别并处理各类弹框 …… 更多的优点,试用过后,方能体会Ripper的美妙之处!
下图为Ripper测试后产生的部分操作场景拓扑图。
MQC测试平台是为广大企业客户和移动开发者提供真机测试服务的云平台,拥有大量热门机型,提供7x24全天候服务。
我们致力于提供专业、稳定、全面、高价值的自动化测试能力,以及简单易用的使用流程、贴心的技术服务,并且帮助客户以最低的成本、最高的效率发现APP中的各类隐患(APP崩溃、各类兼容性问题、功能性问题、性能问题等),减少用户流失,提高APP质量和市场竞争力。
原文链接:https://yq.aliyun.com/articles/151878?spm=5176.8091938.0.0.ugigHu
相关推荐
Monkey测试工具通过发送一系列的伪随机事件(如触摸、键盘输入、系统事件等)到目标应用,帮助开发者找出潜在的崩溃、性能瓶颈以及不稳定的环节。 压力测试是软件质量保证的重要环节,通过模拟大量并发用户或高强度...
Monkey工具最初由Android系统提供,主要用于通过模拟用户随机事件来检测应用程序的稳定性和性能。然而,这里的“基于Python开发的Monkey自动化工具”是对原生Monkey工具的一种扩展和封装,它利用Python的强大功能和...
Monkey工具在Android应用测试领域中扮演着重要角色,它是一个自动化压力测试工具,能够模拟用户在设备上对应用程序的各种随机事件进行快速、无序的触发,以检测应用的稳定性和性能。Monkey工具的名字来源于它的随机...
本文将深入探讨Monkey脚本生成工具的架构、代码解读以及如何执行Monkey测试。 一、Monkey测试工具架构 Monkey测试工具的基本工作原理是通过发送伪随机事件序列到应用程序,这些事件可以包括触摸屏点击、滑动、按键...
同时,Monkey测试也可以与continuous integration工具结合使用,例如Jenkins、Travis CI等,以实现自动化测试和continuous integration。 Monkey测试是一种快速有效的测试方法,可以帮助开发者快速地测试应用程序的...
### Monkey测试及结果处理工具详解 #### 一、Monkey测试工具概述 Monkey测试是一种自动化的随机测试方法,常用于移动应用的功能性和稳定性测试。通过模拟用户的触摸、滑动等操作来发现应用程序中的缺陷。该工具...
monkey测试工具,用于Android自动化测试,功能测试
### Android Monkey 自动化测试工具使用详解 #### 一、自动化测试背景与意义 随着信息技术的飞速发展,软件质量已成为衡量产品竞争力的关键因素之一。软件测试作为软件生命周期中的重要环节,对于确保软件产品的...
SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。本包为Monkey测试必须要安装和配置的。
在Android应用测试领域,`Android Monkey`是一个非常重要的自动化工具,它由谷歌提供,用于进行随机事件模拟,帮助开发者检测应用的稳定性、健壮性和性能。`Monkey`这个名字源自于它在无序、随机的方式下“骚扰”...
Monkey程序就是为了解决这个问题而设计的一种自动化测试工具。本篇将详细介绍Linux环境下Monkey程序的功能、工作原理以及如何利用它进行系统稳定性测试。 **Monkey程序的起源与功能** Monkey程序最初源于Android...
它是由Google开发的,主要用于压力测试和稳定性测试,通过模拟用户随机的触摸事件、键盘输入以及系统事件来检测应用程序的稳定性和性能。这个“Monkey”概念源自于它的随机性和不可预测性,就像一只疯狂的猴子在屏幕...
5. **响应式测试**:为了确保网站在不同设备上的良好显示,Monkey建站工具箱可能会提供模拟不同屏幕尺寸和分辨率的测试环境,帮助开发者检查响应式布局是否合理。 6. **SEO优化**:工具箱可能内置了SEO分析工具,...
Monkey测试工具,特别是Fastbot,是自动化测试领域中的一种常用技术,主要针对Android应用程序进行压力和稳定性测试。Fastbot作为Monkey测试的一种高级形式,旨在提供更高效、更智能的测试体验,帮助开发者发现并...
在Android应用开发中,Monkey测试是一种自动化测试方法,主要用于检测应用程序的稳定性、健壮性和性能。Monkey测试通过发送随机的用户事件(如触摸、按键、滚动等)到应用程序,以此来模拟用户的各种操作,帮助...
"Monkey建站工具"是一款专为用户简化网站构建流程而设计的应用程序,它以其易用性和实用性赢得了用户的青睐。在快速发展的互联网世界中,建站工具的便捷性成为了许多非专业程序员或小型企业主的选择,Monkey建站工具...
Monkey自动化测试是Android开发中的一个重要工具,它能够帮助开发者和测试工程师对Android应用程序进行压力测试。这种测试通常指的是Monkey工具和Monkeyrunner工具的应用。 Monkey是一个简单的命令行工具,它会生成...
Monkey测试是一种基于事件驱动的随机测试方法,通过对设备屏幕上的UI元素发送一系列随机操作,如点击、滑动、按键等,来模拟用户在正常使用或异常情况下应用的行为,以此发现程序潜在的bug和不稳定因素。 在Android...