Android系统自带monkey程序,模拟用户触摸屏幕,滑动trackball(轨迹球),按键等操作来对设备上才程序进行压力测试,检测程序多久的时间会发现异常-------崩溃,闪退,无响应
部署ADB环境
ADB(Android debug brige )是用来连接安卓手机和PC端的桥梁,通过ADB服务,在PC端命令行界面(cmd)对手机或者模拟器进行全面操作
ADB.exe 配置环境
ADB文件包内的eclipse文件 是用来开发JAVA程序 又称 IDE
ADT 开发Android应用程序 Android使用JAVA语言开发的
SDK manager.exe 管理软件包
Monkey什么时候用?等产品稳定了,没有特别多的BUG时候,一般会用monkey去测试待测应用的稳定性,健壮性(是否发生崩溃,闪退),手机出厂前的整机测试(对手机整个系统进行的测试)
ADB常见命令 夜神端口号 62001
Adb logcat 打印日志信息
Adb--help 查看帮助手册
Adb devices 检测连接到电脑的安卓设备这个是我们会经常用到的检测命令。
Adb pull<手机路径><本机路径>从手机中拉去信息放到本地电脑上
Adb push <本地路径><手机路径>从本地推送信息到手机上去
Adb shell ----登录设备shell(命令行的人机界面),ls命令都可以用,进入到linux命令环境了,相当于执行远程命令
Adb connect 127.0.0.1:62001 连接夜神模拟器 IP地址不变 26944是海马模拟器
Sdcard ----是手机内部存储目录
cd cdcard------进入内部存储目录
Ls------获取该目录内的文件及文件夹
获取到手机路径为 /cdcard/server.log.9 Exit--------退出linux命令环境
Adb install+xxxx.apk路径 为了获取apk安装包所在地址,可以直接把APP拖到cmd窗口获取 返回success-----安装成功
Adb uninstall com.Tencent.mobileqq (应用包名)------卸载APP
Adb shell dumpsys activity | find “mFocusedActivity”-----查看前台应用包名(Android系统根据包名识别APK)
PS:被卸载的APP必须在前台运行时才可卸载
Adb connect+手机IP地址 /disconnect(取消远程调试) 通过wifi进行远程连接手机进行调试 -----手机IP地址 --设置--关于手机选项------状态信息---IP地址
手机电脑都必须连接同一个路由器
Error device not found
USB 连接 手机打开允许调试 1. 在手机上启用USB调试
2. CMD窗口输入adb devices,此时可以看到自己的设备。
PS:无法看到自己设备时,查看手机USB调试是否打开;PC端是否安装手机驱动。
Monkey命令格式
不需要配置环境,android系统自带有monkey
Adb shell monkey {+命令参数}次数
Adb shell monkey -help/-h 帮助手册
-v用于指定反馈信息界别(信息界别就是日志的详细程度),总共3个级别(-v-v-v) -V次数越多,级别越高
-P 后面接着的对应的包名,如果是整机测试,就不需要,用此参数指定一个或多个包(package,即APP名字)。
-s 用于指定伪随机数生成器seed值,如果seed相同,则两次monkey测试所产生的时间序列也相同的,用于问题重现
A进行随机测试时中的seed值为100 测试为无规律的随机测试 发现BUG时,为了完全复现BUG产生的步骤,在进行B此测试时 取seed值同样为100,则完全按A测试的步骤进行测试,有利于BUG的复现操作
--throttle<毫秒> 用于指定用户操作(即时间)间的时延,单位是毫秒
--igonre-crashes(忽略崩溃) --ignore-timeouts(忽略超时) 这里是在monkey测试的过程中遇到crash或者timeout的情况时忽略掉,一般不设置时,出现crashe或者timeout时,monkey测试会终止。这里是防止monkey测试终止
次数 100000 这里是指点击的次数,根据测试的经验,对于单个应用程序这个次数设置在100000次就可以了,如果是整机,一般设置在500000次
补充monkey小知识
1.查找包名 adb shell进入shell命令
#cd data/data
#ls
把所有的包名都罗列出来,根据关键词去查包名
2.如何查看前台运行的包名及应用名
Adb shell dumpsys activity | find”mFocusedActivity”
3.导出日志到本地
Adb shell monkey {+命令参数} 次数 > PC 本地路径
Adb shell monkey -v-v-v 1000 > d:\monkey.txt
APP性能测试
性能测试与自动化测试的区别?----自行百度
通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能能否满足生成性能要求在特定的运行条件下验证系统的能力状况
测试时间:与功能测试并行
测试范围:产品的核心功能,用户使用最频繁,与用户交互最多。
按APP构成特点,将性能测试分为客户端性能,服务器性能两大块
客户端性能这边也分为:整机性能(rom),硬件性能,app性能
我们关注点是客户端APP性能测试
流畅度:
FPS 获取动态画面/SM 获取静态画面 Emmagee 腾讯GT
界面过渡绘制
布局层级合理性
渲染性能 受GPU、CUP影响
Hierarchy Viewer/GPU Rendering/systrace 工具
启动时间
热启动
冷启动 根据软件是否在后台运行
首次安装启动 此次启动时间最慢
Adb/traceview 工具
CPU
Cpu使用率 新旧版本的对比,竞品的对比
Cpu jifiies 时间片
Adb dumpsys cpuinfo 工具
耗电量
检测唤醒锁(wake_) 安卓耗电大户 屏幕 GPS
Gps
优化电量消耗
Battery historian 工具
内存
内存泄露/溢出/抖动
Monitor/mat/leakcanary
网络
流量测试
弱网测试
Tcpdump/wireshark/fiddler
Connetify / USB共享网络 使手机共享电脑的网络 需要电脑有无线网卡
弱网测试实战项目
在移动互联网时代,用户会在各站网络状况下使用我们的APP,他们使用3G或4G网络,甚至还在使用2G,现在的人们更习惯在上下班的路上去关注一些新闻,看看股市,小说,直播,玩游戏等等
那么就会面临一个问题,在地铁,巴士上,甚至是电梯,车库等等的场景里,在这个时候我们就需要针对这些场景,去关注一下软件的运行状态,已经弱网环境下,出现丢包,延时软件的处理机制,避免造成用户的流失。
弱网测试的光住点:
丢包
丢包应该是最常见的问题。在tcp协议中,需要不停的发送请求,来确认连接状态,一旦发生丢包,就需要重传,这个时候就需要去检查产品的处理机制,给予什么提示,如果未响应怎么处理这些-------Network Emulator Toolkit 模拟网络丢包场景
安装完成后 在开始菜单搜索 emulator 关键字 找到Network
如果是真实的手机 需要手机共享上电脑的网络并且需要无线网卡才可以
使用软件 connectify软件或者 设置----USB共享网络(百度了解)
延时
延时也是很常见的问题,由于网络太差,产生了网络波动,导致数据包在传输的时候出现抖动,可能导致请求出现超时的现象。这个时候就需要给予相应的提示,或者是其他的处理方式---------fiddler 模拟网络延时场景
设置完成后需要重启fiddler 生效。
运行apk 查看是否有响应 判断是否fiddler代理成功
设置延时时间----rules--customize(ctrl+r)---设置时间---ctrl+s保存
启用该设置----Rules--performance--simulate modem speeds 使设置生效
即可进行模拟延时场景测试