APP测试整理
Android SDK
在sdk下面的platform-tools下执行cmd:
打开夜神模拟器:
adb的组成
adb(Android debug bridge)是用来连接安卓手机和PC端的桥梁,通过adb服务,在PC端命令行界面对手机或者模拟器进行全面的操作。包括三部分组成:
1.客户端client:运行在你的电脑上,你可以通过shell来调用起一个客户端。其他Androic工具,例如ADT插件、DDMS都可以创建出一个客户端
2.服务器server:运行在你电脑的后台,负责管理client和daemon进行通信。
3.守护进程daemon:运行在模拟器或者Android设备的后台。
adb在platform-tools里面,先去配置系统环境变量,path里面加入D:\develop\Android\android-sdk-windows\platform-tools,然后连接夜神:
adb的命令
手机本身没有root权限。
adb --help 查看帮助手册
adb devices 检测连接到电脑的安卓设备,这个是我们会经常用到的检测命令
adb pull <手机路径> <本机路径>从手机中拉取信息放到本地电脑上
adb push <本机路径> <手机路径>从本地推送信息到手机上
adb shell----登录设备shell (命令行的人机界面) ,进入到linux命令环境
adb logcat--打印日志
adb install xxx.apk--为了获取apk的安装包所在地址,可以直接把apk拖到 cmd的窗口获取,返回success就说明安装成功了!
adb install-r xxx.apk--保留数据和缓存文件,重新安装APK
adb uninstall com.tencent.mobileqy--卸载应用
adb uninstall-k com.tencent.mobileqq---卸载应用但保留数据和缓存文件
adb shell dumpsys activity | find "mFocusedActivity" ---查看前台应用activity名
adb connect/disconnect通过wifi进行远程连接手机进行调试
adb logcat -v time 加上时间戳打印日志
安装apk应用:
adb install C:\Users\wangyi\Downloads\xfplay.apk
卸载apk应用要靠包名来卸载。
查看手机里所有包名:adb shell pm list packages
查看正在运行的应用的包名:adb shell dumpsys activity | find "mFocusedActivity",然后卸载:
真机调试:
真机远程调试步骤: (必须要保证手机和PC连接的通过一个路由器)
1、还是需要将手机连接到PC端
2, adb devices检测到设备
3, adb tcpip 5555确定手机端和PC端的通讯端口号
4、拔掉手机, adb connect手机IP地址
adb disconnect取消远程调试
monkey
-v用于指定反馈信息级别(信息级别就是日志的详细程度) ,总共分3个级别。
-p后面接着的对应的包名,如果是整机测试,就不需要,用此参数指定一个或多个包(Package即App名字) 。
-s用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。用于问题重现。
--throttle <毫秒>用于指定用户操作(即事件)间的时延,单位是毫秒,adb shell monkey-p com.lemon.lemonban--throttle 3000--randomize-throttle -v 20。
--ignore-crashes--ignore-timeouts这里是在monkey测试的过程中遇到crash或者timeout的情况时忽略掉,一般不设置时,出现crash或者timeout时, Monkey测试会终止。这里是防止Monkey测试终止。
次数 100000 这里是指点击的次数,根据测试的经验,对于单个app这个次数设置在1000g0圣瓣理磐了,如果是整机,一般设置在500000次。
-v后面是事件的次数,一个操作可能由多个事件组成。
命令整合:
adb shell monkey -p com.xfplay.play --ignore-crashes --ignore-timeouts --throttle 200 --randomize-throttle -s 3500 -v -v -v 200 > D:\develop\Android\logs\monkey_log_01.txt
App性能测试
性能测试(performance)
通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能能否满足生成性能要求,即在特定的运行条件下验证系统的能力状况。
测试时间:与功能测试并行。
测试范围:产品的核心功能。用户使用最频繁,与用户交互最多。
按App构成特点,将性能测试分为客户端性能、服务器性能两大块,客户端性能这边也分为:整机性能(ROM)、硬件性能、App性能。我们关注点是客户端App性能测试。
客户端App性能测试-一般会给定指标的范围
性能指标:冷热启动时间、CPU、内存、流量、电量、帧率/流畅度、过度渲染。
冷热启动时间:
冷启动一程序完全关闭时的启动。
热启动一程序退到后台,并未完全杀死时的启动。
启动命令: adb shell am start-w-n com.xxzb.fenwoo/.activity.MainActivity。
过度渲染:描述屏幕上的某个像素在同帧的时间内被绘制了多次过度渲染/绘制查看方式:打开开发者选项→调试GPU过度绘制-->显示过度绘制 域大量红色过度绘制,蓝色绿色良好。
过度渲染会造成应用卡顿。
点击模拟器设置——关于平板电脑——版本号,多单机几次版本号打开开发者选项,
在开发者选项里可以开启调试GPU过度绘制:
弱网测试背景:
在移动互联网时代,用户会在各种网络状况下使用我们的APP,他们使用3G或4G网络,甚至还在用2G,现在的人们更习惯在上下班的路上去关注一些新闻,看看股市,小说,直播,玩游戏等等。那么就会面临一个问题,在地铁里,巴士上,甚至是电梯,车库等等的场景里。在这个时候,我们就需要针对这些场景,去关注一下软件的运行状态。以及弱网环境下,出现丢包、延时软件的处理机制。避免造成用户的流失。
延时(fiddler) +丢包(network )
弱网测试关注点
丢包
丢包应该是最常见的问题。在TCP协议中,需要不停的发送请求,来确认连接状态,一旦发生丢包,就需要重传。这个时候就需要去检查产品的处理机制,给予什么提示,如果未响应怎么处理这些。
延时
延时也是很常见的问题。由于网络太差,产生了网络波动,导致数据包在传输的时候出现抖动。可能导致请求出现超时的现象。这个时候就需要给予相应的提示,或者是其他的处理方式。
通过fiddler来实现延时。
先在模拟器上开启代理:
打开设置——WLAN——长按WiredSSID——修改网络——高级——代理——手动,输入电脑的ip+端口
打开fiddler,设置抓取端口8080,Ctrl+R进入脚本编辑器,更改响应延时时间:
保存重启,再去模拟器打开应用可以看见延时效果,刷新个页面都要等很久。
至于丢包:用这个工具Network Emulator Toolkit