因为调动到一个新的部门在这个部门做的一直就是移动产品,所以这段时间会一直不断的研究app的自动化,主要是针对android,这里我采用的是Robotium框架,这个框架比较简单,使用eclipse+robotium包ok了,前提是搭建了android的开发环境。

  自己在刚开始学习时在网上找了很多的资料,可是对一个新手来说比较难上手,不过没办法只有自己慢慢的摸索,经过请教同事、网上搜寻答案后终于有了一定的眉目,下面说一下对新手来说大概的一个方向:

  1、android开发环境的搭建(其实在网上看了很多的资料都一步一步的说怎么配置,个人觉得没有那么麻烦,在请教了开发之后大家可以直接在android的官网上去下载他的一个包,在这个包里面所有东西都有了,直接解压用)

  地址:http://developer.android.com/sdk/index.html  怎么下载就不用说了吧!JDK记的配置  是不是顿时觉得明白了,没有网上说的那么繁琐。

  2、环境搭建好之后要创建一个android的开发环境。这个为什么?说实在的我也不是很清楚,因为我在最开始的时候按照网上说的直接创建一个TestProject可是这样直接报错的。再在这基础上创建TestProject就不会出错了。

  (这里有必要说一下,因为我做的基本都没办法拿到源码所以针对的就是apk测试,在创建TestProject要选择This Project就行)

  3、接下来要引入robotium包,这个不用说了吧,最好在你的工程里面只有android sdk的包和robotium的包,不然容易报错,以前就遇见一个让我困惑很久。

  4、万事俱备只欠东风,现在只需要创建一个TestCase就可以了,不过这里有必要说一下Test名子需要命名为:ActivityInstrumentationTestCase2,因为这个是继承过来的,但是你只是将这个名子取成这个是不行的,在打开case后需要引入这个的,import android.test.ActivityInstrumentationTestCase2;

  5、基础设施弄好之后需要将solo包引入,不然没办法用:import com.jayway.android.robotium.solo.Solo;

使用过程中刚搭建好的环境:

package com.example.eduutest.test;
import junit.framework.TestCase;
//引入包
import com.jayway.android.robotium.solo.Solo;
import android.app.Activity;
import
android.test.ActivityInstrumentationTestCase2;
//测试用例
public class HomeTest extends
ActivityInstrumentationTestCase2 {

public Solo solo;
public
Activity activity;
private static Class<?>
launchActivityClass;
//这里是经过签名后的包名子以及签名文件,我们执行case是根据这个来的
private static String mainActiviy =
"com.eduu.bang.app.SplashActivity";
private static String packageName =
"com.eduu.bang";
//试着启动 
static {
try {
launchActivityClass =
Class.forName(mainActiviy);
} catch (ClassNotFoundException e) {
throw
new RuntimeException(e);
}
}

//这两个都是基础的有什么作用网上很多解释
public HomeTest()
{
super(packageName, launchActivityClass);
}
protected void setUp() throws
Exception {
super.setUp();
this.activity =
this.getActivity();
this.solo = new Solo(getInstrumentation(),
getActivity());
}
protected void tearDown() throws
Exception {
super.tearDown();
}
//下面这个就是我们的TestCase
public void
testRead(){
solo.clickOnText("发现");
}
}

Android+Robotium的更多相关文章

  1. 命令行运行Android Robotium自动化用例或单元测试用例

    本文目录 1.运行所有的测试用例 2.运行单个测试类或某个TestSuite 3.运行某个测试类里面的某个测试方法 4.运行两个不同的测试类或类中的方法 命令行运行Android Robotium自动 ...

  2. [Android] Robotium手机自动化测试(仅需apk安装包版)——环境搭建 【转】

    Robotium的手机自动化测试,很多都是利用app源代码里的Id定义来开发自动化脚本.而在我开始要为项目中的app写自动化测试脚本的时 候,开发的环境还很不稳定,app也还处于开发的状态中,而且,在 ...

  3. [转]Android Studio 里搭建自动化测试框架Robotium

    Android的自动化测试框架可选择的不多,后来选了Robotium(https://code.google.com/p/robotium/),它的语法及易用性挺像我们用在iOS里的KIF. 官方文档 ...

  4. 使用robotium对android应用进行自动化测试

    所需要的环境: 1.eclipse 2.android development tools(ADT) 3.software develoment kit(SDK) 4.JDK 5.robotium 1 ...

  5. Android Instrumention.sendPointerSync发送Event失败分析

    问题场景 Android4.3,进入被测app某个Activity后,测试案例ClickOnScreen出现异常(Click can not be completed!). Android4.4正常. ...

  6. 安卓自动化测试(2)Robotium环境搭建与新手入门教程

    Robotium环境搭建与新手入门教程 准备工具:Robotium资料下载 知识准备: java基础知识,如基本的数据结构.语法结构.类.继承等 对Android系统较为熟悉,了解四大组件,会编写简单 ...

  7. 5 Best Automation Tools for Testing Android Applications

    Posted In | Automation Testing, Mobile Testing, Software Testing Tools   Nowadays automated tests ar ...

  8. Robotium学习笔记一

    一. 重签名问题 1.从手机Pull所需的apk通过压缩工具删除META-INF目录 2.通过以下命令行进行签名 >jarsigner -keystore "C:\Documents ...

  9. Android 测试工具集02

    User scenario testing for Android(功能性测试框架) Robotium is an Android test automation framework that has ...

随机推荐

  1. 关于ORACLE的硬解析和软解析与MySQL的查询缓存query_cache探讨

    今天在项目中探讨到Oracle对于SQL语句的解析方法以及MySQL相应的处理方法: --------------------------------------------------------- ...

  2. Spark RDD概念学习系列之Spark的数据存储(十二)

    Spark数据存储的核心是弹性分布式数据集(RDD). RDD可以被抽象地理解为一个大的数组(Array),但是这个数组是分布在集群上的. 逻辑上RDD的每个分区叫一个Partition. 在Spar ...

  3. 【现代程序设计】【homework-07】

    C++11 中值得关注的几大变化 1.Lambda 表达式 Lambda表达式来源于函数式编程,说白就了就是在使用的地方定义函数,有的语言叫“闭包”,如果 lambda 函数没有传回值(例如 void ...

  4. 最大二位子数组和问题(homework-02)

    前面已经谈过最大一维子数组和问题,这里面扩展到二维. 一. 常规情况 一个矩形的数组,找到一个矩形的子数组有最大的元素和,求这个和. 1. 从朴素算法入手,枚举矩形数组的4个顶点,以此计算其数组和.同 ...

  5. java.net.BindException: Address already in use: bind

    环境:jxse-2.7, netty-3.6.6.Final 现象:每次执行都抛出以下异常 八月 08, 2013 8:45:19 下午 net.jxta.logging.Logging logChe ...

  6. 注意 sizeof 中不要有复杂运算操作

    http://github.tiankonguse.com/blog/2014/12/05/c-base/ 一个比较有意思的问题 #include<stdio.h> ; int f() { ...

  7. vector 之 find 重载

    众所周知,map有find,但vector的find只能调用algorithm中的find通用方法. 参考<How to find an item in a std::vector?> 对 ...

  8. Java集合框架之LinkedList-----用LinkedList模拟队列和堆栈

    LinkedList的特有方法: (一)添加方法 addFisrt(E e):将指定元素插入此列表的开头.//参数e可以理解成Object对象,因为列表可以接收任何类型的对象,所以e就是Object对 ...

  9. Linux上svn服务器的搭建

    安装svn服务器 直接用yum安装,命令如下: #yum install -y subversion 验证是否安装成功. #svnserve --version 创建SVN版本库 在home目录下创建 ...

  10. AfxGetMainWnd()函数用法

    CWnd* AfxGetMainWnd( ); 使用AfxGetMainWnd函数获取MFC程序中的主框架类指针是一个常用作法. 就是获得应用程序主窗口的指针,AfxGetMainWnd()-> ...