[老欧的经验]Robotium小经验

[2014-06-19]

今天尝试卸载被测应用,发现只要应用被卸载就会直接报错,脚本停止运行.

这和Robotium的实现原理有本质关系.一旦应用都没了,整个模拟都结束了.需要更多了解一下Robotium的原理.其实就是Android自带测试框架的原理.


编写的脚本是清除被测应用的用户数据,就直接结束case了,导致结束时,直接报错

Test run failed: Instrumentation run failed due to 'Process crashed.'

脚本如下:

        solo.sleep(500);
		Log.d("Blue", "调用");
		Uri packageUri = Uri.parse("package:" + "packageName");
		Intent uninstallIntent = new Intent();
		uninstallIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
		uninstallIntent.setData(packageUri);
		getActivity().startActivity(uninstallIntent);
		Log.d("Blue", "完成");
		//目前没有找到更好的方法进行用户数据清楚,只好用最笨的方式用input发送点击
		solo.sleep(1000);
		method.execShell("input swipe 500 1400 500 300");
		solo.sleep(1000);
		method.execShell("input tap 540 742");
		solo.sleep(1000);
		method.execShell("input tap 800 1780");
		solo.sleep(1000);


想了想,也对, tearDown()里写着solo.finshOpenedActivities(),如果solo都没了,的确会出问题.

所以就加了一行

		method.execShell("am start -n packageName/activityName");		


不知道是不是这个原因,反正没再出问题.


posted @ 2014-06-19 22:21  老歐  阅读(214)  评论(0)    收藏  举报