Android App 压力测试方法(Monkey)

一.为什么要开展压力测试

a.提高产品的稳定性;b.提高产品的留存率

二.什么时候开展压力测试

a.首轮功能测试通过后;b.下班后的夜间进行

三.7个基础知识(理论部分)

3.1 手动测试场景与自动测试场景

Android App 压力测试方法(Monkey)   Android App 压力测试方法(Monkey)

3.2 Monkey测试工具介绍

Monkey是发送伪随机用户事件的工具;Monkey在手机系统里;Monkey需要借助ADB使用;

Android App 压力测试方法(Monkey)

3.3 MonkeyScript测试命令集合介绍

Android App 压力测试方法(Monkey)Android App 压力测试方法(Monkey)Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)  Android App 压力测试方法(Monkey)

3.4 异常测试结果分析

Android App 压力测试方法(Monkey)  Android App 压力测试方法(Monkey)

四.6个实践小案例

4.1 一次Android App的压测实践

需要准备的环境:1.Android SDK环境;2.python环境

压测过程:Step1.Android App 压力测试方法(Monkey) Step2.Android App 压力测试方法(Monkey)  Step3.Android App 压力测试方法(Monkey)  Step4.Android App 压力测试方法(Monkey)   Step5.Android App 压力测试方法(Monkey)  Step6.Android App 压力测试方法(Monkey)

4.2 Monkey高级参数——throttle实践

Android App 压力测试方法(Monkey)  Android App 压力测试方法(Monkey)

4.3 Monkey高级参数——seed实践

每一个seed值对应一个操作序列,seed值相同,操作序列就相同,最终的结果也是相同的,设定seed值可以用来复现bug

Android App 压力测试方法(Monkey)  Android App 压力测试方法(Monkey)

4.4 Monkey高级参数——触摸事件实践

Android App 压力测试方法(Monkey)  Android App 压力测试方法(Monkey)

加 -v 可以看到每次事件的详情

4.5 Monkey高级参数——其他事件实践

Android App 压力测试方法(Monkey)Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)  Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)  Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)  Android App 压力测试方法(Monkey)

4.6 crash异常测试结果析取

Android App 压力测试方法(Monkey)    Android App 压力测试方法(Monkey)

4.7 anr异常测试结果析取

Android App 压力测试方法(Monkey)  Android App 压力测试方法(Monkey)Android App 压力测试方法(Monkey)

4.9 MonkeyScript常用命令介绍

Android App 压力测试方法(Monkey) 其中,<scriptfile>是脚本文件;

Android App 压力测试方法(Monkey)  一般只需要关注标红的3个参数就可以了;x,y坐标点可以通过uiautomatorviewer获取;

Android App 压力测试方法(Monkey)  Android App 压力测试方法(Monkey)Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey) Android App 压力测试方法(Monkey)

4.10 MonkeyScript实践

Android App 压力测试方法(Monkey) 实现上述流程的MonkeyScript脚本如下:

Android App 压力测试方法(Monkey)

前4行的数据原文照抄就可以了Android App 压力测试方法(Monkey),由于目前相关的资料很少,具体的含义不必深究

Android App 压力测试方法(Monkey)这两条命令完成“点击”的操作;

Android App 压力测试方法(Monkey)如图,坐标(100,100)通过uiautomatorviewer获取;

4.11 MonkeyScript实践问题解决

遇到的问题:脚本执行后,调用的不是被测试app

Android App 压力测试方法(Monkey)  问题出在第一行LaunchActivity这一行语句上,这一行语句没有生效!

Android App 压力测试方法(Monkey)

具体原因是,测试app的工程文件内缺少一个属性值!如果缺少这一个属性值的话,app是不允许被外部调用的,也就是说通过命令行的方式是无法调用app的!

Android App 压力测试方法(Monkey)

所以,在执行monkeyscript脚本时,要确认的几个点:

A.被测app试被允许外部调用的!

B.Android App 压力测试方法(Monkey) 通过adb logcat获得的activity名需要和package名合在一起作为第二个参数!

C.因为执行monkeyscript脚本没有调试功能,出现问题需要自己查找,所以在写monkeyscript脚本时一定要更加注意,特别是标点符号(一定是英文下的半角符号)!

4.12 MonkeyRunner常用API介绍

monkeyscript最大的弊端是在跑自动化脚本的时候不能截屏,而MonkeyRunner能做到这一点

Android App 压力测试方法(Monkey)Android App 压力测试方法(Monkey)

MonkeyRunner的脚本用Python实现,如下图:

Android App 压力测试方法(Monkey)

执行.py文件的方式如下图:用 monkeyRunner .py 文件的形式

Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)

4.13 MonkeyRunner实践

 目标:实现在搜索框中输入查询词,并截图

MonkeyRunner的实现脚本如下图:

Android App 压力测试方法(Monkey)

Android App 压力测试方法(Monkey)

4.12 MonkeyRunner补充说明

MonkeyRunner只能实现功能性的自动化过程,如果想让MonkeyRunner执行多次的话,可以通过python脚本来实现,也就是说用python来实现多线程、

循环操作等来执行脚本,可以帮助我们完成重复的操作过程!

以上简单介绍了用Monkey做Android App的压力测试,希望对初学者有所帮助。

上一篇:The Automated Testing Handbook 自动化测试手册简介


下一篇:pytest 自动化测试框架(二)