以下是本人原创,如若转载和使用请注明转载地址。本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址

感谢您支持我的博客,我的动力是您的支持和关注!如若转载和使用请注明转载地址,并且请尊重劳动成果,谢谢!

一、什么是Instrumentation?

Instrumentation和Activity有点类似,只不过Activity是需要一个界面的,而Instrumentation并不是这样的,我们可以将它理解为一种没有图形界面的,具有启动能力的,用于监控其他类(用Target Package声明)的工具类。

二、测试原理

Android 测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序可以精确控制应用程序。使用Instrumentation, 你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。 Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。

三、测试架构的特点

1、基于JUnit:Android的测试套件是基于JUnit的,我们呢,可以使用junit测试,而不调用android的api。

2、提供特定的用例类:Android JUnit扩展提供特定组件的测试用例类。这些类提供的辅助方法,用于创建模拟对象和方法,帮助你控制组件的生命周期。

3、不需要学习新的技术:测试套件中包含的测试包类似于主应用程序包,所以你不需要学习一套新的工具或技术来设计和建造的测试。

4、自动构建清单文件:我们使用sdk adt eclipse这些工具,能够自动的从被测程序中得到所需的信息。

四、框架图讲解

下图是app测试框架图

说明:mock其实就是android.test包下的一个模拟类

我们可以看到api中对mock的介绍,实用工具用于提供各种android框架的测试或者模拟。

说明:现在就开始说明这个最为关键的类InstrumentationTestRunner了

解释说此类是一个基于android包运行不同种类的测试例的Instrumentation。

五、下面的图片概要的描述了Android的测试环境:

在 Android中,测试程序也是Android程序,因此,它和被测试程序的书写方式有很多相同的地方。SDK工具能帮助你同时创建主程序工程及它的测试 工程。你可以通过Eclipse的ADT插件或者命令行来运行Android测试。Eclipse的ADT提供了大量的工具来创建测试用例,运行以及查看 结果。

关于Android使用Instrumentation做功能测试的时候遇到的一个问题

最近在看测试方面的东西,看到官网上有一个使用Instrumentation做功能测试的例子,自己敲了敲,但是在自己的手机上就是测不过. 经过调试,我发现是我手机上的输入法把输入事件拦截了,需要多输入一 ...

Android测试之Monkey

自己用的测试 C:\Users\Star>adb shell monkey -p com.cmstop.android --monitor-native-crashes -- pct-touch ...

转——Android测试之monkey

一.为什么要用Monkey 测试?   简单在说就是象猴子一样乱点,为了测试软件的稳定性,健壮性.号称最快速有效的方法.有时候运行相同系列的测试,即使是复杂的测试,但是以相同的顺序和路径,即使一遍又一 ...

android测试之——mokeyrunner上(二)

以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址 感谢您支持我的博客,我的动力是您的支持和关注!如若转载和使用请注明转载地址 ...

Python Appium 开启Android测试之路

1.获取 Android app的Activity 打开终端cmd,先cd进入到刚才下载的“新浪.apk”目录下,然后使用aapt dump badging xxx.apk命令获取包内信息.注意,启动 ...

Android 测试之Monkey

一.什么是Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进 ...

Android测试之查看package和activity名称的方法

方法一:使用aapt    //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下 1.命令行中切换到aapt.exe目录执行:aapt dump badging + 路径  ...

Android测试之 APK重签名方法

方法一:命令行重签名 D:\>keytool -helpkeytool 用法: -certreq [-v] [-protected] [-alias ] [-sigalg & ...

Android 使用Instrumentation进行界面的单元测试

如果我们要对一个Activity界面上的一个按钮的点击事件进行单元测试,则可使用ActivityInstrumentationTestCase2类来进行测试. 首先我们定义一个测试类: public ...

随机推荐

SpringMVC之HandlerMapping源码剖析(一)

学习一种知识,我喜欢看看源码是怎么进行它们类之间的关系以及方法的调用,是怎么实现的.这样我才感觉踏实. 既然现在谈到HandlerMapping,我们先知道HandlerMapping的作用:Hand ...

《深入理解Nginx》阅读与实践(四):简单的HTTP过滤模块

一.Nginx的HTTP过滤模块特征 一个请求可以被任意个HTTP模块处理: 在普通HTTP模块处理请求完毕并调用ngx_http_send_header()发送HTTP头部或调用ngx_http_o ...

HTML5 video 事件

1.获取视频时间长度 当视频载入video后,使用 onloadedmetadata 事件获取视频的时间长度. video.onloadedmetadata = function () { var v ...

常见dos命令

打开控制面板:win+r  control 服务: win+r  services.msc

ELT(数据仓库技术) 学习

ETL工具比较: https://blog.csdn.net/wjandy0211/article/details/78611801 ETL之kettle使用总结:(批量.含常量)csv入库: htt ...

PHP api接口和SQL数据库关联

数据库表创建 服务器环境配置.连接 .操作.数据库 API接口  原则:

mongodb的认证(authentication)与授权(authorization)

一小白瞎整mongodb,认证部分被折磨的惨不忍睹,看厮可怜,特查了一下文档,浅显地总结一下mongodb认证(authentication)与授权(authorization)的联系. 创建的所有用 ...

<构建之法>第一二三章感悟

第一章: 看了大概了解软件从一个想法到最终成品的一个过程.软件先是由一个想法引出的,有那个想法,你需要一个工具去做什么,根据自己想要的功能大概做一个能实现基本功能的软件,对客户提出的要求进行完善,实现 ...

Bomb HDU 3555 dp状态转移

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题意: 给出一个正整数N,求出1~N中含有数字“49”的数的个数 思路: 采用数位dp的状态转移方程 ...

android instrumentation 用法,android测试之——Instrumentation(一)相关推荐

  1. android layoutinflater用法,Android LayoutInflater的用法详解

    相信我们在开发过程中肯定接触过LayoutInflater,比如ListView的适配器里的getView方法里通过LayoutInflater.from(Context).inflater来加载xm ...

  2. android dispatchtouchevent 用法,android – 检测每个触摸事件,而不会覆盖dispatchTouchEvent()?...

    回答这可能对他人有帮助.答案将有助于需要拦截触摸事件的库. 如果你不想覆盖dispatchTouchEvent()(Imp,如果你是编程库)方法的活动,那么我们可以使用Window.Callback类 ...

  3. android surface用法,Android SurfaceView的基本使用

    一.为什么要SurfaceView 大多数情况下我们的自定义View都会选择去继承View或ViewGroup来实现,但是为什么系统还要为我们提供一个SurfaceView呢? 首先我们知道View类 ...

  4. android weakreference 用法,Android WeakReference的理解与使用

    前言: 看到篇帖子, 国外一个技术面试官在面试senior java developer的时候, 问到一个weak reference相关的问题. 他没有期望有人能够完整解释清楚weak refere ...

  5. android plurals用法(单复数)

    0.相关文章 android plurals用法 Android中的string资源占位符及Plurals string 1.使用 对一个给定的语言和数字来说,决定使用哪一个case的规则是很复杂的, ...

  6. android instrumentation 用法,Instrumentation的理解

    一般的应用不太会用到instrumentation,所以网上对其介绍也比较少. 但因其强大的跟踪application及activity生命周期的功能,用于android 应用测试框架中,被做为基类使 ...

  7. android instrumentation 用法,关于android instrumentation的理解、使用

    一般的应用不太会用到instrumentation,所以网上对其介绍也比较少. 但因其强大的跟踪application及activity生命周期的功能,用于android 应用测试框架中,被做为基类使 ...

  8. android instrumentation 原理,Android 运行Instrumentation Test的原理分析

    1. 准备 首先安装被测试程序和包含测试case的程序 包含测试case的程序的AndroidManifest中包含有这么一行配置: 其中targetPackage指定测试程序的包名 2.运行 adb ...

  9. android工具am的用法,Android am/pm命令用法

    am命令的参数介绍: usage: am [subcommand] [options] start an Activity: am start [-D] -D: enable debugging se ...

  10. android五大布局的用法,android:stretchColumns用法

    TableLayout是一个使用复杂的布局,最简单的用法就仅仅是拖拉控件做出个界面,但实际上,会经常在代码里使用TableLayout,例如做出表格的效果.本文主要介绍TableLayout的基本使用 ...

最新文章

  1. 剑指offer之斐波那契问题(C++/Java双重实现)
  2. 区块链企业级解决方案 ( Hyperledger )
  3. android 富文本编辑器_富文本编辑器原理探索
  4. CSS彻底研究(1)
  5. 【华为云技术分享】Linux软件安装的几种方法 (一)—— apt-get
  6. 分治法——查找问题 —— 寻找一个序列中第k小的元素和查找最大和次大元素
  7. Python爬取图片时,urllib提示没有属性urlretrieve的问题
  8. Android音视频开发之——音频非压缩编码和压缩编码,神级Android进阶笔记
  9. 考虑购买的 DELL 配置
  10. [转][darkbaby]任天堂传——失落的泰坦王朝(中)
  11. 数学与计算机学院女生节标语,女生节标语理学院
  12. 2023 抖音表情包小程序变现项目 详细玩法视频课程
  13. 第九届玲珑轻院校赛随笔
  14. ffmpeg 合并转换文件_使用FFmpeg转换媒体文件的快速指南
  15. Python中partial的使用
  16. 程序的指令和数据为什么分开存放?
  17. java游戏编程原理与实践教程_第18章青蛙过河游戏(Java游戏编程原理与实践教程课件).ppt...
  18. 反编译 APKTool 逆向助手
  19. 密集假目标 Matlab,基于盲源分离的抗密集假目标干扰技术研究.pdf
  20. 初识网络营销 | 什么是网络营销?

热门文章

  1. Win10下的Hp1020P打印机。
  2. 小游戏开发引擎CocosCreator
  3. 国家测绘局制定的测绘与地理信息行业标准统计 (20110706)
  4. XZ_icp金融经营许可证相关的文档和相关问题
  5. Windows下搭建FTP服务,FileZilla Server
  6. messagedigest 图片加密_通过MessageDigest实现简单的MD5加密
  7. 浅谈select2的使用
  8. vs2008 sp1 C++ 发布程序
  9. 【软件测试】软件测试的环境部署和安装教程[全]
  10. Java二维码生成代码