最近一直在寻求一种好的压力测试方案,由于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); } } |
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。