移动APP 笔记Genymotion: 安卓的虚拟环境1、adb 命令1、安卓调试桥( android debug bridge )adb 命令设置一下环境变量C:\Program Files\Genymobile\Genymotion\tools1、查看链接设备adb devices 查看链接设备:会显示IP 地址和端口号2、安装:adb install 安装apk 文件adb install + 包所在的路径多台设备:adb -s IP 地址:端口号install 所在路径adb -s 172.31.129.22 :5555 install D:\ecmobile3.2.apk3、卸载adb unin stall +包名卸载如果有多个设备用-s IP地址:端口号adb -s IP 地址:端口号uninstall 包名4、查看包名aapt d badging apk 所在路径| find “package”用find 过滤一下在windows 中过滤使用find 并且后面名字加双引号5、进入安卓系统adb shell 进入之后类似于linux 系统,命令是通用的。
进入系统常见的目录1、/data/app: 里面都是上传的apk 文件,其实都是压缩包2、/data/dalvik-cache :里面是app 中可执行文件.dex3、/data/data/ 包名:、1、d atabases:前端用户数据里面有两个文件:ecmobile.db :数据库文件ecmobile.db-journal: 日志文件,回滚用2、shared_prefs :用户设置,只有进入系统之后才有生产这个文件不进入没有这个文件里面都是一些用户信息.xml 文件6、从安卓系统中拉取文件adb pull 安卓系统中所载位置导出到的位置7、将文件从外界环境导入安卓系统中adb push 外界路径安卓系统的位置注意:linux 系统中斜杠/ windows 系统中反斜杠\8、模拟真机1、进到/etc/hosts 修改IP和域名2、挂载-》修改文件的权限chmod 777 /system3、APP常见的测试类型1、安装测试1、在PC 端安装前:检查文件齐全安装中:安装步骤安装后:安装后的文件目录是否正确2、APP测试:安装前:apk 文件病毒检查安装中的安装途径多样:1、商店下载安装,2、上传apk文件到sd卡安装3、adb安装4、浏览器下载安装。
安装后:启动检查,权限检查,欢迎界面检查升级:1 、通过adb 升级,2、应用商店升级,3、网页升级,4、高版本低版本同版本覆盖安装,5、考虑有无存储数据或者缓存。
2、卸载测试1 、adb 卸载2、第三方应用卸载3、系统进行卸载3、功能测试PC端:1 、单功能测试:单个功能,重点在各种异常情况2、功能交互:功能之间相互影响3、业务流程:特殊流1、APP 分类1、原生APP:不需要安装,不需要网络,直接安装在设备里面,可以直接调用手机终端的硬件设备2、web app :需要网络,不需要下载3、混合APP需要下载安装2、业务测试Fiddler使用只能抓http协议包,不能抓原生的APP的包在tools下options,decode,设置虚拟的手机网络模块:1、i nspector:包含子请求,查询数据json数据2、a utoresponder自动响应,编写想要的响应的信息3、f ilters过滤器输入hostJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。
字符串的形式来传输信息3、功能交互1、与手机系统功能的交互:混合APP和原生APP之间的交互,电话闹钟,短信2、与手机管理软件或安全软件交互:权限,休眠:软件长时间不用能否正常休眠,关闭网络4、操作方式1、屏幕旋转方式2、锁屏键,HOME键,back键(系统会给APP一个广播,APP中有接收的话就会产生一个功能)3、滑屏,长按,双击,多点触控5、通知栏测试系统会给APP一个广播,APP中有接收的话就会产生一个功能6、双卡双待测试7、android 四大组件1、activity 界面1、查看日志Catlog工具查看日志,更多注重红色的错误信息,拖拽进SD卡安装,授权1、通过包名查看2、通过displayed 查看:通常是查看进入一个页面的时间性能测试的时候可以查看进入首次进入软件所使用的时间欢迎页面+首页时间一个activity 只对应一个界面,但是一个界面对应多个activity2、查看进程Ps | grep ecmobile3、用户ID 用户ID 可以很好的隔离不同APP 的数据,方便保护APP 数据/data/system/packages.list/data/system/packages.xml: 记录系统中安装apk 的所有属性2、service后台服务在移动端有些应用已经关掉但还是可以不断地收到信息。
因为service3、broadcast receiver广播锁屏键,home键,back键,会想所有的APP发送广播,如果APP有处理会产生一个功能4、content provider 内容APP之间的数据共享4 、性能测试在pc 端的性能测试1、负载测试:1、不同负载下系统的各项性能指标和需求说明书是不是相符合2、测出最大负载和最佳负载主要是针对系统的的能力2、压力测试:在极限负载的情况下系统是否可以长时间稳定的运行,主要是测试系统的耐力3、容量测试:主要是针对数据库容量、带宽、等的测试APP性能测试1、时间1、启动时间1、首次启动时间安装好app 第一次运行的启动时间2、非首次启动时间热启动时间:app 对应的进程处于运行的状态冷启动时间:APP对应的进程没有运行:很多APP不支持冷启动,是关闭后台进程之后在ps可以查看到进程,要在安卓系统中杀掉进程。
2、切换时间不同界面之间的切换2、存储空间1安卓内存native堆内存:是镜像文件所产生的/data/data/包名/lib中的.so文件所产生的1、dalvik堆内存:是java程序产生的dalvik 内存可以通过/system/build.prop|grep heap (内存)查看dalvik.vm.heapsize=256m 最大是256dalvik.vm.heapstartsize=8m 最小8dalvik.vm.heapgrowthlimit=96m 限制的内存是多少dalvik.vm.heapsize=256mdalvik.vm.heaptargetutilizati on=0.75dalvik.vm.heapm in free=512kdalvik.vm.heapmaxfree=8m如果超出内存会产生溢出OOM 超出heapgrowthlimit2、内存占用查看每一个应用的内存(pss)Adb shell top -n 400 | grep 包名动态的显示查看进程占用内存的情况:procra nk3、GC (垃圾回收,获取垃圾信息)1、先挂载,改权限,导出文件。
注意要进入到system里面挂载Mount -o rw,remount - yaffs2 /dev/block/mtdblock3 /systemChmod 777 /system导出垃圾文件logcat是an droid中的一个命令行工具,可以用于得到程序的log信息设置输岀格式的日志消息。
默认是短暂的格式。
支持的格式列表Logcat -v time -v threadtime |grep GC > gcfeil.txtCtrl+C结束一下然后在外部用adb pull拉出来,注意拉出来好看一些就用csv表格格式號 free 412K/452K4、APP占用空间/data/data/包名下输入du —H 查看目录的空间大小其实这个值是不断变化的,要多次查看主要看APP占用的空间3、CPU中央处理器通过emmagee机关枪的工具进行测试,是一款APP性能测试工具停止测试之后会将文件导出在sd的文件里面/sdcard导出到windows系统中注意退出安卓系统在进行导出文件里面都是应用占用内存,内存使用率4、GPU (图形处理器)关注点:GPU过度绘制造成CPU资源浪费,设置-》开发者选项-》GPU勾选杀掉进程,重新打开软件。
1、浪费GPU资源2、很耗电如果GPU过度绘制会导致电量消耗很快一般这个bug级别比较低p3 p4级别使用中流量待机流量-v <format>I 11 m c查看的分别是百分比,free ,占用值/总空间6、功耗(电量)1、安装功耗1、安装前测试电量2、安装完成测试电量3、相减2、待机功耗3、使用功耗7、性能测试需要进行横向和纵向对比横向:竞争对手纵向:以前的版本形成基线:有一个基准,来对比是调优还是调差了5 、兼容性测试mqc 工具在web 测试中主要测试 1 、兼容性测试 2 、浏览器测试 3 、屏幕尺寸 4 、温度、压力1、安卓系统的碎片化:各个厂家的的软硬件不同比如小米,魅族,华为等等2、屏幕尺寸:4 寸5 寸3、屏幕像素:像素越大,越清晰4、屏幕分辨率:长和宽上的像素5、权限设置:不同用户对于设备权限的控制的不同,比如混合APP 使用系统软件要确认6、借助测试平台进行兼容性测试:阿里云mqc,百度云测,test in ,腾讯优测6、易用性操作是否便捷,是否美观易懂APP易用性测试:1、操作按钮点击范围是否合理在开发者选项中打开显示布局边界2、界面:图标识别度7、可靠性测试稳定性:成熟性,容错性,易恢复性,依从性质量模型的 6 个特性27 个子特性1、稳定性测试Monkey 测试,随机测试1、是安卓中一个命令行工具是安卓自动化测试的一种手段2、Monkey 测试是通过向系统发送一个伪随机的用户事件流,比如多点触控,手势输入3、Adb shell monkey -p 包名--throttle 500 -s 9 -v -v -vD:\monkey_log.txt时间间隔什么事件流日志级别4、使用simiasque 工具(是一个apk 的包)屏蔽通知栏,防止monkey 测试通知栏5、如果文件中最后一行是monkey finished 证明正常的在日志中查询ANR (应用没有响应)Exception Crash如果有直接截图报bug一般情况:3万以内出现Crash。
认为系统可靠性比较糟糕2、异常测试1、断电重启2、网络中断:将网络关闭,然后卸载应用,在安装应用,进入软件首页空白,打开网络之后首页还是一片空白。