使用Monkey完成自动化压力测试
使用MonkeyRunner完成功能测试
tools — MonkeyRunner.bat文件
常见错误:
Carsh 闪退,崩溃,程序在使用过程中,不正常退出
ANR(Application Not Response) 应用无响应,继续等待程序或者退出
下意识的想法:
Monkey是谷歌自带的软件,它要下载下来的话,它在谷歌的sdk里面,所以需要下载谷歌的安卓开发工具包sdk
adb作用:
安卓系统的adb的全称为Android Debug Bridge,就是起到调试桥的作用,利用adb工具的前提是在手机上打开usb调试,然后通过数据线连接电脑。在电脑上使用命令模式来操作手机
环境搭建的两种方式,两个不同的网址:
环境搭建(Android开发工具,下载sdk)
http://www.androiddevtools.cn/
chrome虽然被屏蔽了,但是它在中国有代理服务器,chrome的sdk下载网址:
https://developer.android.google.cn/develop/index.html
方法1:可以先下载AndroidStudio,然后在AndroidStudio里面下载相应版本 的sdk
点击Tools—Android—Sdk Manager
方法2:直接输入AndroidSdk下载,解压之后是一个压缩工具包
虚拟机软件:
Genymotion
常用命令
adb devices 查看设备
adb shell 进入手机底层
adb shell monkey 查看monkey命令参数
adb shell pm list packages 列举手机所有软件包名
adb shell pm list packages -3 列出第三方软件包名
adb shell dumpsys window w| findstr \/ |findstr name 可以获取到当前打开软件的包名
adb shell monkey 1000 随机点击整个手机的应用1000次,包括上下键和home键
adb shell -p com.kugou.android 1000 随机点击‘酷狗音乐’1000次
adb shell monkey -p com.kugou.android -v 500 -v指的是日志详细程度
adb shell monkey -p com.kugou.android -v -s 768 500 -s后参数代表发送指定命令
adb logcat 查看日志
adb shell monkey -p com.kugou.android 500 > d:/0818/monkey.txt 输出日志到指定文件
adb shell monkey -p com.kugou.android -v -v -s 10000 10000 --throttle 200>D:\android_m_test.txt 运行‘酷狗音乐’10000次,每次点击间隔2秒,输出日志到D:\anroid_m_test.txt下面
怎么验证日志跑完了?看光标一直在闪烁
如果出现错误,日志会中断
只用手会漏很多隐藏的错误,所以需要使用monkey
做功能测试之前,先用monkey跑一遍
adb shell
cd /system/bin
ls
cat monkey
adb shell
cd /system/framework
ls 查看monkey.jar包
需要提交给开发的东西
1.被测手机详细信息
2.monkey测试日志
3.手机运行截图
4.monkey运行时手机日志
5./data/anr/traces.txt 如果出现了anr
如果出现端口抢占问题,需要考虑
使用5037端口的应用
netstat -ano | findstr 5037
Monkey命令行参数 -V
参数:-V
用于指定反馈信息级别(信息级别就是日志的详细程度),总共分为3个级别,默认为0,对应如下
日志级别Level 0
示例:monkey -p com.kugou.android -v 10
说明:缺省值,仅提供启动提示,测试完成和最终结果等少量信息
日志级别Level 1
示例:monkey -p com.kugou.android -v -v 10
说明:提供较为详细的日志,包括每个发送到Activity的事件信息
日志级别Level 2
示例:monkey -p com.kugou.android -v -v -v 10
说明:最详细的日志,包括了测试中选中/未选中的Activity信息
Monkey命令示例(-s 参数值)
monkey -p com.kugou.android -s 126 1000
monkey -p com.kugou.android -s 126 1000
两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。
操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列是伪随机的