1.导入被测试的源码

我们先下载加你计算器源码,下载地址:

https://robotium.googlecode.com/files/AndroidCalculator.zip

如果地址被墙无法现在下面网盘地址也可以下载:

链接: http://pan.baidu.com/s/1c2e8McC 密码: vsj8

 

打开eclipse,点击File-Import

选择Existing Projects into Workspace,点击Next

 

选择Select archive file,选择下载下来的源码压缩包,点击Finish。

 

导入的项目如果有红色的错误提醒,可以点击项目然后鼠标右键选择属性,然后选中Android选项,然后在右侧窗口选中一个Project Build Target即可

 

2.新建测试工程

File-New-Android-Android Test Project

 

在Project Name输入工程名:AndroidCalculatorTest,点击Next

在新出现的窗口中选择刚才导入的计算机源码,点击Finish,即可新建一个测试工程

 

3.添加Robotium jar

如下地址下载最新的Robotium jar的包

http://dl.bintray.com/robotium/generic/

在之前建好的测试项目下,新建libs文件夹,将下载下来的jar文件放到该文件夹下。鼠标右键该jar选择Build Path,然后选择Add To Build Path

 

4.新建一个自动化测试类

新建一个Java类,继承ActivityInstrumentationTestCase2<Main>

代码如下:

package com.calculator.test;

import android.test.ActivityInstrumentationTestCase2;

import android.widget.EditText;

import android.widget.TextView;

import com.calculator.Main;

import com.robotium.solo.Solo;

import com.calculator.R;

@SuppressWarnings("rawtypes")

public class MainTest extends ActivityInstrumentationTestCase2 {

    private Solo solo;

    @SuppressWarnings("unchecked")

    public MainTest() {

        super(Main.class);

        // TODO Auto-generated constructor stub

        }

        @Override

        protected void setUp() throws Exception {

            super.setUp();

            solo = new Solo(getInstrumentation(), getActivity());

        }

        public void testDisplayWhiteBox() {

            float vFirstNumber = 10;

            float vSecondNumber = 10;

            float vResult = vFirstNumber * vSecondNumber;

            EditText vFirstEditText = (EditText) solo.getView(R.id.EditText01);

            solo.clearEditText(vFirstEditText);

            solo.enterText(vFirstEditText, String.valueOf(vFirstNumber));

            // AccessSecondvalue(edit-filed)andputtingSecondNumbervalueinit

            EditText vSecondEditText = (EditText) solo.getView(R.id.EditText02);

            solo.clearEditText(vSecondEditText);

            solo.enterText(vSecondEditText, String.valueOf(vSecondNumber));

            // ClickonMultiplybutton

            solo.clickOnButton("Multiply");

            assertTrue(solo.searchText(String.valueOf(vResult)));

            TextView outputField = (TextView) solo.getView(R.id.TextView01);

            // Assert to verify result with visible value

            assertEquals(String.valueOf(vResult), outputField.getText().toString());

        }

        @Override

        protected void  tearDown() throws Exception {

            solo.finishOpenedActivities();

        }

}

 

5.运行robotium测试用例

确保设备已成功连接到电脑,可在Windows命令行下,通过adb devices查看设备有没有成功连接,同时确保设备处于唤醒、解锁状态下,当然也可选择在模拟器中运行。然后在测试类中右击鼠标,选择Run As -> Android JUnit Test

 

观察手机或者模拟器,会自动化启动计算器APP,然后自动填充在测试类中写的两个数值,然后点击计算按钮,最后匹配结果是否与预期一致。如果与预期相符,会有绿色的进度条表示用例执行通过,反之会显示红色的条幅。

就这样成功的运行了第一个robotium的自动化用例。

模拟器推荐使用Genymotion,直接下载 .exe,双击安装。

官网地址:https://www.genymotion.com/download/

下载地址:链接: http://pan.baidu.com/s/1nv3YXZz 密码: 3u93

robotium从入门到放弃 二 第一个实例的更多相关文章

  1. hive从入门到放弃(二)——DDL数据定义

    前一篇文章,介绍了什么是 hive,以及 hive 的架构.数据类型,没看的可以点击阅读:hive从入门到放弃(一)--初识hive 今天讲一下 hive 的 DDL 数据定义 创建数据库 CREAT ...

  2. robotium从入门到放弃 三 基于apk的自动化测试

      1.apk重签名   在做基于APK的自动化测试的过程中,需要确保的一点是,被测试的APK必须跟测试项目具有相同的签名,那怎么做才能确保两者拥有相同的签名呢?下面将给出具体的实现方法. 首先将被测 ...

  3. FlaskWeb开发从入门到放弃(二)

    第5章 章节五 01 内容概要 02 内容回顾 03 面向对象相关补充:metaclass(一) 04 面向对象相关补充:metaclass(二) 05 WTforms实例化流程分析(一) 06 WT ...

  4. Go语言从入门到放弃(二) 优势/关键字

    本来这里是写数据类型的,但是规划了一下还是要一步步来,那么本篇就先介绍一下Go语言的 优势/关键字 吧 本章转载  <The Way to Go>一书 Go语言起源和发展 Go 语 言 起 ...

  5. 我与PHP和git不得不说的故事(梦开始的地方,从入门到放弃记录第一章)

    ·关于下载 阿瑶瑶跟wampsever官网搏斗了一下午,其实我觉得教材可能在PUA我.谷歌说它给的网址安全证书过期,然后下载以断网收场.(阿瑶的第一战,以失败告终) [经过我玲姐指点,下载路径变为迅雷 ...

  6. WPF从入门到放弃系列第一章 初识WPF

    什么是WPF WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分.它提供 ...

  7. robotium从入门到放弃 四 Robotium常用API

      获取控件 getText() getEditText() getButton() getImage() getImageButton() getEditText() getView() getWe ...

  8. robotium从入门到放弃 一 测试开发环境搭建

    1.JDK的安装及环境变量的配置    配置JAVA的运行环境,添加完环境变量后,可以打开Windows命令处理程序窗口,通过执行命令java -version验证环境变量是否添加成功.如果添加成功会 ...

  9. storm从入门到放弃(二),任务分配过程-核心机密

    背景:目前就职于国内最大的IT咨询公司,恰巧又是毕业季,所在部门招了100多个应届毕业生,本人要跟部门新人进行为期一个月的大数据入职培训,特此将整理的文档分享出来. 原文和作者一起讨论:http:// ...

随机推荐

  1. idx_rebuild_diff_idx_l.sql

    1. set echo on feedback on set timing on set time on set pagesize 1000 set linesize 150 spool 02_do_ ...

  2. 程序员 10Tips

    理解技术债务 技术债务就像信用卡一样,会有很高的利息率,时间越长,修复所花的代价就越大,程序员对这个要有深刻的认识.同时团队应该培养一种保证设计质量的文化,应当鼓励重构.同时也应当鼓励其它有关代码质量 ...

  3. springMVC和json结合传递数据

    1. 新建web project 2. 增加jar 3. 改写web.xml <?xml version="1.0" encoding="UTF-8"?& ...

  4. Bridge 设计模式

    原文:http://www.linkedkeeper.com/detail/blog.action?bid=26 You are here:  架构&实践 - 设计模式 Frank     2 ...

  5. Counting Haybales

    Counting Haybales 题目描述 Farmer John is trying to hire contractors to help rearrange his farm, but so ...

  6. js中判断输入框是否为空(判断是一串空的字符串)

    function ltrim(str) {  if(str.length==0)    return(str);   else {    var idx=0;    while(str.charAt( ...

  7. 浏览器兼容问题 chrome iframe location href

    报了个错 var dt2=new Date(d2Arr[0],d2Arr[1],d2Arr[2]); if(dt1>dt2){//比较日期 alert("开始日期不能晚于结束日期!&q ...

  8. DHCP配置部分

    1.DHCP工作过程 dhcp discover \\客户端请求服务器器提供地址 dhcp offer \\服务器提供ip地址 dhcp request \\客户端租用ip地址 dhcp ack \\ ...

  9. OpenCV学习(20) grabcut分割算法

    http://www.cnblogs.com/mikewolf2002/p/3330390.html OpenCV学习(20) grabcut分割算法 在OpenCV中,实现了grabcut分割算法, ...

  10. NodeJs与ActionScript的GET和POST通讯

    今天项目遇到一个小问题,做了个小功能,向服务端发送GET请求,但是服务端解析数据是时候报语法错误,如下: make Request data error:SyntaxError: Error #113 ...