Android如何在测试程序中删除被测应用私有的原始数据

我们知道在 Android App测试时,当我们想把应用程序恢复的初始状态,我们通常可以有以下几种做法:

  手动

  到Setting -> Apps -> 单击我们要测得应用程序 -> 选择Clear data

  这样重新启动App的时候,我们的程序就处于初始状态了。

  命令行

  当然我们也是可以使用命令行来操作的,比如:

adb shell pm clear my.app.package

  只要把对应的包名,改成你自己的就可以了。

  自动化

  要是能自动化就更加完美了,这样我们就可以在我们的自动化Case里添加相应的恢复App原始状态的代码了,如此我们就可以保证我们的Case总是在一个一致的测试环境中,岂不更美?

  这里我找到了两种方法。

  方法一:在VBS脚本中添加代码,完成操作

Set objWsh = CreateObject("Wscript.Shell")
objWsh.Run "adb shell pm clear my.app.package",1, True

  方法二:在Android Test Project中添加相应代码删除私有原始数据

Context context = this.getInstrumentation().getTargetContext().getApplicationContext();
Editor edit = context.getSharedPreferences(m_strPreferencesName, Context.MODE_PRIVATE).edit();
edit.clear();
edit.commit();

  当然我这里是删除名叫“m_strPreferencesName”的数据,如果我们想删除其他,或者所有的Share Preferences数据都是可以的。

  请注意:

  虽然Java 有Java.lang.runtime,我们可以通过它在运行时去执行Command命令,完成一些操作,但是在Android里,类似下面的代码就不可以:

try
{
Runtime.getRuntime().exec("adb shell pm clear com.my.package");
}
catch(IOException ex)
{
ex.printStackTrace();
}

  这里不会抛任何异常,而且也不会清除App的数据。

  这是因为Andorid的安全机制不允许一个App去删除另一个App的数据。

更多相关文章

  1. Android(安卓)ListView理解之BaseAdapter
  2. 小记Activity生命周期(onCreate)
  3. Android(安卓)在代码中控制View的填充方式和宽度、高度
  4. android桌面小部件appwidget使用ListView或者StackView如何刷新
  5. 测试freg驱动的功能内置C程程序
  6. android sharedpreference保存boolean,int,float,long,String和图片
  7. android中简单搞定webservice接口访问,以及webservice简析
  8. 绝对精品—史上最全最权威的Android(安卓)Studio插件整理
  9. 【Android】网络通讯

随机推荐

  1. 如何安装新版Android Studio 3.0
  2. Android(安卓)TextSwitcher(文字交换器)
  3. Android(安卓)ffmpeg支持x264的编译脚本
  4. Android(安卓)在使用SmartRefreshLayout
  5. 用Gson和SharedPreferences轻松构建andro
  6. Android数据库ORMlite框架翻译系列
  7. Android的Audio系统
  8. 使用Android内置的Pull解析器解析XML文件
  9. Android(安卓)Studio中使用Gradle和Andro
  10. [置顶] Android模拟打电话应用程序实现分