我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android自动化测试解决方案

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android自动化测试解决方案

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

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

  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。

  为了了解更多LessPainful提供的服务细节,我们采访了LessPainful公司的CEO Jonas Maturana Larsen。下面是这次简短的访问:

  InfoQ:在不同版本的Android上运行应用程序,存在什么问题?为了保证程序能正常运行,开发者需要在Android的每一个版本上测试他的应用吗?

  JML:举个例子,SAXParser在Android 2.2之前有一个bug存在于对ContentHandler.startElement的回调中,它导致应用产生错误的行为。

  到目前为止,我们已经在很多方面发现了不同操作系统版本间的差异性。其中一些可能在2.1-update1上导致崩溃,但可以正常运行于2.1-update3和2.2.

  InfoQ:不同的设备对Android来说,有没有真正的区别?你能否给我们举个例子,比如Android2.2应用可以运行在HTC但不能运行于Samsung?(或其他各种Android版本和设备制造商的组合)

  JML:在LG手机,HorizontalScrollViews有时会导致子视图上的背景图片消失。这个问题存在于我们测试的所有的LG手机,不管Android版本是多少。

  如果你不自己处理这类问题,它将导致你的应用在不同设备上不尽相同。例如,Motorola将会用红色边框来高亮一个输入域。在我曾经参与的一个项目中,我们用同样的红色边框来表示输入有误。

  还有一些问题,与其说和制造商相关,不如说是和硬件相关:比如,一些手机使用了较小的RAM和高分辨率的摄像头,当你处理手机上的图像时会将导致崩溃。

  InfoQ:这些测试是如何执行的?

  JML:测试如同运行一个ActivityInstrumentationTestCase2,主要使用Robotium来运行。我们对应用所做的修改是去掉已有的签名,再为它重新生成我们的签名文件。

  在测试运行完成后,应用会被卸载,而手机也会被恢复到初始设置。

  InfoQ:与MonkeyRunner,Robotium和Robolectric相比,你们所提供的服务有什么优势呢?

  JML:LessPainful是一种服务,而并不仅仅是一种架构。我们希望创建一种服务,不但使测试能够进行,并且比起其他任何一种架构,它能够节省我们大量测试时间,还能够帮助我们发现更多的bug。

  另外,我们相信使用Cucumber,可以清晰地定义高层次测试描述,同时可以更好地被开发团队以外的人员共享。

  以Git领域为例,我们更希望成为像是GitHub那样,而不只是通常的git库。

  InfoQ:你们有计划未来要支持更多的设备吗?

  JML:是的。我们计划继续增加对更多设备的支持。如果有这样的要求提出,我们会努力完成它。

  目前,我们也在着手于对iOS设备的支持,希望beta版能在今年秋季发布。

  InfoQ:什么是LessPainful企业版?

  JML:我们将提供一个工具集,它类似于一个Mac Mini,但我们会非常灵活的满足顾客的需求。LessPainful企业版目前还没有正式推出,所以敬请期待。

     英文原文:Automated Testing Solutions for Android         转自:http://www.infoq.com/cn/news/2011/10/Android-Testing


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android自动化测试解决方案

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android自动化测试解决方案

现在,已经有大量的Android自动化测试架构或工具可供我们使用,其中包括:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolectric。另外LessPainful也提供服务
2022-06-06

C/C++ 单元自动化测试解决方案实践

本文主要介绍如何利用GCC插件来实现提升C/C++开发者的单元效率工具解决方案,希望对大家在提升单元测试效率上有所启发。

Go语言性能测试的自动化解决方案

go语言自动化性能测试解决方案:使用vegeta和goconvey框架。该解决方案包括以下步骤:使用vegeta创建攻击或负载测试。使用goconvey进行bdd测试,验证服务器响应是否为200 ok。使用vegeta的histogram以
Go语言性能测试的自动化解决方案
2024-05-07

Android自动化测试

操作对话框(Dialog)上面的控件Robotium框架提供了获取、操作控件的API,如下图:对于有id或者String的控件可以通过Robotium直接找到,但是对于弹出的Dialog上面的控件单纯的利用Robotium的API是行不通的
2022-06-06

Android monkeyrunner自动化测试

monkeyrunner测试主要是通过编写一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。由于SDK是旧版本,暂时无法获取自定义屏幕上的组件焦点,所以通过
2022-06-06

Golang自动化解决方案

go语言凭借并发性和高性能,非常适合自动化解决方案。实现在线抓取示例:1. 创建http客户端2. 制作http请求3. 解析html响应4. 提取数据。go语言在自动化领域的优势包括:并发性、高性能和可读性。Go 语言自动化解决方案前言
Golang自动化解决方案
2024-04-08

Ubuntu Spark集群的自动化测试方案

Ubuntu Spark集群的自动化测试方案可以帮助确保集群的稳定性和可靠性。以下是一个基本的自动化测试方案,包括测试目标、工具选择、测试场景和测试执行等方面的内容。测试目标验证集群的部署和配置:确保集群能够正确安装和配置。验证集群的功
Ubuntu Spark集群的自动化测试方案
2024-10-22

Android移动端自动化测试,Sele

Android移动端自动化测试,Selenium3自动化测试,Python3 测试,Java接口测试21套高级软件测试,性能测试,功能测试,自动化测试,接口测试,移动端测试,手机测试,WEB测试,***测试,测试用例设计,黑盒测试,白盒测试
2023-01-31

Android自动化测试的方法是什么

本篇内容介绍了“Android自动化测试的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!自动化测试自动化测试指软件测试的自动化,在
2023-06-05

移动设备Android平台自动化测试方法

  在编写Android自动化测试用例的时候,可能会碰到这样的情况,在一个Android版本的模拟器上运行的好好的测试用例,在另一个版本的Android模拟器上运行不正常了。基本症状是,在测试代码里获取一个View的实例,然后通过robo
2022-06-06

Android手机测试的自动化测试工具

Android自动化测试相对来说还是比较难,Instrumentation比较难以使用。下面和大家分享一个Android自动化测试工具Robotium。Robotium是一款测试Android App的测试框架,它使得编写黑盒测试代码更加容
2022-06-06

android自动化测试怎么做

Android自动化测试可以通过以下几个步骤来进行:1. 选择测试框架:Android提供了多个测试框架,如JUnit、Espresso、UI Automator等。根据需求选择合适的测试框架。2. 编写测试用例:根据需求和功能,编写测试用
2023-10-07

详解渗透测试和漏洞扫描的开源自动化解决方案

在本文中,我们将探讨漏洞扫描和渗透测试领域,重点介绍每个步骤中所涉及的各个阶段之间的微妙差异和相似之处。最后,我们还将详细介绍几个专注于任务自动化的工具。为了让大家更容易理解,我们将对渗透测试和漏洞评估的基本步骤进行分解。

关于Android下的自动化测试

前言:现在 Android 开发非常红火,Java环境下敏捷开发是不二选择。而敏捷开发都是测试驱动。所以,近研究了一下Android下的各种自动化测试手段。本文重点在于面上的比较而非点上的细节。时间比较短,所以很可能理解很不充分。测试手段1
2022-06-06

Android UI自动化测试佳实践

一、概述Android系统测试和Web的测试类似,有两类自动化的方式:录制回放与手动开发自动化case。由于录制回放在长期维护与代码重用方面存在问题,这里主要的方式还是采用手动开发自动化case来进行。在Web自动化测试中有一个比较好的实践
2022-06-06

BDD自动化测试利器-Android篇

我接触了当前市场上大多数的android端的自动化测试架构,也研究了一些偏门左道的一些测试工具,而当我见到calabash这套框架时,内心还是小小的开心了一下。优势先说一下calabash的优点,这样大家可能更有兴趣看下去:1.calaba
2022-06-06

Android JUnit test 进行自动化测试

一. 被test的工程:新建一个android工程:D_session;它有一个activity:D_sessionActivity;package名:com.mysession二.测试工程:新建一个测试工程:D_sessionTest,
2022-06-06

Android系统自动化测试简述

入职两月有余,从之前的android app开发到现在的测试框架开发,工作中遇到很多问题,趁这次机会分享一下。Android自动化测试目前可借鉴的经验不多,现在采取的方式是通过java代码对Activity和View进行操作,目前已知的入口
2022-06-06

Android自动化测试用例规范

目的:指导没接触过界面自动化的开发快速上手,不偏离正轨。不是自动化编码规范。安装/卸载测试用例当安装应用程序测试用例启动时,如果应用程序已被安装,首先执行卸载应用程序安装应用程序使用配置文件中设定的程序路径验证应用程序被安装,验证应用程序版
2022-06-06

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录