robotium从入门到放弃 二 第一个实例
1.导入被测试的源码
我们先下载加你计算器源码,下载地址:
如果地址被墙无法现在下面网盘地址也可以下载:
链接: 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的包

在之前建好的测试项目下,新建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从入门到放弃 二 第一个实例的更多相关文章
- hive从入门到放弃(二)——DDL数据定义
前一篇文章,介绍了什么是 hive,以及 hive 的架构.数据类型,没看的可以点击阅读:hive从入门到放弃(一)--初识hive 今天讲一下 hive 的 DDL 数据定义 创建数据库 CREAT ...
- robotium从入门到放弃 三 基于apk的自动化测试
1.apk重签名 在做基于APK的自动化测试的过程中,需要确保的一点是,被测试的APK必须跟测试项目具有相同的签名,那怎么做才能确保两者拥有相同的签名呢?下面将给出具体的实现方法. 首先将被测 ...
- FlaskWeb开发从入门到放弃(二)
第5章 章节五 01 内容概要 02 内容回顾 03 面向对象相关补充:metaclass(一) 04 面向对象相关补充:metaclass(二) 05 WTforms实例化流程分析(一) 06 WT ...
- Go语言从入门到放弃(二) 优势/关键字
本来这里是写数据类型的,但是规划了一下还是要一步步来,那么本篇就先介绍一下Go语言的 优势/关键字 吧 本章转载 <The Way to Go>一书 Go语言起源和发展 Go 语 言 起 ...
- 我与PHP和git不得不说的故事(梦开始的地方,从入门到放弃记录第一章)
·关于下载 阿瑶瑶跟wampsever官网搏斗了一下午,其实我觉得教材可能在PUA我.谷歌说它给的网址安全证书过期,然后下载以断网收场.(阿瑶的第一战,以失败告终) [经过我玲姐指点,下载路径变为迅雷 ...
- WPF从入门到放弃系列第一章 初识WPF
什么是WPF WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分.它提供 ...
- robotium从入门到放弃 四 Robotium常用API
获取控件 getText() getEditText() getButton() getImage() getImageButton() getEditText() getView() getWe ...
- robotium从入门到放弃 一 测试开发环境搭建
1.JDK的安装及环境变量的配置 配置JAVA的运行环境,添加完环境变量后,可以打开Windows命令处理程序窗口,通过执行命令java -version验证环境变量是否添加成功.如果添加成功会 ...
- storm从入门到放弃(二),任务分配过程-核心机密
背景:目前就职于国内最大的IT咨询公司,恰巧又是毕业季,所在部门招了100多个应届毕业生,本人要跟部门新人进行为期一个月的大数据入职培训,特此将整理的文档分享出来. 原文和作者一起讨论:http:// ...
随机推荐
- JSP内置对象--out对象(了解即可)
out对象是javax.servlet.jsp.JspWriter类的实例化对象,主要功能就是完成页面的输出操作,使用println()或print()输出.但是使用纪律很少,都会使用表达式完成输出的 ...
- Mysql中int(2)和int(10)的区别
int(N)中的N不是限制字段取值范围的,int的取值范围是固定的(0至4294967295)或(-2147483648至2147483647) 那么N这个值是为了在字段中的值不够时补零的,但是必须含 ...
- NDK常用命令
NDK Build 用法(NDK Build) 1.ndk-build的用法 Android NDKr4引入了一个新的.小巧的shell脚本ndk-build,来简化源码编译. 该文件位于NDK根 ...
- mariadb cache1
http://www.percona.com/blog/2006/07/27/mysql-query-cache/ MySQL Query Cache July 27, 2006 by Peter Z ...
- 【HighCharts系列教程】七、导出属性——exporting
一.exporting属性说明 默认情况下,HighCharts支持将图表导出为图片或打印功能的.也就是在图表的右上角有两个按钮.打击即可进行相应的操作. 实现导出和打印功能需要引入相应的js文件,也 ...
- webView缩放
self.webview.scalesPageToFit = YES; 可以让webView内容用缩放手势放大或缩小
- DHCP详解
概述 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分 ...
- JavaScript 逗号表达式
逗号表达式的一般形式是:表达式1,表达式2,表达式3……表达式n 逗号表达式的求解过程是:先计算表达式1的值,再计算表达式2的值,……一直计算到表达式n的值.最后整个逗号表达式的值是表达式n的值. ...
- Tokumx 代替 Mongodb 群集部署
一, 配置环境: 系统: CentOS 7 x64 tokumx1 ip: 192.168.0.155 tokumx2 ip: 192.168.0.156 tokumx3 ip: 192.168.0. ...
- opencv图像特征检测之斑点检测
前面说过,图像特征点检测包括角点和斑点,今天来说说斑点,斑点是指二维图像中和周围颜色有颜色差异和灰度差异的区域,因为斑点代表的是一个区域,所以其相对于单纯的角点,具有更好的稳定性和更好的抗干扰能力. ...