文档章节

Instrumentation

b
 bling1245
发布于 2018/05/11 16:47
字数 580
阅读 2
收藏 0

1、Instrumentation单元测试框架,基于Junit;Junit是java单元测试根本

2、想要进行自动化测试的基础:

  (1)对待测系统组建深入了解

  (2)系统测试框架分析

  (3)丰富的测试理论知识

3、安卓系统的组件:

  (1)Activity:应用程序的界面,每个界面都可成为一个Activity;Activity之间通过Intent通信;界面控件,用于监听并对用户的事件作出响应

  (2)Service:后台服务程序

  (3)Content Provider:将指定的数据集提供给其他应用程序,其他应用可以通过ContentResolver类获取数据。

  (4)Broadcast:通过通知栏显示消息。系统通过NotificationManager通知其他组件,也可以通过启动一个Activity或者Service来响应接收到的消息

4、安卓测试套件基于:Junit、Instrumentation;对于调用安卓组件的项目:可以通过Instrumentation进行单元测试或者自动化测试。

5、Instrumentation类通过“hooks”控制安卓组件的生命周期和安卓系统加载应用程序。

6、所有控件都运行在同一个进程中,无法将一个应用个另外一个应用在同一个进程中运行。

7、Instrumentation API:

  (1)getActivity():获取应用;未调用此方法时,应用不会启动

  (2)findViewById()

  (3)setSpinnerPosition():设置下拉列表框位置

  (4)getSpinnerPosition():获取下拉列表框当前位置

  (5)assertEquals():判断

8、完整的自动化用例:

  (1)开始前的资源准备-------------------Setup()方法------黑盒测试中的“预置条件”

  (2)用例步骤执行以及验证点检验----Assert()方法-----黑盒测试中的“测试步骤”

  (3)测试用例结束后的环境清理----Teardown()方法

9、Junit原理:类似于黑盒测试;都会考虑执行前的“前提条件”,用例执行结束之后对测试环境进行“清理”,以确保每个用例相对独立。Junit利用断言(assert)将一个个检查点封装好。

 

  框架代码如下:

    setUp(){...}

      testMethod1(){...}

      testMethod2(){...}

    tearDown(){...}

 

10、常见断言:

  (1)assertTrue([String msg] , boolean condition)判断条件是否为真

  (2)assertFalse([String msg] , boolean condition)判断条件是否为假

  (3)assertEquals([String msg] , expected , actual)判断预期值与实际值是否一致

  (4)assertNull([String msg] , java.lang.Object object)判断值是否为空

© 著作权归作者所有

b
粉丝 0
博文 34
码字总数 18632
作品 0
南京
QA/测试工程师
私信 提问
Android Instrumentation,单元测试,白盒测试,自动化测试

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

desaco
2018/10/24
0
0
AndroidManifest.xml文件详解(instrumentation)

语法(SYNTAX): 被包含于(CONTAINED IN): 说明(DESCRIPTION): 这个元素声明了一个Instrumentation类,这个类能够监视应用程序跟系统的交互。Instrumentation对象会在应用的其他所有组...

长平狐
2012/10/16
409
0
Hook 应用入口 Activity

问题 假如你现在要开发一个 SDK,比如说广告SDK吧,你希望在应用的入口 Activity 之前插入你的 Activity,在你的 Activity 中显示广告, 怎么做? 我看过联通沃商店的做法, 要求接入方声明自...

大利猫
2017/12/09
0
0
Instrumentation.sendPointerSync()与MotionEvent.setSource() 模拟按键及事件反控

Robotium基于Instrumentation的二次封装,然而UiAutomation 也能通过instrumentation.getUiAutomation()拿到。 android的输入事件处理, 大多跟InputReader, InputManager, InputManagerServ......

desaco
06/02
0
0
[Android] - 如何写Instrumentation UT Manifest.xml

最近因Android项目需要,开始写一些unit test. 基础原理及一般流程可参照SDK,这里主要想说说UT的配置文件AndroidManifest.xml的一些注意事项。 UT工程的AndroidManifest.xml基本结构当然跟普...

teaspring
2014/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka再平衡机制详解

所谓的再平衡,指的是在kafka consumer所订阅的topic发生变化时发生的一种分区重分配机制。一般有三种情况会触发再平衡: consumer group中的新增或删除某个consumer,导致其所消费的分区需要...

爱宝贝丶
13分钟前
5
0
element 验证 请输入大于0的整数

data() { var validatePass = (rule, value, callback) => { // if (value <= 0) { // callback(new Error('请输入大于0的整数')); // } else { // c......

沉迷代码我爱学习
24分钟前
3
0
报表工具花钱or开源?我对比了这6个工具

近一年都在处理报表问题,调研了不少报表工具,也开发了适合公司业务的报表应用。分享一些关于如何选择报表工具的个人观点,希望对你有参考作用。 对于大部分企业来说,能花时间和人力去开发...

帆软
24分钟前
2
0
自建redis笔记--Redis cluster搭建

Redis cluster搭建 2018年十月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂度大大降...

北极之北
24分钟前
2
0
分享一个在caffe中实现的yolo层

这是别人实现的,是我移植到cc的cpu实现,可以实现caffe中使用yolo3,但是我感觉实际效果不如darknet 好点 template <typename Dtype>inline Dtype sigmoid(Dtype x){return 1. / (1. ...

开飞色
26分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部