Android 基本测试工具的使用和无线学习介绍

1,日志查看工具

1)DDMS

Android测试中,使用最多的日志查看工具就是DDMS了。

ddms可以从两个地方打开,1,Eclipse的的ddms插件(属于Eclipse 的SDK插件),2在Android SDK安装目录下的tools文件夹下面。

DDMS功能非常齐全,不仅仅可以查看日志,还可以截图,打开文件目录,终止进程等等功能,这里先直说查看日志

看日志就靠这一块了。

日志的过滤等级

Error :error为最严重的错误,如果是抛到虚拟机的系统错误,就可能引起客户端崩溃,比如最为常见的空指针异常。

Warning :警告,一般严重,比如网络异常什么,一般不会有crash,但需要引起注意,过滤warning异常的时候,会同时过滤出error错误。

Info :信息,也就是一些系统的信息,比如页面切换时间,手机信号量等等、过滤info信息同时会过来出warning和error信息

Debug :debug信息,系统的一些debug信息,包括所有error,warning和info。

Verbose:详情,包括所有error warning info和debug,还有其他的一些详情

Assert:断言,没见过,可能跟单元测试有关。

日志的显示

一条日志分为7部分

1,level 等级,即上文说的error,warning等,有系统决定,开发打印的日志也可自行决定等级。

2,time时间,日志时间。

3,pid进程ID

4,tid线程ID

5,application应用,有时候会打印出所属的应用名称,如com.taobao.taobao

6,tag标签,开发可以自行设定log的标签,便于过滤,

7,text文本,即日志内容

DDMS的其他日志功能

日志清空,日志保存,日志过滤,日志暂停

日志过滤:

DDMS的详细使用可以参考http://developer.android.com/tools/debugging/ddms.html

中文版

http://wiki.eoeandroid.com/Using_DDMS

2)Logcat命令

一般使用的不多,仅仅在ddms启动不了,或者识别不了手机的时候才会使用。前提条件,安装了Android SDK。

使用方法,直接在命令行下输入adb logcat,如果日志非常多,强烈建议将文件重定向到文件里面。

或者先输入adb shell ,再使用logcat命令,日志多的话,可以加管道操作进行过滤,即logcat|grep XXXX。

具体使用和ddms差不多,不多由于日志很多,用这种方法常年看不过来。日志内容和ddms一致

3)Wmock

如果不需要关注客户端本地日志,只需要看客户端应用层的网络请求的话。

可以之间用wmock来抓取网络中的HTTP请求,具体见

http://m.taobaotest.com/wmock/

不在赘述。

4)Wireshark和tcpdump

如果遇到一些比较难以解决的bug,需要深入TCP请求甚至IP请求,就需要用tcpdump对客户端的进行抓包(如TCP的keepalive包),具体操作如下:

4_1,root手机,手机需要root权限,否则无法使用tcpdump。

4_2,下载tcpdump的Android版本,用push命令将文件推到手机中。不建议推送到SD卡,会有权限问题,可以放到手机的data文件夹下,。

(adb push [PCPATH][mobilPATH])

4_3,提升tcpdump的权限。用adb shell进入android bash后,需要手机使用root权限,先提升权限,然后chmod777 tcpdump。

4_4,抓包,启动你要测试的APP后,适当的时间就可以开始抓包可,在tcpdump当前目录下,直接使用tcpdump -p -vv -s 0 –w[pcapfilePath] 就可以实现抓包,使用ctrl + C停止。

4_5,导出.pcap文件。退出adb bash , 使用pull命令将.pcap文件导出到PC(adb pull[mobilPath] [PCPATH])

4_6,使用wireshark将日志文件打开,即可以看到所抓到的包了。

5)使用fiddler软件抓取网络请求,具体用法和wmock类似,只是fiddler使用自己的机器作为代理服务器,而wmock使用专用的代理服务器。

2,性能工具

1)monkey工具

Monkey可以运行在模拟器或真实设备上,并产生一系列随机的用户事件(点击、触摸、手势以及系统级别的事件)。

Monkey一般用来进行压力测试或稳定性测试。

Monkey通过 adb shell monkey [options] 命令来启动

常用的参数包括

–p [package name]:指定测试包,参数即为包名,如主客户端就是com.taobao.taobao

–s [seed]:指定事件随机参数,参数即为随机数的种子值。如果这个参数相同,理论上能够复现所有事件。

- v[number] number:制定发送伪随机事件的次数。注意,这个随机事件并非一个时间点只发送一个随机时间,有可能同时发送几个事件。

--throttle [milliseconds]:每次发送事件的时间间隔,单位为毫秒,测试的时候常常设定为1000~500之间。如果不设置,点击间隔会非常短。

下图就是客户端monkey的一些点击日志,如果需要系统输出的日志。请使用logcat命令收集,并进行重定向。

具体参数情况,请查看帮助文档http://developer.android.com/tools/help/monkey.html

缺点:遍历深度优先,部分页面(需要登录的页面无法遍历到)

性能监测工具

2_1,top工具

使用adb shell进入Android bash下面,然后,和linux下的top一样。

不懂的话,top –h。具体这里不在细说。

2_2,android的dumpsys命令

通过dumpsys命令也可以获取手机中一些APK包的系统信息,可以直接通过cmd命令行,输入adb shell dumpsys [options]就可以了

参数包括:

2_3,ddms的系统检测

用ddms也可以用来检测性能,通过选项device和进程,就可以查到app的内存消耗,堆栈消耗,CPU消耗,网络消耗等等信息,以及控制模拟器(只有模拟器,真机不行)。

下图为网络消耗

下图为内存消耗

具体使用,还是看http://developer.android.com/tools/debugging/ddms.html

3,文件查看工具

1)手机软件

各种手机助手,比如91手机助手,豌豆荚等等,都有很好的查看手机文件系统的工具。但是这些手机助手只能看SD卡里面的。只能应付日常最基本的使用。

2)DDMS

能够查看Android文件系统的大多数目录,但部分没有相关权限的目录(貌似是所有用户的读权限),无法查看。启动方法为,通过device->File Explorer,出现下图页面

优点是ddms可以方便的导入导出数据到这些不需要root权限的目录里面。使用方法:左上角的图标,应该都能看懂吧

3)Adb bash 查看

Adbbash其实可以看成一个阉割版的linux bash系统,用adb shell进入adb bash后其他操作与linux系统基本无差异,但部分命令会无法使用。如下图,感觉一切都非常熟悉吧。

只要你的手机是root过的,OK,畅游手机的系统文件。

4)RE浏览器(rootexplorer)

一句话,神器,但前提是你的手机必须root。在手机上装上RE后,很多操作就可以在手机上以可视化界面完成了,甚至可以增删改系统文件。由于权限很高,务必小心操作。比如说,一些app内部文件,可以直接通过RE浏览器来查看并修改,确定是文件的哪个值发生了错误引起客户端的bug。

最后,针对这一块注释一下一些常用的文件存放地址

自己安装的APK存放地址:/data/app下,

淘宝客户端临时文件(缓存,如图片等):/sdcard/taobao,这个各个客户端不一样,有没有SD卡也有影响

APP的私有文件(即需要到系统中清除缓存的APP):/data/data/<packageName>下面

APP的ANR日志 :/data/anr 下面

系统预装的APP:/system/app下面(注意,慎删,误删挂了什么别怪我没提醒)一般只有预装包和我们测试的APP出现了冲突的时候,才回去删除

Adb命令: /system/bin 下面

Android系统源代码目录 /system/framework 下面

系统配置文件:/etc 下面

4,打包及签名

打包过程介绍(为了解决打包过程中的问题而介绍一下)

1,生成R文件,使用aapt.exe程序生成R.java文件,如果Eclipse打开了build AutoMatically,就会在打开工程的时候完成。

2,生成aidl文件,使用aidl.exe程序,把.aidl文件转化为.java文件。这步如果打开Eclipse的build AutoMatically的功能的话,也会自动生成

3,将.java文件生成.class文件,使用javac将.Java变成.class。

4,将class文件打包生成class.dex文件,使用dx脚本,class文件打包生成class.dex文件

5,打包资源文件,包括所有的res,asserts, Androidmanifest.xml等等文件,使用aapt.exe文件打包

6,生成未签名的APK安装文件,使用apkbuild打包成未签名的apk包

7,签名,使用jarSigner.jar进行签名。

8,(优化对齐)

这边注意两点:

1,如果打包需要混淆,需要在第3和第4步之间将className进行替换,达到混淆的效果。

2,用Eclipse run出来的包默认保存在工程的bin目录下面,这个包默认使用的是debug的签名,如果覆盖安装我们自己签名的APK包,会造成签名不一致的冲突。

打包工具:

ANT

Maven

5,自动化测试框架

Sword

6,内存的查看

内存的查看工具使用的是Eclipse 下面的mat插件

内存文件查看的过程:

1,导出内存文件

从ddms上面,选择需要查看内存的进程,然后,把hprof文件dump下来,dump成功后,将生成一个命名为<app包名>.hprof的文件

2,hprof文件进行转换。

由于android的hprof文件mat文件无法打开,需要使用androidSDK的自带工具进行转码操作。

具体命令为hprof-conv [path] [path]

3,在mat中打开文件

出现上图后,就可以根据内存地址,找到泄漏的点,或者客户端内非常消耗的内存模块了

7,其他常用工具

1,Host修改

在日常测试过程中,经常需要修改手机的host,使其能够访问特定的机器。Android的host文件和linux系统一样,处在/etc/hosts文件当中。但文件需要root权限才能够查看,且文件是只读的,即使有root权限,你也无法覆盖。目前的修改办法是在手机上装上RE浏览器,然后强制修改host文件,保存退出后生效。

2,强制Kill进程

使用DDMS的进程终止工具

选择一个进程(要求APP是debug包,否则找不到这个进程),这个按钮会变成红色,点击就可以kill进程了。

3,内存回收(GC)

强制回收内存,还是靠DDMS,如下图按钮。

内存“Cause GC”按钮,强制触发GC,之后就可以不用按了,他会自动触发内存的回收,如果随着APP的使用dataObject持续出现变大的情况,说明APP有内存泄漏的情况(现在的客户端也会报警)。

如果需要导出需要通过ddms 将heap dump生成出来,用来分析

4,网络延时和降低带宽

网络延时可以通过wmock来实现,当然,更加简单的方法就是通过更换sim卡来实现,用2G网络就可以达到网络延时提高和网络带宽的目的两个目的。

5,APK打包解包命令

aapt 命令 :

如aapt dump xmltree [apk path] AndroidManifest.xml 或者aapt dbadging 命令,可以检查APK包中的信息

转载于:https://blog.51cto.com/lilier/1335073

Android 基本测试工具的使用相关推荐

  1. [原创]Android Monkey测试工具使用介绍

    [原创]Android Monkey测试工具使用介绍 1 Android Monkey介绍 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件 ...

  2. 测试android兼容性测试工具,Android兼容性测试工具Spoon

    android分布式测试工具. 简介 android众多的版本和机型给android app测试工作带来不小的挑战.Spoon通过将case分布式地执行.将执行结果更友好地展示出来,从而简化andro ...

  3. Android测试solo,SoloPi支付宝开源的 Android 专项测试工具的介绍与快速上手

    SoloPi支付宝开源的 Android 专项测试工具的介绍与快速上手 SoloPi:支付宝开源的 Android 专项测试工具的介绍与快速上手 MTSC2019大会上,Soloπ算是一次正式的在公众 ...

  4. MTK CVE-2020-0069 使用方式,以及Android端测试工具

    本文章主要分两部分 1.漏洞说明 2.Android端测试应用和工具,用于测试机型是否受到影响 谷歌在2020年3月的Android安全公告中提到,新更新已经提供了CVE-2020-0069补丁来解决 ...

  5. Android 通过串口获取设备号 android串口测试工具 完整解析

    前言 android 工业平板RK3399-all 调试有关串口的设备 如何获取对应的串口设备及串口名字 先来一张图说明 获取串口 SerialPortFinder mSerialPortFinder ...

  6. Soloπ:支付宝开源的Android专项测试工具

    1.前言 近年来,随着移动互联网的蓬勃发展,移动测试技术也取得了长足的进步,从早期基于测试脚本的单机自动化,到录制回放.图像识别.云测平台等测试技术贴合实际业务需求深度应用和创新,测试效率从而一次又一 ...

  7. socket 测试工具_Soloπ:支付宝开源的Android专项测试工具

    1.前言 近年来,随着移动互联网的蓬勃发展,移动测试技术也取得了长足的进步,从早期基于测试脚本的单机自动化,到录制回放.图像识别.云测平台等测试技术贴合实际业务需求深度应用和创新,测试效率从而一次又一 ...

  8. 几款android安全测试工具

    1.dexexplore 该应用可以直接查看android 应用的dex 文件,及其方便使用,可以帮助我们审计android源码的安全问题和掌握一些基本信息(四大组件等) 链接:http://pan. ...

  9. Android稳定性测试工具Monkey的使用

    综述 Monkey是一个命令行工具,它可以运行在我们的模拟器或者设备当中.它可以发送一些伪随机(pseudo-random)的用户事件流,例如点击,触摸,手势等.我们能够使用Monkey工具来对我们所 ...

最新文章

  1. 2020年学什么计算机软件,2020年大学计算机软件专业排行榜
  2. VTK:可视化之BackgroundTexture
  3. java 缓存分页_基于redis做缓存分页
  4. Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并
  5. 菜鸟教程 之 HTML DOM 和 浏览器BOM
  6. [论文阅读] Active Learning for Deep Object Detection via Probabilistic Modeling
  7. POJ 2457 BFS
  8. 在鼠标点击的位置 ,添加一个div ,类似手表右键菜单
  9. windows 使用docker构建镜像
  10. 古体字与简体字对照表_简体字与繁体字对照表汇总
  11. 观看影片《硅谷传奇》
  12. SDS之BlockChain Storage系列:3、为什说区块链存储是下一个热点 (上)
  13. html5怎么给图片加边框,怎么给图片加边框 【解决模式】
  14. 微信到底是怎么来的?
  15. JetBrains .idea项目目录泄露
  16. 基础算法题——天梯赛座位分配(化繁为简)
  17. isEmpty()的坑
  18. css3实现下拉列表框
  19. vue能做什么以及特点
  20. child_process.spawn中文乱码

热门文章

  1. c语言 手动实现sizeof,sizeof究竟是怎样实现的?
  2. exec go 重启_无停机优雅重启 Go 程序
  3. commit git idea 速度慢_关于Git,这篇文章还不够吗?
  4. @kafkalistener中id的作用_SSM框架(十一):Spring框架中的IoC(1)
  5. linux centos7 r安装,如何在CentOS 7上安装R
  6. xmlhttprequest 跨域_跨域资源共享(CORS)安全性
  7. 计算机概论在线阅读,计算器概论 or 计算机概论
  8. java前期_【JAVA】前期环境配置
  9. C语言(CED)排序算法总结。比较完整和详细
  10. 媒体服务器协议,媒体服务器介绍(mediactrl架构)