Monkey测试

Monkey测试是一种自动化测试技术,它通过模拟用户在设备上的随机操作,来对应用程序进行压力测试。它的目的是测试软件的稳定性和健壮性。

Monkey测试有以下几个特点:

  • 随机输入:

    Monkey测试不需要编写详细的测试用例,只需要生成随机的输入事件,如按键、触摸、手势等。

  • 自动遍历:

    Monkey测试不需要人工逐一操作应用程序的不同界面和功能,而是能够自动遍历并测试应用程序的所有相关方面。

  • 高覆盖率:

    Monkey测试可以覆盖到大量的程序路径,甚至是那些在传统测试中难以触及的边缘情况。因此,它能够发现更多的潜在问题,提高测试的覆盖率和有效性。

  • 简单方便:

    使用Monkey测试只需要编写简单的测试脚本就可以开始测试。这使得测试的快速迭代和部署成为可能,从而提高了测试的效率。

  • 可自定义:

    Monkey测试具有高度的灵活性,可以自定义各种参数,如事件比例、运行时长、过滤条件等,以调整测试的范围和深度,满足不同的测试需求。

  • 可重复性:通过设定相同的种子(seed),Monkey测试可以重现测试过程,帮助开发人员准确地定位和修复问题,从而提高产品质量。

Monkey测试一些局限性和缺点:

  • 测试对象仅为应用程序包,无法对系统或硬件进行测试。

  • 测试数据流是随机的,不能进行针对性的精细测试。

  • 测试过程中可能会操作到一些非预期的状态或边缘情况,甚至可能导致应用程序崩溃。

  • 测试效率可能低下,可能会生成大量无意义的事件,这些事件并不一定能够有效地发现程序中的缺陷。

Monkey测试的基本步骤如下:

  • 准备环境:

    确保手机或模拟器与电脑连接正常,安装好手机驱动,设置好屏幕超时时间,打开开发者选项和USB调试模式。

  • 查找包名:

    通过adb命令或其他方式查找要测试的应用程序的包名,如com.tencent.news。

  • 清空日志:

    通过adb logcat -c命令清空之前的日志信息,为测试做准备。

  • 执行测试:

    通过adb shell monkey -p 包名 -v 次数命令执行monkey测试,其中-p参数指定要测试的包名,-v参数指定要打印的日志级别(越多越详细),次数参数指定要发送的事件数量。也可以添加其他参数来自定义测试的范围和深度,如事件类型、事件频率、过滤条件、运行时长、种子值等。

  • 下载日志:

    通过adb pull /sdcard/monkey_test.txt 命令将手机上生成的monkey日志文件下载到电脑上,或者直接在命令行中查看日志输出。

  • 分析日志:

    在日志文件中搜索关键词ANR、Exception、Crash等,找出测试中出现的问题和异常,并记录下相关的事件信息和上下文。

  • 回归问题:

    根据日志中的事件信息和种子值,重现问题的发生过程,并尝试手动复现问题,找出具体的重现步骤,并反馈给开发人员。

总体来说,Monkey测试是一种高效、全面的自动化测试技术,适用于对应用程序进行快速、广泛的粗放式测试。然而,它并不能作为唯一的测试手段,需要结合其他测试方法来提高测试效率和质量。在实际的软件开发生命周期中,建议将Monkey测试和其他测试手段结合起来使用,以实现最佳的测试效果。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 786229024,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

测试准备: Monkey压力测试时除了添加测试APP,还可另外添加2-3个第三方app进行对比测试。 1.在D盘新建一个txt文件,添加APP包名,命名为whitelist.txt 2.用cmd命令把whitelist.txt文件push到手机 adb push d:\whitelist.txt /data/local/tmp/ 3.压力测试指令monkey -p 包名 [参数] -v (-v -v) 执行次数 >导出log文件 l 对白名单包进行测试 l monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt --throttle 500 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000 1> /mnt/sdcard/monkey_test.txt 2>&1 & 黑名单:不测试的应用 白名单:只测试这部分应用 注意:不能同时设置黑名单和白名单 设置黑名单: --pkg-blacklist-file PACKAGE_BLACKLIST_FILE 设置白名单: --pkg-whitelist-file PACKAGE_WHITELIST_FILE l 对单独的APP进行测试 l monkey-p com.hst.che --throttle 500 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000 >/mnt/sdcard/monkey1.txt 说明: --throttle(毫秒)事件之间插入的固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定,Monkey将尽可能快的产生并执行事件。 -s 用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。 --ignore-crashes 忽略程序崩溃。设置此选项后,Monkey会执行完所有的事件,不会因crash而停止。 --ignore-timeouts 忽略程序无响应。设置此选项后,Monkey会执行完所有的事件,不会因ANR而停止。 --ignore-security-exceptions 忽略证书或认证异常。设置此选项后,Monkey会执行完所有的事件,不会因认证或证书异常而停止。 --ignore-native-crashes 监视系统中本地代码发生的崩溃 --monitor-native-crashes 忽略本地代码导致的崩溃。设置忽略后,Monkey将执行完所有的事件,不会因此停止。 -v -v –v 提供最详细的设置信息 4.导出log到电脑:pull /mnt/sdcard/monkey.txt d:monkey.txt 分析log l 日志开头:显示本次测试seed值,执行次数,测试包, l 日志结尾: 如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;Monkey finished代表执行完成。 (如果Monkey执行中断,在log的最后也能查看到当前已执行的次数。) l 日志内容分析 一般测试结果分析-搜索关键字: 1.程序无响应,ANR问题:在日志中搜索“ANR” 2.崩溃问题:在日志中搜索“CRASH” 3.其他问题:在日志中搜索”Exception” 详细分析monkey日志 Switch--查看log中的Switch,主要是查看Monkey执行的是那一个Activity,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。 Sleeping--Sleeping for 500 milliseconds这是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。 重现问题 Monkey测试出现错误后,一般的查错步骤为以下几步: 1.找到是monkey里面的哪个地方出错 2.查看Monkey里面出错前的一些事件动作,并手动执行该动作 3.若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一致
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值