【Monkey】Android APP 压力测试(理论篇):Monkey、MonkeyScript、MonkeyRunner 基础知识

it2022-05-10  76

目录

一、App 压力测试

二、Monkey 的介绍

三、ADB 的介绍

四、Monkey、MonkeyScript、MonkeyRunner 的区别

五、MonkeyRunner APIs 的主要接口作用

六、Monkey 压力测试结果分析



一、App 压力测试

(1)压力测试的价值

①提高软件产品的稳定性

        多用户使用产品,在数据比例下,会存在部分用户在使用产品的过程中,发现软件崩溃闪退、软件无响应、响应超时等不稳定的现象,因此需要进行压力测试,提高软件产品的稳定性。

②提高软件产品的留存率

        当用户使用产品过程中,发现产品响应时间过长、闪退、无响应等现象,如果该 App 是必用的,比如支付宝、微信、QQ,那影响不大,等待新版本更新即可;但是如果是一些新上线可替换的新产品,那么不稳定性将会是其致命伤,因为会导致用户直接卸载删除,永远拉入黑名单,不管后期优化如何都会因为固有的糟糕现象给与差评,流失用户。


(2)开展压力测试的时间

①首轮功能测试通过后

        首轮功能测试通过,基本上主要流程已跑通,一个流程业务线下来,不会出现太多致命的 bug,导致压力测试卡顿无法进行,此时进行压力测试比较顺畅,可以看看功能测试通过后系统的稳定性。

②下班后的夜间进行

        一般一个 Android App ,进行整个 App 或一个功能的业务主流程压力测试,其模拟的人工操作次数可能成千上万次,而这个过程由开机的电脑和测试机写好指令脚本,即可自动化进行测试。

        因此,一方面把压力测试放在下班后夜间时间,测试员可以直接下班,不会耽误正常工作,又可以节约公司“加班”成本,因为一般压力测试时间都会很长,而且电脑最好不进行其他操作,也就是压力测试时,测试员最好不要进行工作操作电脑。

       另一方面,这个压力过程除了模拟手机人工操作的 App 前端页面显示外,还有对后端接口的调用,如果在日间工作中进行压力测试,那么接口的请求调用,就不单单设置的压力测试产生的请求,还有研发测试操作的接口请求,并不精准,会大于压力测试设置的压力,所以放在夜间也可以无干扰地进行压力测试。



二、Monkey 的介绍

        Monkey 主要用于 Android 自动进行的压力测试,是发送伪随机用户事件的一个压力测试小工具, 主要目的就是为了测试 App 的稳定性。



三、ADB 的介绍

        ADB :Android Debug Bridge (Android 调试桥)。

        Monkey 本身存在于 Android 系统里,可用 USB 线硬连接电脑主机和手机真机,而电脑端安装的 ADB 即可和手机端的 Monkey 进行软连接,通过 ADB shell 命令进行 Android App 的 bug 调试。



四、Monkey、MonkeyScript、MonkeyRunner 的区别

Monkey:在 adb shell 中,生成用户或系统的伪随机事件。 MonkeyScript:是一组被 Monkey 识别的命令集合,可以完成重复固定的操作,但是不支持截屏操作。 MonkeyRunner:提供一系列的 API ,通过 API 定义特定命令和事件控制设备,可以完成模拟事件和截屏操作。              【MonkeyRunner 的测试类型:多设备控制、功能测试、回归测试】

五、MonkeyRunner APIs 的主要接口作用

MonkeyRunner:用来连接设备和模拟器。 MonkeyDevice:提供安装、卸载应用,发送模拟事件。 MonkeyImage:完成图像保存,以及对比的操作。

六、Monkey 压力测试结果分析

CRASH:即崩溃,应用程序在使用过程中,非正常退出,例如闪退等。 ANR:Application Not Responding(程序无响应:响应超时)

ANR:可能出现以下截图的提示弹框,其中有 2个 按钮【Force close:关闭(直接退出程序);Wait:等待(继续等待响应)】

  


最新回复(0)