所需要的环境:

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. go的module用法

    新版不需要项目放在GOPATH里面了,这个恶心的机制之前还被n多人捧臭脚.简单列一下用法 新建项目 cd 项目目录go mod init 项目名 写好代码 go build 或者 go mod tid ...

  2. chrome从版本55开始,不再支持设置网页内容编码

    Hi Everyone,   Chrome 55 has removed the Encoding menu and Chrome will do auto-encoding detection no ...

  3. shell_sctipts: 删除mysql备份到最后7日

    目前,mysql的备份文件,经过一周左右清理,手动清理会比较费事,所以写了一个简单脚本来实现. 前提介绍: mysql备份文件放在/usr/bak/sql里面,sql文件的备份名称格式为: mysql ...

  4. 针对IE6浏览器下,zoom:1的问题

    一.css代码如下: .message .con .word {font-size:14px;color:#333333; border-radius:3px; padding:10px;border ...

  5. PHP实现微信申请退款(证书权限必须设为可执行)

    前期准备: 当然是搞定了微信支付,不然怎么退款,这次还是使用官方的demo.当然网上可能也有很多大神自己重写和封装了demo,或许更加好用简洁,但是我还是不提倡用,原因如下: (1)可能功能不全,或许 ...

  6. Tornado源码分析之http服务器篇

    转载自 http://kenby.iteye.com/blog/1159621 一. Tornado是什么? Facebook发布了开源网络服务器框架Tornado,该平台基于Facebook刚刚收购 ...

  7. Ubuntu14.04下codeblocks手动编译配置bost_1_57_0

    环境:ubuntu 14.04  32bit,boost_1_57_0 前期准备:boost中,用到了别的函数库,所以为了使用boost中相应的功能,需要先安装系统中可能缺失的库 apt-get in ...

  8. CentOS重新加载网卡报错 Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/

    重新加载网卡时出现的错误如下: 1 [root@vdb1 dev]# service network restart 2 Shutting down interface eth0: Device st ...

  9. Python预编译语句防止SQL注入

    这个月太忙,最近不太太平,我的愿望是世界和平! ================================== 今天也在找python的预编译,早上写的sql是拼接来构成的.于是找了2篇文章,还 ...

  10. Django的DRF序列化方法

    安装rest_framework -- pip install djangorestframework -- 注册rest_framework序列化 -- Python--json -- 第一版 用v ...