Monkey+Uiautomator做稳定性压力测试

最近一直在寻求一种好的压力测试方案,由于monkey的可控性太差,经常会跑到某个界面无法跳出来,所以就果断的放弃了monkey。
随后在testerhome 里面找到了appcrawler,用appcrawler试跑了几次后,发现跑了几分钟就结束了。猜测是跑应用的时候一直停留在某个界面,里面所有的按钮被点击完毕,但是没有跳到其他页面,导致appcrawler结束。
然后我就尝试着在appcrawler的基础上,结合uiautomator脚本运行,由于appcrawler是基于appium,而appium的底层是uiautomator,一个设备只能运行一个uiautomator,该方案又以失败告终。
后来又想到既然monkey可控性差,我们可以人为地增强可控性,思路如下:
1.将wify按钮,飞行模式按钮在下拉菜单中隐藏掉,防止断网
2.执行monkey 脚本示例:
adb shell monkey -p com.tencent.mobileqq --throttle 500 100000
3.运行uiautomator脚本,定时启动activity,防止monkey跑道某个死角出不来
代码如下:

package com.example.administrator.yallatool.UITest.PressureTest;

import android.content.Context;
import android.content.Intent;
import android.support.test.InstrumentationRegistry;
import android.support.test.uiautomator.UiAutomatorTestCase;
import android.util.Log;

import org.junit.Test;

/**
 * Created by Administrator on 2017/11/17.
 */

public class Test_WithMonkey extends UiAutomatorTestCase  {
    @Test
    public void test_1(){
       for(int i=0;i<100;i++){
            startactivity();
            Log.i("startActivity","==="+i);
            sleep(60000);
        }

    }

    public void startactivity(){
        Context context = InstrumentationRegistry.getInstrumentation().getContext();
        Intent intent = context.getPackageManager().getLaunchIntentForPackage("com.tencent.mobileqq");
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        context.startActivity(intent);
    }
}

你可能感兴趣的:(Monkey+Uiautomator做稳定性压力测试)