查看: 2363|回复: 0

[工具教程] 使用“夜神模拟器”调试robotium(无源码)demo

657

主题

877

帖子

3276

积分

管理员

Godye

Rank: 9Rank: 9Rank: 9

积分
3276

勤奋版主推广达人优秀版主原创先锋最佳新人活跃会员名人勋章论坛元老

牵牵你的小手 发表于 2016-3-25 14:56:27 | 显示全部楼层 |阅读模式
关于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的目录下
          调试用的夜神模拟器下载的链接地址:http://tui.yeshen.com/file/download/DkdfK5XP  or www.yeshen.com 我是雷锋别夸我




上一篇:请问eclipse获取到的夜神模拟器的ID能不能修改?
下一篇:第一次安装游戏正常,关闭模拟器在运行游戏就提示停止...
我是论坛小能手,想要福利就联系QQ:2813976712,客服群:官方群①:385408454官方群②:482485427官方群③ 483591394,爱你们的夜神Godye
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则