小言_互联网的博客

APP的稳定性测试

368人阅读  评论(0)

adb 命令:
adb version
adb devices
netstat -ano | findstr "5037"

taskkill pid

adb kill-server
adb start-server

adb pull 手机路径 电脑路径
adb push 电脑路径 手机路径

adb shell
cd 目录

#:表示root
$:未root

adb shell pm list packages -s/3 查询包名

adb install
adb uninstall

从shell环境退出:
ctrl+c
exit

模拟器连接:
adb connect ip:port

ls:查看目录中的内容


Monkey:压力测试,稳定性
1.进行的是伪随机事件
2.模拟用户操作
3.得到两个日志
4.针对app整体

monkey使用:

开始—.>运行——>cmd

usb连接手机,输入adb shell  monkey 

activity:所有操作和页面

1.adb shell monkey 200  执行任意应用200次事件

2.adb shell monkey -p 包名 200  执行指定的应用200次事件

3.adb shell monkey -p 包名 --ignore-crashes --ignore-timeouts --ignore-security-exceptions 200  执行指定的应用200次随机事件,忽略奔溃(crash),anr((Application Not Responding应用程序无响应),’证书验证问题

--ignore-crashes --ignore-timeouts --ignore-security-exceptions
如果加上,则表示测试过程中如果发生上述问题,则停止应用,或者结束应用程序的进程,自动重新启动应用程序,继续执行直到指定次数完成,问题会记录在日志里面

不加上,则表示遇到上述问题,则执行停止,停留在发生问题的界面,monkey停止

4.adb shell monkey -p 包名 --ignore-crashes --ignore-timeouts --ignore-security-exceptions  --monitor-native-crashes --ignore-native-crashes 200 

--monitor-native-crashes:监控本地的奔溃 
 --ignore-native-crashes:忽略本地奔溃
上述两个不会同时使用

5.adb shell monkey -p 包名 --ignore-crashes --ignore-timeouts --ignore-security-exceptions  --monitor-native-crashes --ignore-native-crashes --kill-process-after-error 200 

--kill-process-after-error:结束Monkkey的进程,停留在现象的界面  一般不使用这个命令

6. [--pct-touch PERCENT] [--pct-motion PERCENT]
    [--pct-trackball PERCENT] [--pct-syskeys PERCENT]
    [--pct-nav PERCENT] [--pct-majornav PERCENT]
    [--pct-appswitch PERCENT] [--pct-flip PERCENT]
    [--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
    [--pct-permission PERCENT]
不同事件的占据百分比  基本不加该参数

7.  
[-s SEED] :序列号,种子值
南京-北京:
1.骑车:南京->宿迁->青岛->德州->大庆->北京
2.高铁:南京南->德州东->北京南
3.游轮:南京->上海->大连->汽车->北京

为什么要用seed:
①.测试用来复现,验证bug
②.开发用来复现bug--开几乎不做,日志

一般情况:
加入团队:跟着团队设定seed 团队命令
一个人的团队:seed随你写.

要求:
一个项目从头到尾,只用一个seed值
团队的话,整个团队用一个值

问题:执行过程中,在为例开时发现账号自动退出了--->更换seed值

[-v [-v] ...]:记录日志的详细程度 最对只认3个  -v -v -v 
一般情况下:-v -v

[--throttle MILLISEC]:最长等待时间
时间单位:毫秒 1000毫秒=1秒  
一般情况:最长不超过3000
参考:450 

测试monkey的注意事项
1.晚上下班的时候执行命令,第二天来看结果
2.设置手机的锁屏,设置为无锁屏,常亮
3.连接网络(4g,WIFI都要连上),,如果需要其他设置也一并开启
4.准备测试数据
5.执行的命令:保持一样,不变
6.带上耳机
7.如果app需要登录,请先登录,初识状态最好一致.步骤就会一样
8.电量最好在90%


monkey执行的时间和事件:
时间:8-10个小时
事件:35万-36万
形成的logcat日志:2G-5G

Monkey结果分析:
1.正常的结果:// Monkey finished.表示monkey测试成功
2.异常:不是// Monkey finished都表示有问题
①.crash:崩溃(闪退,应用程序发生崩溃)
// CRASH: edu.yjyx.student (pid 3375)
②.ANR :无响应,超时
// NOT RESPONDING: edu.yjyx.student (pid 20014)
ANR in edu.yjyx.student (edu.yjyx.student/.module.main.ui.MainActivity)
PID: 20014
③异常停止
1).Monkey aborted due to error.
2)没有任何标记的停止
Monkey执行后:第二天先看monkey日志,如果有问题,搜索关键字,确认后,
在logcat中根据关键字定位时间点


技巧:重定向
monkey重定向:
adb shell monkey -p com.songqin.sqoa -v -v -v 200 >D:\log\monkey.txt
注意:要指定到具体的文件格式

logcat重定向:
adb logcat -v time >D:\log\logcat.txt

logcat日志:
命令:adb logcat -v time 
1.logcat日志不会自己停止,需要手动,第二天来手动停止
2.如果第二天来了发现logcat日志停止了
①.手机要么关机,要么重启
    关机:电量过低/温度过高
    重启:原因太多
    --:logcat:
    搜索:shutdown/reboot-->bug/temperature(温度-->温度测试),batterylevel(好点比充电要快-->功耗测试)
②.数据线被碰掉---概率很小
检查手机:黑屏,亮屏

logcat命令在日常工作中的使用:
1.一般情况下是要保持连接抓取状态
过一段时间把日志删除在继续抓取
2.在低电测试的情况下,一旦发生bug,立即以最快的速度抓取日志,记录时间
技巧:.bat.批处理的命令执行
3.发生ANR问题后:(包括monkey):除了提交logcat日志还要提交/data/anr中的traces.txt  需要root权限.anr日志中详细的记录的导致ANR的原因,比logcat要好

发现bug:
第一件事:抓取日志,截图,记录发生问题时间
第二件事情:复现,进行偶现或者必现的确认
第三件事情:确认为偶现bug后,提交bug
偶现bug的步骤:
尽量去回忆你做过的事情,根据提交的日志分析

monkeybug的怎么写:
标题:[monkey][crash/anr/关机]什么app执行monkey的时候发生XXX现象
复现步骤:
1.monkey的准备工作
2.money的命令
3.如何查看monkey的结果
4.logcat中关键的那几行日志复制出来
附件:logcat日志压缩提交


命令执行技巧
批处理:
1.新建txt
2.输入一下命令,参考自行修改,注意D盘 要有先建立一个文件夹
adb shell monkey -p com.songqin.sqoa  200 >D:\log\0703.txt | adb logcat -v time >D:\log\0703log.txt
3.另存为:bat格式文件,编码不要动
4.使用的时候双击即可
 

停止monkey

退出应用和拔掉数据线,都无法停止monkey测试,如需停止monkey测试,输入如下命令:

adb shell 进入 控制平台

ps | grep monkey

返回来的数字,即是monkey的进程号

kill 命令结束进程继续输入


转载:https://blog.csdn.net/jingminminwangbobo/article/details/102585996
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场