所需要的环境:

1、eclipse

2、android development tools(ADT)

3、software develoment kit(SDK)

4、JDK

5、robotium

1-4的环境内容为android应用刚开发环境的搭建过程,不再赘述。

robotium jar包的下载:

http://code.google.com/p/robotium/downloads/list下下载jar包:robotium-solo-3.1.jar(当然会有更新的)

1、在eclipse中创建一个工程:

android工程:

File -> new -> Project -> Android Application Project  -> next

(1)在New Android Application中设置应用名字、工程名字和包名

(2)选择开发使用的SDK的版本和最低限制的SDK版本

然后一步一步到finish。

Android Test Project :

官网上可以创建一种叫做测试工程的工程:

File -> new -> Project -> Android Test Project  -> next
-> 设置名字,next -> select test target窗口中,选择要测试的project或者选择this
project以后next -> finish

此时的新建的工程的src里面会有初始的包。

注:如果是一个没有其他的android工程的空间里,新建一个Test Project工程会出错。解决办法就是新建一个Android Application Project工程,里面可以什么都没有。

以上两个工程在我看来没有太大的区别,就是包名可能不同,test工程会按照选定的project里的包名后面加一个test后生成一个包。AndroidManifest.xml不太相同,在做测试的时候可以把AndroidManifest.xml修改为测试所需的。

2、在该工程下新建一个libs文件夹,文件夹中包含所需要的包,我们这里暂时只需要将下载的robotium的包加入。

3、在build path里面将robotium包加上即可

4、修改AndroidManifest.xml为以下形式

<?xml version="1.0" encoding="utf-8"?>
<!-- package为测试的包名,需要自己制定 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="testPackage"
    android:versionCode="1"

android:versionName="1.0" >

<!-- 设定sdk的版本,必须有 -->
    <uses-sdk android:minSdkVersion="10" />

<!-- 设定运行的类,这里指定为android.test.InstrumentationTestRunner -->
    <!-- targetPackage指定测试的包名 -->
    <!-- 下面这段必须 -->
    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="PackagetoTest" />

<!-- 注意需要<uses-library>这个是必须的 -->
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />
    </application>

</manifest>

5、在我们设定的测试包中新建一个类文件

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import android.test.ActivityInstrumentationTestCase2;

import com.jayway.android.robotium.solo.Solo;

//必须要继承自ActivityInstrumentationTestCase2类
public class Test1 extends ActivityInstrumentationTestCase2{
private static final String TARGET_PACKAGE_ID = target_package; //需要自己指定需要测试的包的名字
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME =target_launcher;//自己指定启动应用的类名
private static Class launcherActivityClass;
private Solo solo;
static{
try
{
launcherActivityClass=Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);

catch (ClassNotFoundException e){
throw new RuntimeException(e);
}
}

//构造函数,需要调用super的构造
public TestNumber() {
super(TARGET_PACKAGE_ID,launcherActivityClass);
// TODO Auto-generated constructor stub
}

//测试用例,需要以test开头,这是junit3以前的定义

public test1(){

solo.clickOnScreen(555,555);

}

@Override
public void setUp() throws Exception {
// TODO Auto-generated method stub
solo = new Solo(getInstrumentation(),getActivity());
}

@Override
public void tearDown() throws Exception {
// TODO Auto-generated method stub
try{
solo.finishOpenedActivities();
}catch(Throwable e){
e.printStackTrace();
}

super.teardown();
}

}

按照以上方式用例写好。

6、由于测试的工程的签名需要与我们拿到的包的签名一致,因而需要重签名。

(1)解压apk包,将里面的meta-inf文件夹删掉

(2)打包删掉了meta-inf文件夹后的包为.apk文件

(3)在dos界面进入到需要测试的apk的文件夹中,然后运行:

jarsigner -keystore /debug.keystore -storepass android -keypass testapkname.apk命令进行安装

8、在eclipse里面鼠标右键,run as -> Android Junit Test方式运行即可。

使用robotium对android应用进行自动化测试的更多相关文章

  1. Android 自己的自动化测试(5)&lt;robotium&gt;

    大约Android自己的自动化测试UI测试,前出台Android 自己主动化測试(4)<uiautomator>, 在android原生的单元測试框架上,利用uiautomator.jar ...

  2. android真机自动化测试

    appium执行用例时报错问题: 问题解析: 一般该种情况都是因为来连接了多个设备,验证办法:cmd->执行adb devices  看结果是否是多个devices ,如果是这个问题,停掉多余设 ...

  3. Android 自己的自动化测试(2)依据ID查找对象(java)

    前一篇文章是写 Android 自己的自动化测试(1)如何安装和卸载应用程序(java) ,以下再探索一下假设在普通java应用程序中,依据ID来查找对象 1.类库依赖: The library de ...

  4. Android Native App自动化测试实战讲解(上)(基于python)

    1.Native App自动化测试及Appuim框架介绍 android平台提供了一个基于java语言的测试框架uiautomator,它一个测试的Java库,包含了创建UI测试的各种API和执行自动 ...

  5. Android Native App自动化测试实战讲解(下)(基于python)

    6.Appuim自动化测试框架API讲解与案例实践(三) 如图1,可以在主函数里通过TestSuite来指定执行某一个测试用例: 6.1,scroll():如图2 从图3中可以看到当前页面的所有元素r ...

  6. Android Hybrid App自动化测试实战讲解(基于python)

    1.Hybrid App自动化测试概要 什么是Hybrid App? Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间的app,兼具“Native App ...

  7. 推荐五款Android 应用的自动化测试工具

    如今自动化测试已经应用到每天的测试中.这不足为奇,因为自动化测试在测试过程中节约了时间,还能避免包括人为因素造成的测试错误和遗漏. 自动化测试工具选择很多.一些是开源的,一些非常贵.一些自动化工具是几 ...

  8. Appium+Robotframework实现Android应用的自动化测试-2:Windows中启动Appium和模拟器

    一.启动Appium 安装好了之后,在桌面或者菜单中找到Appium,分别双击或点击打开Appium.exe,如果一切正常,接着会出现一个Appium启动后的界面窗口,如下图所示. 1.1 Andro ...

  9. 转载:Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

    来源于:http://blog.csdn.net/zhubaitian/article/details/39803857 1. 背景 为保持这个系列的一致性,我们继续用SDK自带的NotePad实例应 ...

随机推荐

  1. linux 下git使用教程

    #添加所有新增文件 git add . #提交所有修改,包括删除,添加,修改 git add -A git add --all #查看状态 git status #添加一个文件 git add rea ...

  2. 2017头条笔试题:二维点集中找出右上角没有点的点并按x坐标从小到大打印坐标

    PS:这篇是之前本来就想发的但是一直没时间写,加上今天做了京东的题,结果代码名就命名为jingdong了……懒得改代码名重新跑一遍结果了=.= 暴力法去做就是遍历每个点,判断它是不是“最大点”.判断过 ...

  3. lwip:与tcp发送相关的选项和函数

    1. 禁用Nagle tpcb->flags |= TF_NODELAY 2. tcp_write仅enqueue packet,而不会启动发送. 在tcp_write后调用tcp_output ...

  4. Hadoop专业解决方案-第5章 开发可靠的MapReduce应用

    本章主要内容: 1.利用MRUnit创建MapReduce的单元测试. 2.MapReduce应用的本地实例. 3.理解MapReduce的调试. 4.利用MapReduce防御式程序设计. 在WOX ...

  5. 小峰mybatis(2)mybatis传入多个参数等..

    一.mybatis传入多个参数: 前面讲传入多个参数都是使用map,hashmap:key value的形式:-- 项目中开发都建议使用map传参: 比如现在通过两个参数,name和age来查询: 通 ...

  6. ES之八:elasticsearch2.x下的JAVA API示例

    D:\soft\elasticsearch\elasticsearch-2.1.0\lib package com.dxz.es; import java.net.InetAddress; impor ...

  7. Program.cs 累积_C#

    using System; using System.Diagnostics; using System.Threading; using System.Windows.Forms; using Ut ...

  8. 关于clearfix和clear的讨论

    本文摘自百度文库 还是提到了一个关于网页制作很古老的问题,浮动的清除. 虽然看过一些资料介绍说能不用浮动就尽量不要用,但对定位不是很熟的我来说,浮动就不能不用了:既然惹上这个麻烦,就得想个办法进行解决 ...

  9. TensorFlow函数:tf.FIFOQueue队列

    转载:https://blog.csdn.net/akadiao/article/details/78552037 tf.FIFOQueue tf.FIFOQueue继承基类QueueBase. Qu ...

  10. Oracle 某字段值相同的取前几条数据

    rank() over(partition)的使用(转载)   有的时候会遇到这样的问题,我们需要查询一张表,而且要按照业务排序,比如我需要如下的结果: 地区   日期    费用  产品编号   用 ...