您的位置:

自动化测试神器:Android Monkey

一、 Android Monkey简介

Android Monkey是一个命令行工具,可以用来随机测试安卓应用程序,其核心目的是在不需要过多人工干预的情况下,找到应用程序中的错误或崩溃现象,并通过测试报告展示测试结果。除了Android Monkey,还有类似的工具,比如Selendroid、Appium、Robotium和Calabash ,但是它们的测试重点或者测试方法和Monkey有所不同。

具体来说,Android Monkey的本质就是模拟一个快速且不可预知的用户交互行为序列,然后收集应用程序的崩溃信息、ANR信息(即应用程序未响应)和应用程序的其他稳定性问题。这种随机的、高并发的测试方式可以有效的检测出应用程序中的潜在缺陷。

$ adb shell monkey --pct-touch 50 --pct-motion 25 --pct-nav 13 --pct-majornav 7 --pct-syskeys 5 -v 1000

上述命令中的每一个参数都会影响Monkey的测试场景,比如此处的 指定了模拟触摸事件的比例, 指定了甩动事件或轨迹事件的比例,其他参数也有类似的作用,详见 官方文档

二、 Android Monkey测试优点

Android Monkey相较于其他测试方式有以下优点:

1. 可以随机进行测试

与人工测试的精确测试方式相比,Android Monkey模拟的测试行为是不可预知的,这意味着它可以在更大的状态空间内随机执行测试,从而提高测试效率。

2. 能够重现测试结果

由于是随机测试,每次测试结果会不一样,但是命令行下的Monkey工具可以使用一个“seed”参数来重现相同的测试。这个seed是在执行命令时自定义的一个值,用于初始化测试的随机数种子,从而保证需要重现某一个结果时,可以用相同的随机数种子执行Monkey。另外,在Android日志系统 (logcat) 中,测试操作会被标记为Monkey操作,从而帮助开发人员轻松识别测试期间发生的任何问题。

3. 能够自动测试代码分支

Android Monkey的随机性能够保证尽可能多的测试应用程序中各分支的代码,这对于代码覆盖率的计算非常有用,同时也使得开发人员更加信任测试报告。

总体来说,使用Android Monkey进行自动化测试可以高效地发现应用程序中潜在的缺陷,同时通过稳定性测试报告展示测试结果,方便开发人员进行问题追踪和修复。

三、 Android Monkey的Test Suite

根据上述Monkey测试的优点,我们可以使用Monkey作为自动化测试套件来测试Android应用程序。自动化套件由以下几部分组成:

1.测试计划(Test Plan)

测试计划指定了测试目标、测试的范围和测试要求。在测试计划中,主要是描述软件测试的范围和测试的策略,同时指定测试目标在哪些环境中进行测试,什么时间段进行测试,选定哪些人员进行测试等。

2.测试用例(Test Cases)

测试用例是描述测试场景和执行过程的具体步骤,测试用例应该包含测试机器状态配置、Android Monkey参数设置、测试目标应用程序资料、自动化测试流程等相关信息。

$ adb shell monkey --pct-touch 50 --pct-motion 25 --pct-nav 13 --pct-majornav 7 --pct-syskeys 5 -v 1000

3.测试脚本(Test Script)

测试脚本是将测试用例转化为可以执行的测试脚本,不同的测试套件可以使用不同的测试脚本语言,比如Python、Ruby等,但是一般推荐使用Python。

import os
import time

package_name = "com.example.testapp"
monkey_command = "adb shell monkey -p " + package_name + " --pct-touch 50 --pct-motion 25 --pct-nav 13 --pct-majornav 7 --pct-syskeys 5 -v 1000"

def run_test():
    os.system(monkey_command)

def main():
    while True:
        run_test()
        time.sleep(60)

if __name__ == "__main__":
    main()

在这个脚本中,我们定义了一个函数“run_test”,用于执行Android Monkey测试命令。然后在“main”函数中调用“run_test”函数,并且每执行一次Monkey测试就休眠60秒。这个脚本的作用是循环执行Monkey测试。

四、 Android Monkey使用注意事项

最后在使用Android Monkey时需要注意以下事项:

1.使用命令行工具时请谨慎操作

在使用Android Monkey进行测试时,因为测试行为是随机的,如果测试参数没有设置好或者没有过滤掉所有的应用程序,底层系统和其他应用程序将会间歇性地受到测试命令的干扰。从而导致意外效果,甚至是系统故障。因此,在使用Android Monkey进行测试时,请谨慎操作,并仔细检查测试命令。

2.使用Seed参数进行测试结果重现

在使用Android Monkey进行测试时,一旦发现稳定性问题,应该第一时间把电脑远程连接到目标安卓设备,使用Shell缓存机制,重现测试结果。另外,可以使用命令行下的“--ignore-crashes”和“--ignore-timeouts”参数跳过失效的测试,从而使Monkey脚本持续执行。

3.正确理解测试模式

Android Monkey支持模式测试和时间测试两种测试模式。模式测试是通过检测应用程序是否会触发monkey事件来判断测试是否完成。而时间测试是设置执行测试的时间长短,之后停止执行Monkey测试。因此,在使用Monkey时要特别注意测试模式设置,从而确保测试的完备性和准确性。

五、 总结

Android Monkey是一个轻量级、高效的自动化测试工具,能够有效的测试Android应用程序的稳定性和功能性。同时,在使用Monkey进行测试的过程中,要注意测试命令和测试模式的正确设置,从而得到正确的测试结果。综合来看,Android Monkey所提供的测试效率和测试能力,能够满足当今开发和质量管理的需求,是不可或缺的自动化测试神器之一。

自动化测试神器:Android Monkey

2023-05-14
深入Android Monkey测试

2023-05-22
Android Monkey测试详解

2023-05-22
Python编写的Android Monkey测试工具

2023-05-14
提高Android开发效率的神器:SDK Platform

Android开发需要使用很多工具,其中最重要的之一是Android SDK Platform Tool,通常简称为Platform Tools。这个工具集提供了一些命令行工具,对于Android开发

2023-12-08
Python脚本实现Android应用自动化测试

2023-05-14
Monkey测试教程

2023-05-19
使用Appium连接夜神模拟器实现自动化测试

2023-05-20
使用Python实现Android Studio的自动化测试

2023-05-14
使用Python为Android模拟器自动化测试提高效率

在测试基于Android操作系统的移动应用程序时,可使用模拟器来模拟手机环境。手动测试的时间成本高,而且容易出错,因此,使用Python编写自动化测试脚本是提高测试效率和测试质量的最佳方式之一。这篇文

2023-12-08
使用Python为Android ijkplayer提供自动

2023-05-14
Android系统调试技巧大全

2023-05-14
包含python移动端接口测试工具的词条

2022-11-22
使用Python实现Android应用的自动化测试

2023-05-14
用Python编写Android模拟器控制脚本实现自动化测试

2023-05-14
深入了解adb shell monkey命令

2023-05-16
深度解析adb命令,让你的Android开发更高效

2023-05-17
Python+Appium自动化测试详解

2023-05-22
ADT Bundle——Android开发的终极神器

2023-05-20
提高macOS和Android应用开发效率的神器

作为一个开发者,我们的工作就是尽可能地提高效率,同时保证代码质量。而选择正确的工具是提高效率的关键因素之一。本文将介绍两款优秀的工具:Alfred和Android Studio插件,它们能够提高mac

2023-12-08