使用“夜神模拟器”调试robotium(无源码)demo

关于robotium网上有好多血淋漓的教程,自己也踩过很多坑,自己也总结一下

  • robotium:本质是instrument,Android自带的一个框架,robotium给他穿了一件外包,更好看,更好用了;

  • 首先你得有一个搭建好的Android环境,建议去百度,环境的变量一定要配置正确,调试yeshen模拟器:http://jingyan.baidu.com/article/359911f55f327257ff030648.html

  • 然后你要下载几个东西:
    3.1 robotium的jar包
    3.2 re-sign的 jar 包 :这个是用来重签名的工具,具体的使用方法是,cd到目录,执行java -jar解压jar包,将apk拖进去
    将获取到的apk和packagename和activityname截图,后面会有用、
    3.3如果第二步有一个error=2的错误,那就是你的sdk tools路径下没有ziliplin的exe,将这个文件房子啊tools文件夹下,再次签名就能成功(如果还报错,去检查环境变量)

  • 编写robotium demo代码



  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    import com.robotium.solo.Solo;
    import android.app.Activity;
    import android.test.ActivityInstrumentationTestCase2;
    import android.util.Log;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;

    public class Test_Demo extends ActivityInstrumentationTestCase2{
         
        private Solo solo;
        private static final String TARGET_PACKAGE_ID="com.e
        xample";
        private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="=MainActivity";
        private static Class launcherActivityClass;
        final String TAG="Test->N01";
        long startTime=0;
        Activity activity;
        static{
            try {
                launcherActivityClass = Class
                        .forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
            } catch (ClassNotFoundException e) {
                throw new RuntimeException(e);
            }
        }
         
        public Test_Demo()
        {
         
            super(TARGET_PACKAGE_ID,launcherActivityClass);         
        }
        public void setUp() throws Exception { 
             
            Log.d(TAG,"启动了一个测试用例 " );
            this.activity=this.getActivity();
            solo = new Solo(getInstrumentation(),getActivity());
        }    
         
        public void testCase01() throws Exception{
             
            solo.sleep(5000);
            assertTrue("登录未加载完",solo.searchText("进入游戏"));
            solo.clickOnText("进入游戏");
            solo.waitForText("确认购买?");
            EditText editText = solo.getEditText("请输入消费夜神币");    
            solo.enterText(editText,"0.01");
            solo.clickOnText("确认购买?");
            solo.waitForText("夜神支付");
            assertTrue("支付跳转未完成",solo.searchText("钱包余额"));
            solo.clickOnText("银联支付");
            TextView view1 = null;
            view1 = (TextView)solo.getView(0);
            String Text = (String) view1.getText();
            System.out.println(Text);
            assertTrue("qing call me  is false",solo.searchText("searchText"));
            Thread.sleep(5000);
        }
         
         
            public void tearDown() throws Exception {  
                try {  
                this.solo.finishOpenedActivities();  
                } catch (Throwable e) {  
                e.printStackTrace();  
                }  
                this.activity.finish();  
                super.tearDown();  
                }  
    }



6.修改xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.bignox.sdk.example.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.yeshen.example" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />
    </application>

</manifest>



7.run Androidjunittest
8.选择一个设备,我用的是夜神Android模拟器,和真机的效果差不多,adb的链接命令有点不一样
    8.1首先得进入到本地安装nox的bin目录:方法打开文件的位置即可,
    8.2nox_adb connect 127.0.0.1:62001
   如果adb server还是报错,那就继续:nox_adb kill-server nox_adb start-server 再次执行一次连接命令
   设备就识别出来了
   9.0可以编辑自己的case代码了


福利:看元素sdk自带的可以查看 uiinstrument 就在sdktools的目录下
          调试用的夜神模拟器下载的链接地址: 
www.yeshen.com 我是雷锋别夸我