ArtOfTesting

介绍

这是关于ArtOfTesting的一些思考与探索。

github地址

https://github.com/SuperLucas/ArtOfTesting.github.io.git

gitee地址

https://gitee.com/SuperLucas/ArtOfTesting.github.io.git


三、APP测试命令

1、adb命令

adb 使用的端口号,5037
adb devices:获取设备列表及设备状态
adb get-state:获取设备的状态
adb install:用于安装
adb uninstall:用于卸载
adb push:命令将PC机上的文件推到 DLT-RK3288 机器上
adb pull:命令将DLT-RK3288机器上的文件拉到PC机上
ls, cd, rm, mkdir, touch, pwd, cp, mv, ifconfig, netstat, ping, ps, top等,进入adb shell即可执行,与linux相似

打印默认日志数据

adb logcat

需要打印日志详细时间的简单数据

adb logcat -v time

需要打印级别为Error的信息

adb logcat *:E

adb help:列出所有的选项说明及子命令
adb devices:获取设备列表及设备状态
adb get-state:获取设备的状态,设备的状态有 3 钟,device , offline , unknown,其中device:设备正常连接,offline:连接出现异常,设备无响应,unknown:没有连接设备

adb kill-server , adb start-server:结束 adb 服务, 启动 adb 服务,通常两个命令一起用,设备状态异常时使用 kill-server,然后运行 start-server 进行重启服务

adb logcat , 打印 Android 的系统日志   
adb logcat -c,清除日志
adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误,输出比较多,建议重定向到一个文件中,如adb bugreport > d:\bugreport.log

adb install :安装应用,adb install -r 重新安装
adb uninstall :卸载应用,后面跟的参数是应用的包名,请区别于 apk 文件名
adb pull :将 Android 设备上的文件或者文件夹复制到本地,
例如复制 Sdcard 下的 pull.txt 文件到 D 盘:adb pull sdcard/pull.txt d:\,
重命名:adb pull sdcard/pull.txt d:\rename.txt

adb push: 推送本地文件至 Android 设备,
如推送 D 盘下的 push.txt 至 Sdcard:adb push d:\push.txt sdcard/   
sdcard 后面的斜杠不能少

adb reboot: 重启 Android 设备,    
adb reboot recovery:重启到Recovery界面    
adb reboot bootloader:重启到bootloader界面
adb root , adb remount:可以直接已这两个命令获取 root 权限,并挂载系统文件系统为可读写状态
adb get-serialno:返回设备序列号SN值    
adb get-product:获取设备的ID
adb forward tcp:5555 tcp:8000:做为主机向模拟器或设备的请求端口
adb shell:进入设备shell
adb shell pm list package:列出所有的应用的包名
adb shell screencap -p /sdcard/screen.png:截屏,保存至 sdcard 目录
adb shell screenrecord sdcard/record.mp4:执行命令后操作手机,ctrl + c 结束录制,录制结果保存至 sdcard

adb shell wm size:获取设备分辨率
adb shell pm dump 包名:列出指定应用的 dump 信息
adb shell pm path 包名:列出对应包名的 .apk 位置

adb shell monkey –p 程序包 –v 测试次数
比如“adb shell monkey –p com.htc.Weather –v 20000”意思是对com.htc.Weather 这个程序包单独进行一次20000次的monkey测试,其中程序包名称可以在串口终端这句命令获得:ls data/data 显示所有程序包

adb shell ps | grep [process]:找出对应的进程pid  
adb shell dumpsys meminfo [pid],根据进程pid查看进程占用的内存    
或者adb shell dumpsys meminfo<package_name>:package_name 也可以换成程序的pid,pid可以通过 
adb shell top | grep app_name 来查找

adb shell ps:查看当前终端中的进程信息
ls:查看目录   
date:打印或设置当前系统时间   
cat /proc/meminfo:查看内存信息   
cat /proc/cpuinfo:查看CPU信息

抓取App报错的log日志:
按住win+r打开cmd,cd到安装adb的目录下,然后输入指令:

adb logcat -v time > D:\logcat.log(可以换成其他磁盘)

输入完成之后敲击回车,这个时候在D盘下会生成一个logcat日志并且将近期的崩溃记录到这个日志当中。Ctrl+C以结束截取操作。

1.adb logcat *:V           不过滤地输出所有调试信息,显示所有日志信息
1.adb logcat *:D            Debug来表达调试信息,能输出Debug、Info、Warning、Error级别的Log信息。
1.adb logcat *:I              Info来表达一些信息,能输出Info、Warning、Error级别的Log信息。
1.adb logcat *:W            Warning表示警告,查找崩溃问题一般用:能输出Warning、Error级别的Log信息
2.adb logcat *:E             Error表示出现错误,能输出Error级别的Log信息。

2、Monkey命令

查看设备的链接情况:

adb devices

手机里面的软件随机点击:

adb shell monkey 1000

查看包名(-s只查找系统包名,-3只查看第三方包,-f输出包和包相关联的文件,-e只输出启用的包,-i只输出包和安装信息,-u只输出包和未安装包信息,都不加显示所有,):

adb shell pm list packages -s

启动一个指定包名

adb shell monkey -p com.dyhoa.school 1000

操作日志

adb shell monkey -p com.tencent.mobileqq -v -v 100

1 参数: -p 用于约束限制,用此参数指定一个或多个包(Package,即App)。指定包之后,monkey将只允许系统启动指定的APP,如果不指定包,将允许系统启动设备中的所有APP.

  • 指定一个包: adb shell monkey -p cn.emoney.acg 10
  • 指定多个包:adb shell monkey -p cn.emoney.acg –p cn.emoney.wea -p cn.emoney.acg 100
  • 不指定包:adb shell monkey 100

2 参数: -v用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:
日志级别 0
示例 adb shell monkey -p cn.emoney.acg –v 100
说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息
日志级别1
示例 adb shell monkey -p cn.emoney.acg –v -v 100
说明提供较为详细的日志,包括每个发送到Activity的事件信息
日志级别 2
示例 adb shell monkey -p cn.emoney.acg –v -v –v 100
说明最详细的日志,包括了测试中选中/未选中的Activity信息\

3 参数: -s
用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

Monkey 测试1:adb shell monkey -p cn.emoney.acg -s 10 100
Monkey 测试2:adb shell monkey -p cn.emoney.acg –s 10 100

两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。\

4 参数: --throttle<毫秒>用于指定用户操作(即事件)间的时延,单位是毫秒;
adb shell monkey -p cn.emoney.acg --throttle 5000 100\

5 参数
用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

--ignore-crashes

测试过程中即使程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止

adb shell monkey -p cn.emoney.acg --ignore-crashes 1000

测试过程中,如果acg程序崩溃,Monkey将会停止运行

adb shell monkey -p cn.emoney.acg 1000

6 参数
用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

--ignore-timeouts,示例:
adb shellmonkey -p cn.emoney.acg --ignore-timeouts 1000

7 参数:用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

--ignore-security-exceptions
adb shellmonkey -p cn.emoney.acg --ignore-security-exception 1000

8 参数:用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态。应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程

--kill-process-after-error
adb shellmonkey -p cn.emoney.acg --kill-process-after-error 1000

9 参数:用于指定是否监视并报告应用程序发生崩溃的本地代码。

--monitor-native-crashes
adb shellmonkey -p cn.emoney.acg --monitor-native-crashes 1000

10 参数:用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)

--pct-{+事件类别}{+事件类别百分比}

示例:

--pct-touch{+百分比}
调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)
adb shell monkey -p cn.emoney.acg --pct-touch 10 1000

--pct-motion {+百分比}
调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随件机事和一个up事件组成)
adb shell monkey -p cn.emoney.acg --pct-motion 20 1000

--pct-trackball {+百分比}
调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)
adb shell monkey -p cn.emoney.acg --pct-trackball 30 1000

--pct-nav {+百分比}
调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)
adb shell monkey -p cn.emoney.acg --pct-nav 40 1000

--pct-majornav {+百分比}
调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
adb shell monkey -p cn.emoney.acg --pct-majornav 50 1000

注:输出monkeylog
跑monkey的时候或者想抓程序log导出时,有时会提示:
cannot create D:monkeytest.txt: read-only file system
为什么有时候可以有时候不可以?
后来发现跟使用使用习惯不一样,一会是先进入adb shell 再用命令,一会是直接命令进入。
进入adb shell后再用命令就会失败~
正确方法:退出shell或者执行命令时先不要进shell

C:\Documents and Settings\Administrator>adb shell monkey -p 包名 -v 300 >e:\text.txt

进入adb shell后就相当于进入linux的root下面,没有权限在里面创建文件~


posted on 2022-07-08 14:45  秉烛爱好者  阅读(159)  评论(0)    收藏  举报