Android单元测试与日志处理
测试:
一款好的软件是测出来的,而不是开发出来的。
bug 崩溃率高于4%会流失大量用户。
从代码可见度:
黑盒测试 自动化测试。
白盒测试 懂技术的测试人员,debug。
从测试的粒度:
单元测试(测一个方法),集成测试(方法放在一起测试),系统测试(客户端服务端一起去调)
从暴力程度:
压力测试: monkey,多次测试,看是否会挂 冒烟测试:一直测到崩溃。
adb shell
monkey 10000 随机点击一千次。
monkey -p com.... 10000 点击指定应用10000次。
要执行单元测试Android Junit Test,一定要在android设备上测试。
写一个类,继承AndroidTestCase
在AndroidManifest.xml中
在application节点外加入
<instrumentation android:targetPackage="com.example.day03_pratice" android:name="android.test.InstrumentationTestRunner"></instrumentation>
在application节点内加入
<uses-library android:name="android.test.runner"/>
run as ->android junit test
日志:
加上logcat window->showview->android->logcat
展开logcat,添加过滤器,
filterName只是作为标识区分过滤器(建议写过滤器的功能)
By Log Tag 根据过滤器的 Tag 来过滤 常用的有System.out 过滤System.out(info级别的)打印出的内容。
By Log Message根据打印的内容过滤。
By PID根据程序的进程编号来过滤。
By ApplicationName 根据包名来过滤。
过滤级别
级别从低到高: verbose (adj.冗长的) debug info warn error assert 比过滤级别低的Log信息就被过滤掉。
Log.v("推荐用类名","打印的信息"); tag是类名方便定位打印Log的位置 黑色的日志
Log.d("推荐用类名","打印的信息"); tag是类名方便定位打印Log的位置 蓝色的日志
Log.i("推荐用类名","打印的信息"); tag是类名方便定位打印Log的位置 绿色的日志
Log.w("推荐用类名","打印的信息"); tag是类名方便定位打印Log的位置 黄色的日志
Log.e("推荐用类名","打印的信息"); tag是类名方便定位打印Log的位置 红色的日志
开发时可以打印日志,上线后关闭日志,可以节约系统资源,也可以防止程序信息泄漏。
可以写个工具类,控制日志的开启和关闭,如下。
public class LogUtils {
private static boolean openLog=true;
public static void LOGD(String tag,String msg)
{
if(openLog)
{
Log.d(tag, msg);
}
}
}