新手学robotium-robotium初探

新手学robotium-robotium初探这个月正式开始robotium的学习,生命不止,学习不止。作为一个初学者的我,尝试完了monkey跟monkeyrunner之后,严重意识到移动端也有更加高深的测试艺术。借用其他文章的话来说,这不仅是

大家好,又见面了,我是你们的朋友全栈君。

  这个月正式开始robotium的学习,生命不止,学习不止。作为一个初学者的我,尝试完了monkey跟monkeyrunner之后,严重意识到移动端也有更加高深的测试艺术。借用其他文章的话来说,这不仅是一门技术,而且是一门艺术。本系列将根据我的自学进度来写,凡事尝试了才会知道能不能行。本文将介绍robotium,不谈其他。

  robotium 是 android 自带类 Instrumentation 的一个封装,方便测试人员直接调用封装好的接口,也就是说,实际上我们直接使用Instrumentation 也能够进行自动化测试,但robotium可以简化我们的测试步骤,我们只需要调用某个robotium的API,传几个参数,就等于我们在调用一部分的Instrumentation帮我们实现测试。

  但是他是Instrumentation的优化版。为何这么说?请看以下几点(原文摘录自Android应用实战与调试91页):  

  1.robotium 测试用例虽然也是从 ActivityInstrumentationTestCase2 基类继承下来,但一般不会使用一个活动类型实例化 ActivityInstrumentationTestCase2 泛型类这是因为 robotium 一般用作集成测试,在一个测试过程中会同时测试到多个活动,只指定一个活动类型在逻辑上不成立,有时可以用待测应用的主界面来实例化它,但在没有应用源码时就无法在编译引入活动类型了。Java 语言建议给泛型类指定一个类型进行实例化,为了规避这个编译警告,需要在测试类型加上 SuppressWarnings(“rawtypes”) 标签。

  2.由于测试类型没有指定待测活动类型,因此在类型的构造函数里,采用反射机制通过应用主界面的类型名称获取其类型构造测试用例,如代码的第 16 行。

  3.在测试的准备函数 setUp 中,一般会通过调用 getInstrumentation() 和 getActivity()函数获取当前测试的仪表盘对象和待测应用启动的活动对象,并创建 robotium 自动化测试机器人 solo。跟仪表盘测试用例中的 setUp 函数一样,禁用触控模式、创建启动活动的意图对象这些操作都应该在 getActivity() 函数之前调用,如第 20 行。4)因为 robotium 进行的是集成测试,在测试过程中可能会打开多个活动,所以在测试结束后的扫尾函数 tearDown 中,会调用 robotium API 关闭所有的已打开活动,为后面执行的测试用例恢复测试环境。

  robotium 的 API 设计类似后文将要讲解的 selenium 的机器人测试方式,可以将 solo 对象看成一个机器人,它的每个 API 可以看成机器人可以执行的一个动作,如 waitForView、searchButton 等,robotium 的 API 名称都采用谓语 + 宾语的方式命名,而且每个 API 都有完整的注释说明.

  他的优点如下:

  • Quite popular for android testing
  • 可以对源码测试,也可以测试apk,可白盒可黑盒
  • 可以测试Android Native和Android Hybrid App
  • 可以测试网络链接和声音等
  • Open Source
  • Robotium的特性和好处如下:
    •Robotium帮助我们快速编写强大的用最少的测试用例
    被测试的应用程序的知识。
    •Robotium提供api来直接与UI控件内的交互
    Android应用程序,比如EditText TextView,按钮。
    •Robotium正式支持安卓1.6及以上版本。
    •Robotium Android平台不修改。
    •Robotium测试也可以使用命令提示符下执行。
    •Robotium可以集成顺利,Maven或Ant。这有助于
    Robotium添加到项目的构建自动化的过程。
  • 测试应用程序项目和项目运行在相同的应用程序
    JVM,Dalvik虚拟机(数字式电压表)。
    •可以运行Robotium没有源代码。
    •Robotium可以与其他测量代码覆盖率工具,如
    Cobertura和艾玛。
    •Robotium可以检测的消息显示在屏幕上(祝酒)。
    •Robotium支持Android特性等活动,菜单,和
    上下文菜单。
    •Robotium自动化测试可以很快实现。Robotium
    是建立在JUnit,它继承了JUnit的所有特性。
    Robotium框架自动处理多个活动
    在一个Android应用程序。
    •Robotium测试用例是突出可读性,相比标准
    仪器测试。
    •滚动Robotium框架活动是自动处理的。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154669.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月1日 下午2:16
下一篇 2022年7月1日 下午2:16


相关推荐

  • PyCharm 2021.11.3激活工具【最新永久激活】「建议收藏」

    (PyCharm 2021.11.3激活工具)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~92…

    2022年3月29日
    656
  • 运行时常量池与字符串常量池_常量池是什么

    运行时常量池与字符串常量池_常量池是什么文章目录1)方法区包含哪些内容?2)运行时常量池存在什么地方?3)取消永久代后,方法区的实现?4)字符串常量池和运行时常量池究竟去了哪里?4)元空间是什么?5)关于为什么移除永久代?5)补充        我们知道在JDK1.8中取消了永久代,区而代之使用了元空间来实现方法区。话虽如此,但是关于字符串常量池和运行时常量池的模棱两可的说法一直都是争论不休的。1)方法区包含哪些内容?方法区包含哪些内容,摘录自《java虚拟机规

    2022年7月28日
    8
  • 海思hi3516ev100开发板_海思V200

    海思hi3516ev100开发板_海思V2001安装ubunu14我的ubuntu14如下#uname-aLinuxubuntu4.4.0-142-generic#168~14.04.1-UbuntuSMPSatJan1911:26:28UTC2019x86_64x86_64x86_64GNU/Linux2软件包安装步骤1.配置默认使用bash执行sudodpkg-recon…

    2026年2月22日
    4
  • Junit5使用示例

    Junit5使用示例junit5 使用详解

    2026年3月17日
    1
  • 互斥锁(mutex)

    互斥锁(mutex)Linux 中提供一把互斥锁 mutex 也称之为互斥量 每个线程在对资源操作前都尝试先加锁 成功加锁才能操作 操作结束解锁 但通过 锁 就将资源的访问变成互斥操作 而后与时间有关的错误也不会再产生了 但 应注意 同一时刻 只能有一个线程持有该锁 当 A 线程对某个全局变量加锁访问 B 在访问前尝试加锁 拿不到锁 B 阻塞 C 线程不去加锁 而直接访问该全局变量 依然能够访问 但会出

    2026年3月20日
    2
  • Pycharm安装Qt Design快捷工具

    Pycharm安装Qt Design快捷工具在使用 Python 开发 Gui 程序可以使用 QtDesign 工具进行界面设计 下面记录在 Pycharm 中设置 QtDesign 快捷工具和如何把 QtDesign 中图形化的 ui 界面文件转化成 py 文件步骤一 1 Qt Designer 快捷工具名称 2 填写 Qt 安装的路径 designer exe 3 ProjectFileD PyUIC 快捷工具名称 2 python 的安装目录 3 mPyQt5 uic pyuicFileNam

    2026年3月26日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号