Robotium---环境搭建及入门示例
Robotium是一款基于控件的Android自动化测试框架
环境搭建(window):
安装JDK以及集成Android Sdk的eclipise。
入门:
1,下载Robotium Solo 5.1,点我下载
2,开启eclipse,并导入工程(代码在最下面)
3,创建测试工程
new --- project --- Android Test Project
4,输入测试工程名,然后点击next
5,选择被测工程TButton,并点击finish
6,在测试工程中创建libs文件夹(有的教程是创建lib的文件夹的,这里需要说明一下,如果是比较新的ADT的话,项目根下新建一个libs目录,把jar包放在哪个目录里,会自动添加到build path里去,只有就能正确引用到了。)
7,将下载的robotium-solo-5.1.jar文件拷到libs文件夹
8,将测试工程中的AndroidManifest.xml文件修改如下(一般情况下,创建完工程会自动添加的,若没有请自行添加)
9,创建junit test case,选择junit4,并输入类名,点击finish
10,打开新建的测试类,修改继承ActivityInstrumentationTestCase2,并创建该类的构造函数,引用方法setUp()和tearDown()
11,编写完测试用例后,连上设备,右击测试类,选择Android junit Test,此时就会开始执行测试用例了。
Ps:如果运行时,报如下错误
则是因为没有引入juint,查看配置里面是否勾选了junit。
Project --> Properties --> Java Build Path --> Order and Export
测试用例源码:
- package com.tangbc.tbutton.test;
- import org.junit.Test;
- import android.test.ActivityInstrumentationTestCase2;
- import com.robotium.solo.Solo;
- import com.tangbc.tbutton.MainActivity;
- public class TButtonTest extends ActivityInstrumentationTestCase2{
- private Solo solo;
- public TButtonTest() {
- super(MainActivity.class);
- }
- @Override
- protected void setUp() throws Exception {
- solo = new Solo(getInstrumentation(),getActivity());
- }
- @Override
- protected void tearDown() throws Exception {
- solo.finishOpenedActivities();
- }
- @Test
- public void test() {
- //solo.clickOnMenuItem("Settings");
- for (int i = 0; i < 10; i ++){
- solo.clickOnButton("原始数据");
- }
- solo.clickOnButton("跳转");
- solo.goBack();
- solo.clickOnButton("原始数据");
- }
- }
被测工程源码:
主页面:
- package com.tangbc.tbutton;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- public class MainActivity extends Activity {
- private Button button;
- private TextView textView;
- private static int i = 0;
- private Button skipButton;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- button = (Button)findViewById(R.id.button);
- textView = (TextView)findViewById(R.id.textView);
- button.setOnClickListener(new ButtonListener());
- skipButton = (Button)findViewById(R.id.skipbutton);
- skipButton.setOnClickListener(new SkipButtonListener());
- }
- class ButtonListener implements OnClickListener{
- @Override
- public void onClick(View v) {
- i++;
- System.out.println(i);
- textView.setText(String.valueOf(i));
- }
- }
- class SkipButtonListener implements OnClickListener{
- @Override
- public void onClick(View v) {
- Intent intent = new Intent();
- intent.setClass(MainActivity.this, SceondAcitvity.class);
- startActivity(intent);
- }
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }
副页面:
- package com.tangbc.tbutton;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- public class SceondAcitvity extends Activity{
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.second);
- Intent intent = getIntent();
- }
- }
本文参考:http://www.robotium.cn/archives/210
【转:http://blog.csdn.net/tt75281920/article/details/25967351】
Robotium---环境搭建及入门示例的更多相关文章
- jenkins 环境搭建与入门示例
环境说明: 1.win7 2.tomcat 9.0.0.M17 3.jenkins 2.32.2.war jenkins 环境搭建 1.下载jenkins部署包 https://jenkins.io/ ...
- 安卓自动化测试(2)Robotium环境搭建与新手入门教程
Robotium环境搭建与新手入门教程 准备工具:Robotium资料下载 知识准备: java基础知识,如基本的数据结构.语法结构.类.继承等 对Android系统较为熟悉,了解四大组件,会编写简单 ...
- Cesium入门2 - Cesium环境搭建及第一个示例程序
Cesium入门2 - Cesium环境搭建及第一个示例程序 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 验 ...
- Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通
原文:Android菜鸟的成长笔记(1)--Android开发环境搭建从入门到精通 今天在博客中看到好多Android的初学者对Android的开发环境的搭建不熟悉而导致不能进行学习,所以我决定自己写 ...
- Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】
http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...
- (十八)整合Nacos组件,环境搭建和入门案例详解
整合Nacos组件,环境搭建和入门案例详解 1.Nacos基础简介 1.1 关键特性 1.2 专业术语解释 1.3 Nacos生态圈 2.SpringBoot整合Nacos 2.1 新建配置 2.2 ...
- 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子
本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...
- robot framework环境搭建和简单示例
环境搭建 因为我的本机已经安装了python.selenium.pip等,所以还需安装以下程序 1.安装wxPythonhttp://downloads.sourceforge.net/wxpytho ...
- Mybatis学习笔记之一(环境搭建和入门案例介绍)
一.Mybatis概述 1.1 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了go ...
随机推荐
- Python的数字类型及其技巧
Python中的数字类型 int float fractions.Fraction decimal.Decimal 数字的舍与入 int(f):舍去小数部分,只保留整数部分,所以int(-3.8)的结 ...
- 安装app到Simulator
1.安装brew 打开命令行,执行以下命令: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install ...
- 使用 Python 的 SQLite JSON1 和 FTS5 扩展
早在九月份,编程界出现一个名为 json1.c 的文件,此前这个文件一直在 SQLite 的库里面.还有,笔者也曾总结通过使用新的 json1 扩展来编译 pysqlite 的技巧.但现在随着 SQL ...
- MySQL partition分区I
http://blog.csdn.net/binger819623/article/details/5280267 一. 分区的概念二. 为什么使用分区?(优点)三. ...
- 【Bzoj 3295】 动态逆序对(树套树|CDQ分治)
[题意] 每次删除一个数,然后问删除前逆序对数. [分析] 没有AC不开心.. 我的树状数组套字母树,应该是爆空间的,空间复杂度O(nlogn^2)啊..哭.. 然后就没有然后了,别人家的树套树是树状 ...
- [转贴]JAVA :CXF 简介
Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF.CXF 继 ...
- Java中x+=y和x=x+y两种实现的区别
先看下边两段代码,各有什么错? 例一: short s1 = 1; s1 = s1 + 1; 例二: short s1 = 1; s1 += 1; 第一段代码无法通过编译,由于 s1+1 在运算时会自 ...
- 子查询解嵌套in改写为exists
SELECT * FROM (SELECT pubformdat0_.id id332_, pubformdat0_.domain_id domain2_332_, pubformdat0_.proc ...
- Android推送通知指南
Android推送通知指南 在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是 ...
- bzoj1233
首先这道题有一个很重要的贪心就是 在保证所有干草堆都能参与搭建的前提下,我们尽量使最底层的宽度小,这样搭起来的的干草堆高度一定是最高的 当我们以第i个干草堆为一层,显然最优的情况是找到一个尽可能小的j ...