Android如何在测试程序中删除被测应用私有的原始数据
作者:网络转载 发布时间:[ 2013/5/21 13:20:55 ] 推荐标签:
我们知道在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的数据。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11