
1、MonkeyAndroid SDK自带测试工具测试程向系统发送伪随机用户事件流按键输入、触摸屏输入、手势输入等)实现发应用程序进行压力测试志输实际该工具能做程序做些压力测试由于测试事件数据都随机能自定义所局限性
2、MonkeyRunnerAndroid SDK提供测试工具严格意义说MonkeyRunner其实Api工具包比Monkey强编写测试脚本自定义数据、事件缺点脚本用Python写测试员说要求较高比较习本
3、Instrumentation早期Google提供Android自化测试工具类虽候JUnitAndroid进行测试Instrumentation允许应用程序做更复杂测试甚至框架层面通Instrumentation模拟按键按、抬起、屏幕点击、滚等事件Instrumentation通主程序测试程序运行同进程实现些功能Instrumentation看类似Activity或者Service并且带界面组件程序运行期间监控主程序缺点测试员说编写代码能力要求较高需要Android相关知识定解需要配置AndroidManifestxml文件能跨App
4、UiAutomatorAndroid提供自化测试框架基本支持所Android事件 *** 作比Instrumentation需要测试员解代码实现细节(用UiAutomatorviewer抓App页面控件属性看源码)基于Java测试代码结构简单、编写容易、习本编译所设备或模拟器都能运行测试能跨App(比:App选择相册、打相机拍照跨App测试)缺点支持SDK 16(Android 41)及支持Hybird App、WebApp
5、EspressoGoogle源自化测试框架相于RobotiumUIAutomator特点规模更、更简洁API更加精确编写测试代码简单容易快速手基于Instrumentation所能跨App配合Android Studio编写测试简单例
6、Selendroid:基于Instrumentation测试框架测试Native App、Hybird App、Web App网资料较少社区跃度
7、Robotium基于Instrumentation测试框架目前内外用比较资料比较社区比较跃缺点测试员说要定Java基础解Android基本组件能跨App
8、Athrun淘宝移测试框架/平台同支持iOSAndroidAndroid部基于InstrumentationAndroid原ActivityInstrumentationTestCase2类基础进行扩展提供整套面向象API详细介绍
9、Appium近比较热门框架社区跃框架应该功能强
-
大概有如下几个工具:
android针对上面这些会影响到应用性能的情况提供了一些列的工具:
1 布局复杂度:
hierarchyviewer:检测布局复杂度,各视图的布局耗时情况:
Android开发者模式—GPU过渡绘制:
2 耗电量:Android开发者模式中的电量统计;
3 内存:
应用运行时内存使用情况查看:Android Studio—Memory/CPU/GPU;
内存泄露检测工具:DDMS—MAT;
4 网络:Android Studio—NetWork;
5 程序执行效率:
静态代码检查工具:Android studio—Analyze—Inspect Code/Code cleanup ,用于检测代码中潜在的问题、存在效率问题的代码段并提供改善方案;
DDMS—TraceView,用于查找程序运行时具体耗时在哪;
StrictMode:用于查找程序运行时具体耗时在哪,需要集成到代码中;
Andorid开发者模式—GPU呈现模式分析。
6 程序稳定性:monkey,通过monkey对程序在提交测试前做自测,可以检测出明显的导致程序不稳定的问题,执行monkey只需要一行命令,提交测试前跑一次可以避免应用刚提交就被打回的问题。
说明:
上面提到的这些工具可以进Android开发者官网性能工具介绍查看每个工具的介绍和使用说明;
Android开发者选项中有很多测试应用性能的工具,对应用性能的检测非常有帮助,具体可以查看:All about your phone's developer options和15个必知的Android开发者选项对Android开发者选项中每一项的介绍;
针对Android应用性能的优化,Google官方提供了一系列的性能优化视频教程,对应用性能优化具有非常好的指导作用,具体可以查看:优酷Google Developers或者Android Performance Patterns。
二 第三方性能优化工具介绍
除了android官方提供的一系列性能检测工具,还有很多优秀的第三方性能检测工具使用起来更方便,比如对内存泄露的检测,使用leakcanry比MAT更人性化,能够快速查到具体是哪存在内存泄露。
leakcanary:square/leakcanary · GitHub,通过集成到程序中的方式,在程序运行时检测应用中存在的内存泄露,并在页面中显示,在应用中集成leancanry后,程序运行时会存在卡顿的情况,这个是正常的,因为leancanry就是通过gc *** 作来检测内存泄露的,gc会知道应用卡顿,说明文档:LeakCanary 中文使用说明、LeakCanary: 让内存泄露无所遁形。
GT:GT Home,GT是腾讯开发的一款APP的随身调测平台,利用GT,可以对CPU、内存、流量、点亮、帧率/流畅度进行测试,还可以查看开发日志、crash日志、抓取网络数据包、APP内部参数调试、真机代码耗时统计等等,需要说明的是,应用需要集成GT的sdk后,GT这个apk才能在应用运行时对各个性能进行检测。
1 资源
所有的UI指南都可以在这里找到。有些时候我们需要快速地找到资源,我们需要工具栏图标、主题、其他图标和各种安卓应用需要的设计资源。Android Assets Studio是最佳工具之一。它可以为你生成各种分辨率 (mdpi, hdpi, xhdpi)的启动器、标签、工具栏、菜单图标,可以按照你的配色生成主题,还可以生成工具栏资源 适用于Sherlock Action Bar。转换和缩放DPI是很痛苦的,所以你需要Android Dpi Calculator
2 UI组件
只要遵循安卓官方的UI设计理念,我们就在重用UI组件。有很多优秀的通用组件可以利用,当然你可以基于他们开发适合自己的组件。你可以在Android Views上找到他们。这里我只提出几个“必备的”组件:
Sherlock Action Bar:作者Jake Wharton。这个工具栏设计扩展了支持函数库,可以通过一个API *** 作各个版本的安卓工具栏。该函数库会在合适的时候自动调用原生工具栏,也可以在你布局基础上封装一个自定义实现。这样你就可以很轻松地为各种2x及以上的安卓版本开发一个带工具栏的应用。
Sliding Menu :这是时下非常流行的UI模式。Google Play市场上很多最佳应用都采用了这个UI模式,比如Google Plus、Facebook、Youtube以及其他的应用程序都采用了Sliding Menu。
Cards:一个非常漂亮简介的UI组件,可以让你的应用看起来和Google Home一样。你可以在屏幕上添加一个或者层叠若干个卡片。
3 函数库
安卓应用不仅仅是UI,还包括了很多颜色和资源。Optimus Prime(译著:《变形金刚》里面正义一方的领袖)曾经说过:“真相不只是眼前所见”。我们还需要编写后台代码加载和缓存、加快与服务器通讯、编写数据库 *** 作工具等等。接下来,我们理所应当地会重用一些最佳实践代码。我的最爱(以及常用的工具)包括:
Android Universal Loader:高度可定制下载和加载函数库。支持从缓存或文件加载,配置非常简单。
Spring for Android:如果你没有听说过Spring…那么请先去搜索一下。这个最流行的Java框架已经将他的产品线延伸到了移动领域。正如他们所说“移动就是未来”。Spring for android提供了几个很棒的函数库和框架,包括:
Spring RESTtemplate:一个非常流行的基于Java REST客户端。Spring for Android RestTemplate模块提供了一个可以在安卓环境下工作的RestTemplate版本,为你的安卓应用程序提供了一个非常灵活的REST API。
验证支持:OAuth是该领域快速崛起一个的协议。OAuth是一个开源协议,为用户提供第三方应用支持,提供对其他网站受限资源或服务的访问。
Square:他们在GitHub上发布了很多优秀的函数库。我最喜欢的是RetoFit,正如他的介绍那样“一个类型安全的安卓和Java REST客户端”。
OrmLite :编写和维护数据库表通常是很乏味的。OrmLite是一个支持安卓和Sqlite的ORM框架。通常完成这项工作会有数不清的备选工具,但是如果你正在创建一个需要很大数据库的应用也许OrmLite会是你的最佳选择。最好的事情是——OrmLite是通过注解驱动的。
AndroidAnnotations:UI和代码之间的粘合剂,通过它可以编写更少的代码并且轻松维护现存的代码。
4 测试
作为开发者,我们会不时地进行一些测试。毕竟,我们必须确保开发的程序能正常工作。能遵循测试驱动开发(TDD)当然最好,但是有时候我们只需要一些简单的测试。这只是我个人的看法,最终选择权始终在你手上。
Monkey:检查应用是否会出现ANR(译者注: ApplicationNotResponding应用程序无响应)的最简单、快速和有效的方法。它会在你的应用上执行N次随机点击。你可以在午休时运行一下Monkey。
Android Test :一个基于JUnit的安卓测试框架。它提供了所有类型的测试。你可以为UI/活动编写测试用例。功能测试或者黑盒UI测试不要求测试者对应用的实现细节非常了解,只需要从用户角度了解执行特定动作或者输入特定内容会有怎样的输出结果。这个方法可以让开发和测试人员在你的组织里独立地工作。
Robotium :这是一个安卓自动化测试框架,支持原生应用和混合型应用。通过Robotium你可以轻松地编写功能强大、健壮性好的黑盒测试用例。测试开发者可以编写涵盖各种安卓 *** 作的功能测试、系统测试和验收测试用例。此外,Robotium还有一个非常活跃的开发者论坛。
云端测试:你可以在大量设备上运行你的测试并获得所有崩溃和错误信息。相关的工具有:
Skyforge
BitBar
CloudMonkey
Perfecto Mobile
他们不是免费的,但确实好用。
5 构建
这是我最喜欢的部分。我们日复一日、年复一年地工作…是时候展示自己的产品了。你的应用可能会分付费版、免费版或专属版。他们会有通用的部分和一些专有逻辑。也许你会有一个为100个客户定制的应用,不同的包名、颜色、名称、各种资源和产品风格…我刚才提到了构建版本吗?一个开发版、不同阶段的测试版、生产测试版、客户Beta版…(软件版本命名)等等。
在一天工作结束的时候,秘密就在维护和管理发布流程。对于这项工作,我只推荐下面几个构建工具。
Ant:我从Ant开始,因为它是Java开发者最熟悉的一个工具。如果你通过Ant构建一个安卓项目,你会编写一个包含了所有默认构建任务的buildxml,它会为你完成一些简单的工作。如果你需要更高级的功能,深呼吸准备好进一步钻研吧……如果要进行依赖管理,这是更艰巨的任务。
Maven:我的一个朋友曾经说过:“Maven管理安卓应用只有Hello World”。Maven从未被谷歌或者安卓官方支持。社区开发的几个Maven插件在安卓构建工具的每个新版本上都会崩溃。Maven配置困难,但维护和运行很容易。它的依赖管理做的很好,但是很多安卓函数库并没有包含在Maven主仓库。
Gradle:谷歌IO 2013发布了Gradle。它是安卓官方支持的构建工具,也是Android Studio IDE的一部分。Spring和其他几个业界巨头也都支持Gradle。我发现Gradle的语法简单而且易于理解。我成功地构建了一个简单项目,一个带有复杂构建逻辑的项目并在24小时内从ant/maven上移植了3个项目到Gradle。Gradle的依赖管理很棒,支持从Maven和Ivy仓库获取(pulling)文件以及多项目构建。
近来在学习研究移动平台 自动化测试时发现Appium和Robotium在对文本框进行输入时有一定的区别:
Appium在输入文字时需要调用系统键盘
Robotium在输入文字是根本不需要调出键盘,文字很快速的就输入完成,感觉不是输入的,而是Copy&Paste
我个人认为造成这种区别的原因应该如下(源码分析验证:TBD):
Appium是基于UIAutomator框架实现的。Appium测试进程与目标应用进程是分开的,所以Appium不能直接访问目标应用的各种element属性进行copy&paste,而只能模拟触发相应的事件对目标应用进行 *** 作。这就好比触摸屏监控驱动和目标应用的关系:驱动监控到用户点击屏幕的事件后,驱动就会去判断点击的位置是否是一个文本框,如果是的话,就去打开系统键盘给用户进行输入。
Robotium是基于Instrumentation框架的。Robotium测试进程与目标应用是在同一个进程中作为两个不同的线程运行的。也就是说Robotium测试线程是有办法直接访问目标应用的各种element属性的,所以它根本不需要触发任何事件,直接就可以在内部修改相应的数据,比如这个例子中的文本框输入文字。
那么单单针对文本输入来说,Robotium和Appium优劣如何呢我个人认为可以从以下几点出发进行考虑:
Robotium是直接Copy&Paste,所以效率当然会更高,特别是在长字符串输入的时候,比如,输入一篇文章,如果在Appium上调用键盘,特别当你的安卓设别性能不高的情况下,你会明显感觉到卡卡的。
Robotium因为不需要调出键盘,所以很容易就能输入各种不同语言;而Appium就不一样了,如果当前英文而你需要输入中文,那么你要去调用系统setting的应用先去把语言设置成中文,选择中文输入法等,然后再切换到目标应用进行输入 *** 作。
Appium更能模拟用户的行为 *** 作;而Robotium偏向测试金字塔更底层点的Unit Test(所以Robotium除了能支持测试目标应用的Activity外,还能测试Content Provider等)
转载
当然有,你可以用Eclipse或者Android studio做一个拥有界面的apk就可以了
只要apk拥有界面,进行控制测试的开始 和 结束 就行了,不需要连接电脑
其实没有界面也是可以的,只是最开始执行的时候连一下电脑,用adb shell start am挂起class就行了
编程的东西我还不是很懂,但是确实是可以的,我使用过两种不同的系统测试apk,不过都是公司自己方便测试自己研发的,其实也不算难,懂Android开发的估计给些时间,也能独立做出来
以上就是关于Android 手机自动化测试工具有哪几种全部的内容,包括:Android 手机自动化测试工具有哪几种、android性能测试工具有哪些、安卓开发的基础问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)