今天同事问到了android测试工具有点懵。因为我一般不会去专业点的测试,我就用我肉嘟嘟的手指点啊点啊就完事了。既然人家问我我也不能丢了android人的面子,那么久来学习学习咯。


android自动化测试工具简介

现在,已经有大量的Android自动化测试架构或工具可供我们使用,其中包括:Activity Instrumentation, DroidPilot,MonkeyRunner, Robotium, 以及Robolectric。另外LessPainful也提供服务来进行真实设备上的自动化测试。

  Android自身提供了对instrumentation测试的基本支持,其中之一就是位于android.test包内的 ActivityInstrumentationTestCase2类,它扩展了JUnit的TestCase类来提供Android activities的功能测试。在应用测试中,每一个activity首先会被Instrumentation初始化,然后再加载到Android模拟 器或设备的Dalvik虚拟机中来执行。

一个新出android自动化测试工具,DroidPilot是一个自动化测试工具。它可以针对于Android平台的应用程序进行测试脚本编辑、自动回放、结果检 查、报告输出等操作,以此来缩短回归测试的时间,提升项目整体进度。测试脚本不仅可以运行于模拟器,更可以同时运行于多台移动设备,这样更能凸显测试结果 的真实性和可比性。

  Android SDK自带一个测试工具MonkeyRunner,它提供的API和执行环境可以运行Python语言编写的测试代码。它提供API来连接设备,安装/卸 载应用,运行应用,截屏,比对图片来判断特定命令执行后的屏幕是否包含预期信息,以及运行对应用的测试。MonkeyRunner使用 ActivityInstrumentationTestCase2, ProviderTestCase,ServiceTestCasek, SingleLaunchActivityTestCase及其他类来定义测试用例,并使用InstrumentationTestRunner类来运行 测试。

  Robotium是另一种通过InstrumentationTestRunner来完成Android交互式测试的架构,它横跨多个 activities,支持功能测试,系统测试和接收测试。Robotium支持Activities、Dialogs、Toasts、Menus、 Context Menus甚至Honeycomb,并且它可以同Maven和Ant集成来完成持续集成测试。Robotium被称之为针对Android应用的又一个 Selenium。

  Robolectric另辟蹊径,它并不依赖于Android提供的测试功能,它使用了shadow objects并且运行测试于普通的工作站/服务器JVM,不像模拟器或设备需要dexing(Android dex编译器将类文件编译成Android设备上的Dalvik VM使用的格式),打包,部署和运行的过程,大大减少了测试执行的时间。Pivotal实验室声称使用Robolectric可以在28秒内运行1047 个测试。

  LessPainful将Android测试又推进了一步,它提供了一个多设备平台自动化测试的服务。用户上传应用(*.apk)和用 Cucumber(一种业务相关的DSL)编写的测试文件,选择测试运行需要的设备配置,最后测试将自动执行并生成测试报告。它支持的设备包括 Garmin Asus,几款HTC,LG,Samsung Galaxy,Sony Xperia和Motorola Motodefy。

Fps2d

工具名称:

fps2d性能测试工具

工具描述:

fps2d主要针对android系统系统对2D图形处理性能的测试

测试方法:

将该软件下载到所要测试的android系统上,双击该程序。待程序运行完毕后,记录本次测试的成绩

测试结果:

测试结果有avgstdev两个参数值,其中,avg是每秒帧数的平均值,stdev是标准偏差值,avg的值正常值是(58-60),另测试最后,系统会给出测试时迭代的次数,iteration是迭代的次数

Linpack

工具名称:

Linpack性能测试工具

工具描述:

Linpack用具测试计算机浮点计算性能

测试方法:

将该软件下载到所要测试的android系统上,双击该程序。进入程序主界面后,点击running benchmark,开始测试

测试结果:

测试结果中有四个参数:MFLOPStimenorm resprecision

MFLOPS每秒百万次的浮点运算,

norm res可以是标准参照,

precision是软件版本信息

一般MFLOPS值越高越好,采用此工具测量时需要多次测试,求下平均值

Benchmark

工具名称:

Benchmark

工具描述:

Benchmark可以测试系统中的多项性能,包括2Dcpu、内存和文件系统,且速度较快

测试方法:

将该工具下载到系统上,双击该系统,进入程序主界面,用户直接点击running benchmark按钮,将会测试工具默认的各项内容,

测试结果:

测试结果中的各项内容结果:

Graphictotal graphic scoredraw opacity bitmap(绘制不透明的位图万像素/每秒)、draw transparent bitmap(绘制透明的位图万像素/每秒)

Cpu cpu的总得分

Memory内存总得分和复制内存的时间

Filesystem中列出整个文件系统的得分,同是有创建/删除100个文件所用的时间,向文件中读/1M内容的速度

(及时编译工具jit的开启可以提高测试的成绩。Sp13开启也会影响到测试成绩)

Quadrant(象限)

工具名称:

Quadrant

工具描述:

Android系统的性能测试工具,CPU、内存、I/O输入输出、2D3D图像的性能,提供了一键式的完整测试。也可以或是根据需要选择其中某些测试项目单独测试。

测试工具:

在所要测试的系统上装入该测试工具,双击该工具,进入软件主界面,用户可以选择综合性能测试,也可以选择自定义性能测试

测试结果:

测试覆盖cpumemoryIO2D3D五大部分。测试完成后,将会给出给个部分的测试数值,同时将正在测试的系统的平分和其他机器测试的结果分布的直方图。

Cts

工具名称:

Cts android兼容性测试工具

工具描述:

测试在在android系统上开发的程序可以正常运行在手机设备上,即android应用程序的兼容性

测试方法:

android设备的shell环境下运行cts工具,进入cts环境内,ls –plan命令将android的项目有八大项,如:CTSAndroidSignature(签名安全)、AppSecurity(应用程序安全)、等。使用start –plan name运行其中一个项目,也可以通过start –-plan name –p packagename运行该项目中的一个应用程序。

测试结果:

测试结果在out/host/linux-x86/cts/android-cts/repository/results/目录下,并以开始测试的时间命名文件夹下的testresult.xml文件中会记载测试项的测试结果。Testresult.xml文件中的summary项即记录就是测试结果总结

Monkey测试工具

工具名称:

Mokey测试工具

工具描述:

Mokeyandroid系统自带测试工具,monkey测试工具是向用户发送伪用户事件流,对android系统进行压力测试。测试软件的稳定性和健壮性

测试方法:

Monkeyandroid系统自带的测试工具,需运行在其环境中的shell里启动该工具,可以使用adb.exe shell进入shell环境,直接使用monkey命令后跟参数即可进行android的压力测试。Monkey的常用命令参数有:

-p ALLOWED_PACKAGE伪事件操作的程序范围,当设定-p参数后,随机伪事件将会在设定的应用程序中产生,当没有设定该参数是,随机伪事件将在Intent.CATEGORY_LAUNCHERIntent.CATEGORY_MONKEY运行,可以指定多个应用程序

-v增加反馈信息的级别,参数选择有level0levellevel2

其他可以参照monkey含义

测试结果:

当伪事件运行完毕后,且无错误时,shell上会提示monkey finish信息。

Speed test工具

工具名称:

Speed test测试工具

工具描述:

Speed test工具主要测试设备的网络速度。可单独测试3G和无线网络的上传和下载的速度,通常测试需要多次测试取平均值。

测试方法:

将工具导入设备中,同时开启所要测试的网络对象,单击功能页面speed test工具的图标,进入工具的主页面。

单击“开始测试”按钮,进入测试界面。测试完成后,工具会恢复到开始测试的界面。多次重复该测试步骤。

测试结果:

result菜单下可以看到之间的每次测试结果,每次的测试都以开始测试的时间为标识符。求几次测试的平均值。

SD卡速度测试

工具名称:

SD.card.speed.test

工具描述:

测试SD卡的读取和写入的速度,SD合格的标准:

C=class

C2不低于2M/S

C4不低于4M/s

C6不低于6M/s

测试方法:

SD.card.speed.test工具导入设备中,一般情况下工具会自动检测设备上的SD卡,如果没有的SD卡的情况,设备会给出提示,如果检测到SD卡后就开始测试。公司MID中一部本的内存挂载到了SDcard下(可能有8G),因此这个时候测试SD卡的读取和写入的速度并不准确,这种情况下可以卸载存储一保证测试数据的准确性。

测试结果:

可测试结果中给出了SD卡的读取和写入的速度。可以多次测试求平均值。

SD卡速度测试

工具名称:

Nand test

工具描述:

测试SD卡的读取和写入的速度,SD合格的标准:

C=class

C2不低于2M/S

C4不低于4M/s

C6不低于6M/s

测试方法:

SD.card.speed.test工具导入设备中,一般情况下工具会自动检测设备上的SD卡,如果没有的SD卡的情况,设备会给出提示,如果检测到SD卡后就开始测试。公司MID中一部本的内存挂载到了SDcard下(可能有8G),因此这个时候测试SD卡的读取和写入的速度并不准确,这种情况下可以卸载存储一保证测试数据的准确性。

测试结果:

可测试结果中给出了SD卡的读取和写入的速度。可以多次测试求平均值。

以上是前人总结的,我只是搬过来而已,要本人打算学习Monkey,大家可以根据需要去学习。


更多相关文章

  1. Android(安卓)AES加密算法及其实现
  2. android:layout_gravity 和 android:gravity的区别
  3. Android性能调优工具TraceView介绍
  4. android 開發常用的工具整理(整理中)
  5. 性能优化工具
  6. android testing (一)
  7. 亲测Android横竖屏切换小结,带测试结果
  8. Android(安卓)Testing和Instrumentation
  9. 如何让Android(安卓)UI设计性能更高效

随机推荐

  1. Android自定义ProgressBar样式:渐变圆角水
  2. 转:善用Android预定义样式来为我们的布局
  3. android实现图片平铺效果&WebView多点触
  4. 在android系统命令行中执行arm linux程序
  5. Android NDK 调用C
  6. Android的图像处理
  7. Android(安卓)Studio(3)---Android(安卓)St
  8. android访问NFC的SE
  9. Android通用UI封装----“我的”页面Item
  10. 【android笔记】之 android studio (一)