只有apk时robotium测试程序启动相应时间(一)

来源:互联网 发布:女装淘宝货源 编辑:程序博客网 时间:2024/06/05 15:03

昨天看到有人在博客中问,有没有考虑过,怎样去测试程序启动所耗费的时间,百度了下,想了个办法来实现。

不知道自己的想法是否正确,大家可以帮忙指点下。后面继续优化。

主要的是思想:程序启动后,获取页面某一处的加载完成的文字,获取完成,则说明加载完成,输出时间


package tiange.sina.voice.test;

import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import android.view.View;
import com.jayway.android.robotium.solo.Solo;
public class LoadTest extends ActivityInstrumentationTestCase2{

//调用新浪好声音的包名和主类名
private static final String TARGET_PACKAGE_ID="tiange.sina.voice";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="voice.activity.Start";
private static Class launcherActivityClass;
static {
try {
launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);

catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public LoadTest() throws ClassNotFoundException {
super(launcherActivityClass);

private Solo solo;

    //启动新浪好声音
    public void setUp()throws Exception {
        solo=new Solo(getInstrumentation(),getActivity());
           }
    
    //因为启动程序时,会因为网络或者程序的一些原因导致响应时间较长,从而导致测试失败。
    //目前是这样处理的:增加一个循环,如果首页文字未显示就相当于在等待,本次测试最长设置一分钟
    public void testCase1()throws Exception {
    boolean flag =false;
    int i=0;
    while (i<60){
    solo.sleep(1000);
    flag=solo.searchText("人气作品");
    if (flag){
    break;
       }
    i++;
    }
    System.out.print(i);
        assertEquals(flag, true);
    }
  
    public void tearDown() throws Exception {
    solo.finishOpenedActivities();
    }
   

}

--------------------------------------------------------------------------------------------


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


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


    <supports-screens android:anyDensity="true"/> 
    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="tiange.sina.voice" />


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


</manifest>


原创粉丝点击