app专项测试
1、app测试需考虑
根据需求功能测试:等价,边界,场景等基本功能方法;
工具类测试:GT、appium、monkey、monkeyrunner、adb命令;
1)、monkey对app进行随机测试,即进行稳定测试,
常用的命令:adb shell monkey -p 包名 --throttle 100 -s 1005 -v 50000 >f:\xxx\test.txt
分析monkey测试后的日志分析:
1、 ANR问题:在日志中搜索“ANR”;
2、 崩溃问题:在日志中搜索“Exception”;
2)、appium模拟人为操作app进行测试验证,自动化过程
定位手机元素使用的工具:uiautomatorviewer.bat,自动化编写脚本进行元素定位
3)monkeyrunner模拟人为操作app进行测试验证,运行命令: monkeyrunner F:\test.py
MonkeyRunner有三个重要的类:
MonkeyRunner:工具类,用于连接MonkeyRunner到设备或模拟器,
创建MonkeyRunner的用户界面以及显示内置帮助的方法。
MonkeyDevice:设备或模拟器的类,提供安装和卸载程序包,
启动一个活动(Activity)以及发送按键或触摸事件到应用程序的方法。
MonkeyImage:截图对象的类。提供截图,将位图转换成各种格式,
比较两个MonkeyImage对象以及写图片到文件的方法。
4)adb命令在安卓配置好环境的情况下使用android sdk,java环境,
对于移动测试很重要,同时adb作为appium、monkey、monkeyrunner的桥梁,起到连接模拟 器,真机的作用。
adb命令:
查看内存:adb shell dumpsys meminfo > f:/meinfoALL.txt
内存耗用名词解析:
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
查看指定应用的cpu: adb shell top | findstr com.xxx > d:\cpu.txt
结束adb: adb kill-server
重启adb: adb start-server
查看wifi密码: adb shell cat data/misc/wifi/*.conf
手机截图: adb shell screencap -p /sdcard/screen.png
查看分辨率: adb shell wm size
安装应用: adb shell install f:/xxx.apk**
卸载应用: adb shell uninstall com.xx
- adb help, 列出所有的选项说明及子命令 adb devices , 获取设备列表及设备状态 adb get-state ,
- 获取设备的状态,设备的状态有 3 钟,device , offline , unknown,其中device:设备正常连接,offline:连接出现异常,设备无响应,unknown:没有连接设备
- adb kill-server , 结束 adb 服务,
- adb start-server , 启动 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 2000”意思是对com.htc.Weather 这个程序包单独进行一次2000次的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, 查看当前终端中的进程信息