AutoMonkey框架原理与应用(一)

当前移动互联网已经过了草创时期,各家公司都在抢占市场和用户;那么,就看哪一家做的更精致(交互做的更好,崩溃出现的更少)。

AutoMonkey框架原理与应用(一)

Android用户也许会经常碰到以下的问题:

1. 稳定性问题 —— ANR /Crash等问题;ANR是指当Android系统监测到应用程序在5秒内没有响应输入的事件或广播在10秒内没有执行完毕时抛出无响应提示。Crash是指当应用程序出现错误时导致程序异常停止或退出的情况。

2. 性能问题 —— 应用启动慢(首次/非首次启动应用,进入应用特别慢),CPU不足/内存泄露(应用使用过程中,越来越卡),应用耗电快(应用后台开着,手机很快没电)等问题。

注:卡顿与ARN的问题。卡顿简单的来说,就是手机没有及时响应、页面延迟,出现丢帧的现象,或者点击无响应。绝大多数的卡顿,稍等片刻系统就会恢复正常,但假如超过5S,就可能会引发手机ANR警告。

APP测试涉及各个方面,而稳定性和性能测试一般在功能测试完成后开展。如何应用自动化测试场景,如图1所示:

AutoMonkey框架原理与应用(一)

图1 自动化测试应用场景

自动化框架的选择

1. autoMonkey框架:Android平台一般都会考虑使用系统自带的Monkey工具进行测试,此工具既易上手也实用,但运用起来有非常多的讲究和技巧,简单的Monkey工具不一定能完成使命,在测试中也需要花费心思去对Monkey进行封装改造(还可以修改原生的Monkey),以满足测试需求。

2. MBT(Model based testing):基于模型的测试。建模过程,通常是指对被测系统的某些方面的描述,以及对被测系统预期行为的抽象描述。FSM(有限状态机)用途最广泛,一般用于黑盒测试的建模。MBT与Monkey测试理论的结合,即放一只“猴子”在FSM模型中随机漫游,开展充分的稳定性测试。

本文是针对APP完成首轮功能测试后,使用autoMonkey框架进行稳定性和性能测试,从而提高产品的稳定性和留存率。知识结构分为四个部分,如图2所示:

AutoMonkey框架原理与应用(一)

图2 autoMonkey框架原理与应用

一、Monkey基础知识与测试场景

在Android的官方自动化测试领域有一只非常著名的“猴子”叫Monkey,这只“猴子”一旦启动,就会让被测的Android应用程序像猴子一样到处乱跑。我们常用这只“猴子”对被测程序进行压力测试,检查和评估被测程序的稳定性。

Android官方对这只“猴子”的描述:Monkey是Google提供的一个命令行工具,可运行在模拟器或实际设备中。它可以在规定的次数范围内做任何随机的操作,随机操作包括点击、滑动、Application切换、横竖屏、应用关闭等等,用户能做的操作都可以模拟,从而对正在运行的应用程序进行压力测试,目的是看设备多长时间会出现异常,并观察系统的稳定性和容错性能。

Monkey测试出crash的bug等级永远为1,版本发布前,Monkey跑出的结果中crash要为0。

业内标准:最终发布版本前,Monkey跑完的总次数应为25W次,其结果里不允许有nullPointException出现。

Monkey程序是Android系统自带的,其启动脚本是位于Android系统的/system/bin目录的Monkey文件,其jar包是位于Android系统的/system/framework目录的Monkey. jar文件。用户主要是通过adb 命令来启动Monkey。Monkey在运行时,会根据命令行参数的配置,生成伪随机的事件流,并在Android设备上执行对应的测试事件。

按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。

Monkey的弊端

无法准确地得知bug的复现步骤

发送的用户事件流的有效性成问题,很多是无效操作(待续

Testin云测送大家一波超级福利!
①价值5000元的Testin专属测试大礼包(包含120分钟自动化测试、120分钟远程真机调试、每日免费使用1次标准兼容测试、每日免费使用1次安全测试);
②原51testing产品总监陈霁老师16年测试工作总结精华 -《软件测试入门必读》课程。
如何获取福利?
登陆或者注册您的Testin账号进行企业认证,完成认证自动获得福利大礼包,认证请戳——> http://www.testin.cn

更多精彩内容:

Python 初学者的经验总结

测试员的征途,像那条忍着不死的鱼一样

测试人员如何使用Git部署测试环境?

利用副项目找IT工作,需要满足这3个原则

性能测试必知的21件事:认清性能问题

 

X