一 背景
1. 为什么开展压力测试
目标1:提高产品稳定性(产品稳定性是一项重要指标,据统计百分之七十用户会遇到不稳定问题,这时有的会忍受继续使用(比如QQ、微信等成熟产品),有的直接放弃(使用一些新产品),百分之五用户在遇到页面缓慢等问题会直接卸载)
目标2:提高产品的留存率
2. 什么时候开展压力测试
首轮功能测试后(开发提测时会有一些bug,此时若开展压力测试会误报一些问题)
下班后夜间进行(只需对工具进行设置,晚上进行压力测试,提高效率)
二 理论部分
1.手工测试场景
找陌生人聊天:查找->添加->聊天
2.自动测试场景
模拟事件流
3.Monkey(可帮助我们完成一系列的随机事件)
a. Monkey 是发送伪随机用户事件的工具
b.Monkey 在手机系统里,为了实现与其通信,需要使用ADB。
4.ADB
使终端(CMD)与手机之间建立连接:硬链接(usb线),软连接(adb)
5.Monkey Script(可以完成重复固定的操作)
定义:MonkeyScript是一组可以被Monkey识别的命令集合
但不能实现截图操作,这时可借助MonkeyRunner
6.MonkeyRunner
Monke Runner提供了一系列的API,可以完成模拟事件及截图操作。
与Monkey区别:
a. Monkey:在adb shell中,生成用户或系统的伪随机事件;
b.MonkeyRunner:通过API定义特定命令和事件控制设备。
测试类型:
多设备控制,功能测试,回归测试
7.压力测试结果
(1)什么是Crash
定义:即崩溃,应用程序在使用过程中,非正常退出
(2)什么是ANR
全称:Application Not Responding
三 实践部分
1.一个人APP的压测实践
环境:Android SDK,Python
步骤:1.手机和终端建立连接,adb devices(手机的开发者选项打开),获取手机的唯一标识名
2.往手机上安装测试app,adb install package.apk
3.发送压力指令,adb shell monkey 1000 (工具名称:monkey,1000:让monkey执行1000个随机命令,包括音量键up、down,home键,截屏键,各种输入键等)
4.获取app包名:adb logcat | grep START(logcat是输出手机上所有app的log信息,|:管道,将前一个命令的输出作为下一个命令的输入,grep start,抓取log信息中含有start标签的log信息进行输出)