十一、Android_UiAutomator 报告查看
来源:互联网 发布:电路图绘制软件protel 编辑:程序博客网 时间:2024/05/17 02:29
一、Android UiAutomator报告查看
1.错误类型
1)断言错误:就是断言这个用例的成功或者失败(AssrtionFailedError)
2)脚本错误:UiObjectNotFoundException(找不到对象异常)、java异常等
2.报告状态
1)运行状态
2)结果状态
3)运行信息
运行状态
结果状态
运行信息
运行前(1)OK(0)运行前的信息运行完成(-1)Errors(-1)运行中的信息运行完成 (-1)Failures(-2)运行后的信息
3.报告示例说明
二、各种状态报告及定位问题
1)断言失败的例子
- 示例代码:
//断言失败报告例子public void testDemo1() throws UiObjectNotFoundException{ //点击短信查看是否有无会话产生 //当前界面获取短信按钮 UiObject msm=new UiObject(new UiSelector().text("短信")); UiObject None=new UiObject(new UiSelector().text("短信")); //点击短信按钮 msm.clickAndWaitForNewWindow(); assertTrue(!None.exists()); }
- 生成报告内容:
//运行前INSTRUMENTATION_STATUS: current=1INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=Jian1.test1:INSTRUMENTATION_STATUS: numtests=1INSTRUMENTATION_STATUS: test=testDemo1INSTRUMENTATION_STATUS_CODE: 1//运行中INSTRUMENTATION_STATUS: current=1INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=Failure in testDemo1:junit.framework.AssertionFailedError//报断言错误 at Jian1.test1.testDemo1(test1.java:17)//错误地点Jian/test1/testDemo1/第17行 at java.lang.reflect.Method.invokeNative(Native Method) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96) at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91) at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) at dalvik.system.NativeStart.main(Native Method)INSTRUMENTATION_STATUS: numtests=1INSTRUMENTATION_STATUS: stack=junit.framework.AssertionFailedError at Jian1.test1.testDemo1(test1.java:17) at java.lang.reflect.Method.invokeNative(Native Method) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96) at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91) at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) at dalvik.system.NativeStart.main(Native Method)INSTRUMENTATION_STATUS: test=testDemo1INSTRUMENTATION_STATUS_CODE: -2//运行后INSTRUMENTATION_STATUS: stream=Test results for WatcherResultPrinter=.FTime: 2.577FAILURES!!!Tests run: 1, Failures: 1, Errors: 0INSTRUMENTATION_STATUS_CODE: -1
2)报告通过例子
- 示例代码:
//报告通过例子 public void testDemo1() throws UiObjectNotFoundException{ //点击短信查看是否有无会话产生 //当前界面获取短信按钮 UiObject msm=new UiObject(new UiSelector().text("短信")); UiObject None=new UiObject(new UiSelector().text("短信")); //点击短信按钮 msm.clickAndWaitForNewWindow();// assertTrue(!None.exists()); assertTrue(None.exists()); }
- 生成报告内容:
//运行前INSTRUMENTATION_STATUS: current=1INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=Jian1.test1:INSTRUMENTATION_STATUS: numtests=1INSTRUMENTATION_STATUS: test=testDemo1INSTRUMENTATION_STATUS_CODE: 1//运行中INSTRUMENTATION_STATUS: current=1INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=.INSTRUMENTATION_STATUS: numtests=1INSTRUMENTATION_STATUS: test=testDemo1INSTRUMENTATION_STATUS_CODE: 0//运行后INSTRUMENTATION_STATUS: stream=Test results for WatcherResultPrinter=.Time: 3.668OK (1 test)INSTRUMENTATION_STATUS_CODE: -1
3)脚本错误中途中断例子
- 示例代码:
//脚本错误中断例子 public void testDemo1() throws UiObjectNotFoundException{ //获取一个搜索不到的对象 UiObject msm=new UiObject(new UiSelector().text("短信123")); //点击对象 msm.clickAndWaitForNewWindow(); }
- 生成报告内容:
//运行前INSTRUMENTATION_STATUS: current=1INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=Jian1.test1:INSTRUMENTATION_STATUS: numtests=1INSTRUMENTATION_STATUS: test=testDemo1INSTRUMENTATION_STATUS_CODE: 1//运行中INSTRUMENTATION_STATUS: current=1INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=Error in testDemo1://脚本运行错误com.android.uiautomator.core.UiObjectNotFoundException: UiSelector[TEXT=短信123]//找不到对象出现的错误 at com.android.uiautomator.core.UiObject.clickAndWaitForNewWindow(UiObject.java:432) at com.android.uiautomator.core.UiObject.clickAndWaitForNewWindow(UiObject.java:410) at Jian1.test1.testDemo1(test1.java:14)//出现的位置 at java.lang.reflect.Method.invokeNative(Native Method) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96) at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91) at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) at dalvik.system.NativeStart.main(Native Method)INSTRUMENTATION_STATUS: numtests=1INSTRUMENTATION_STATUS: stack=com.android.uiautomator.core.UiObjectNotFoundException: UiSelector[TEXT=短信123] at com.android.uiautomator.core.UiObject.clickAndWaitForNewWindow(UiObject.java:432) at com.android.uiautomator.core.UiObject.clickAndWaitForNewWindow(UiObject.java:410) at Jian1.test1.testDemo1(test1.java:14) at java.lang.reflect.Method.invokeNative(Native Method) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96) at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91) at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) at dalvik.system.NativeStart.main(Native Method)INSTRUMENTATION_STATUS: test=testDemo1INSTRUMENTATION_STATUS_CODE: -1//运行后INSTRUMENTATION_STATUS: stream=Test results for WatcherResultPrinter=.ETime: 11.655FAILURES!!!Tests run: 1, Failures: 0, Errors: 1//一个报错INSTRUMENTATION_STATUS_CODE: -1
4)多用例同时运行例子
- 示例代码:
public void testDemo1() throws UiObjectNotFoundException{ //获取一个搜索不到的对象 UiObject msm=new UiObject(new UiSelector().text("短信123")); //点击对象 msm.clickAndWaitForNewWindow(); }public void testDemo2(){ UiDevice.getInstance().pressBack();}public void testDemo3(){ UiDevice.getInstance().pressBack(); assertTrue(false);//断言失败的例子}public void testDemo4(){ UiDevice.getInstance().pressBack();}//报告通过例子public void testDemo5() throws UiObjectNotFoundException{ //点击短信查看是否有无会话产生 //当前界面获取短信按钮 UiObject msm=new UiObject(new UiSelector().text("短信")); UiObject None=new UiObject(new UiSelector().text("短信")); //点击短信按钮 msm.clickAndWaitForNewWindow(); assertTrue(None.exists());//断言成功 }
- 生成报告:
INSTRUMENTATION_STATUS: current=1INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=Jian1.test1:INSTRUMENTATION_STATUS: numtests=5INSTRUMENTATION_STATUS: test=testDemo1INSTRUMENTATION_STATUS_CODE: 1INSTRUMENTATION_STATUS: current=1INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=Error in testDemo1:com.android.uiautomator.core.UiObjectNotFoundException: UiSelector[TEXT=短信123] at com.android.uiautomator.core.UiObject.clickAndWaitForNewWindow(UiObject.java:432) at com.android.uiautomator.core.UiObject.clickAndWaitForNewWindow(UiObject.java:410) at Jian1.test1.testDemo1(test1.java:16) at java.lang.reflect.Method.invokeNative(Native Method) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96) at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91) at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) at dalvik.system.NativeStart.main(Native Method)INSTRUMENTATION_STATUS: numtests=5INSTRUMENTATION_STATUS: stack=com.android.uiautomator.core.UiObjectNotFoundException: UiSelector[TEXT=短信123] at com.android.uiautomator.core.UiObject.clickAndWaitForNewWindow(UiObject.java:432) at com.android.uiautomator.core.UiObject.clickAndWaitForNewWindow(UiObject.java:410) at Jian1.test1.testDemo1(test1.java:16) at java.lang.reflect.Method.invokeNative(Native Method) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96) at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91) at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) at dalvik.system.NativeStart.main(Native Method)INSTRUMENTATION_STATUS: test=testDemo1INSTRUMENTATION_STATUS_CODE: -1INSTRUMENTATION_STATUS: current=2INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=INSTRUMENTATION_STATUS: numtests=5INSTRUMENTATION_STATUS: test=testDemo2INSTRUMENTATION_STATUS_CODE: 1INSTRUMENTATION_STATUS: current=2INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=.INSTRUMENTATION_STATUS: numtests=5INSTRUMENTATION_STATUS: test=testDemo2INSTRUMENTATION_STATUS_CODE: 0INSTRUMENTATION_STATUS: current=3INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=INSTRUMENTATION_STATUS: numtests=5INSTRUMENTATION_STATUS: test=testDemo3INSTRUMENTATION_STATUS_CODE: 1INSTRUMENTATION_STATUS: current=3INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=Failure in testDemo3:junit.framework.AssertionFailedError at Jian1.test1.testDemo3(test1.java:23) at java.lang.reflect.Method.invokeNative(Native Method) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96) at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91) at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) at dalvik.system.NativeStart.main(Native Method)INSTRUMENTATION_STATUS: numtests=5INSTRUMENTATION_STATUS: stack=junit.framework.AssertionFailedError at Jian1.test1.testDemo3(test1.java:23) at java.lang.reflect.Method.invokeNative(Native Method) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160) at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96) at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91) at com.android.commands.uiautomator.Launcher.main(Launcher.java:83) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) at dalvik.system.NativeStart.main(Native Method)INSTRUMENTATION_STATUS: test=testDemo3INSTRUMENTATION_STATUS_CODE: -2INSTRUMENTATION_STATUS: current=4INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=INSTRUMENTATION_STATUS: numtests=5INSTRUMENTATION_STATUS: test=testDemo4INSTRUMENTATION_STATUS_CODE: 1INSTRUMENTATION_STATUS: current=4INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=.INSTRUMENTATION_STATUS: numtests=5INSTRUMENTATION_STATUS: test=testDemo4INSTRUMENTATION_STATUS_CODE: 0INSTRUMENTATION_STATUS: current=5INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=INSTRUMENTATION_STATUS: numtests=5INSTRUMENTATION_STATUS: test=testDemo5INSTRUMENTATION_STATUS_CODE: 1INSTRUMENTATION_STATUS: current=5INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=.INSTRUMENTATION_STATUS: numtests=5INSTRUMENTATION_STATUS: test=testDemo5INSTRUMENTATION_STATUS_CODE: 0INSTRUMENTATION_STATUS: stream=Test results for WatcherResultPrinter=.E..F..Time: 16.215FAILURES!!!Tests run: 5, Failures: 1, Errors: 1INSTRUMENTATION_STATUS_CODE: -1
三、输出信息到报告
1.setup与tearDown
1)setup(开始)
2)tearDown(结尾)
2.相关API
1)Bundle
2)getAutomationSupport().sendStatus(int ,Bundle)
- 例如:
//setUpprotected void setUp() throws Exception{ super.setUp(); System.out.println("setUp:用例开始执行了---------"); //新建bundle对象 Bundle bundle=new Bundle(); bundle.putString("key1", "value1"); bundle.putString("key2", "value2"); bundle.putString("key3", "value3"); bundle.putString("key4", "value4"); bundle.putString("key5", "value5"); //发送状态,注意不能跟系统状态码一样(0,1,-1),这里我们用10 getAutomationSupport().sendStatus(10, bundle); }
//testCasepublic void testReport(){ System.out.println("test:用例正在执行中------------"); //新建bundle对象 Bundle bundle=new Bundle(); bundle.putString("key1-", "value1-"); bundle.putString("key2-", "value2-"); bundle.putString("key3-", "value3-"); bundle.putString("key4-", "value4-"); bundle.putString("key5-", "value5-"); //发送状态,注意不能跟系统状态码一样(0,1,-1),这里我们用11 getAutomationSupport().sendStatus(11, bundle); UiDevice.getInstance().pressBack();}
//tearDownprotected void tearDown() throws Exception { // TODO Auto-generated method stub super.tearDown(); System.out.println("tearDown:用例执行完了-----------"); //新建bundle对象 Bundle bundle=new Bundle(); bundle.putString("key1*", "value1*"); bundle.putString("key2*", "value2*"); bundle.putString("key3*", "value3*"); bundle.putString("key4*", "value4*"); bundle.putString("key5*", "value5*"); //发送状态,注意不能跟系统状态码一样(0,1,-1),这里我们用12 getAutomationSupport().sendStatus(12, bundle);}
- 生成报告:
INSTRUMENTATION_STATUS: current=1INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=Jian1.test1:INSTRUMENTATION_STATUS: numtests=1INSTRUMENTATION_STATUS: test=testDemo6INSTRUMENTATION_STATUS_CODE: 1setUp:用例开始执行了---------INSTRUMENTATION_STATUS: key4=value4INSTRUMENTATION_STATUS: key3=value3INSTRUMENTATION_STATUS: key5=value5INSTRUMENTATION_STATUS: key2=value2INSTRUMENTATION_STATUS: key1=value1INSTRUMENTATION_STATUS_CODE: 10Set up:用例开始执行...INSTRUMENTATION_STATUS: key4=value4INSTRUMENTATION_STATUS: key3=value3INSTRUMENTATION_STATUS: key5=value5INSTRUMENTATION_STATUS: key2=value2INSTRUMENTATION_STATUS: key1=value1INSTRUMENTATION_STATUS_CODE: 10tearDown:用例执行完了-----------INSTRUMENTATION_STATUS: key4*=value4*INSTRUMENTATION_STATUS: key5*=value5*INSTRUMENTATION_STATUS: key1*=value1*INSTRUMENTATION_STATUS: key2*=value2*INSTRUMENTATION_STATUS: key3*=value3*INSTRUMENTATION_STATUS_CODE: 12INSTRUMENTATION_STATUS: current=1INSTRUMENTATION_STATUS: id=UiAutomatorTestRunnerINSTRUMENTATION_STATUS: class=Jian1.test1INSTRUMENTATION_STATUS: stream=.INSTRUMENTATION_STATUS: numtests=1INSTRUMENTATION_STATUS: test=testDemo6INSTRUMENTATION_STATUS_CODE: 0INSTRUMENTATION_STATUS: stream=Test results for WatcherResultPrinter=.Time: 0.083OK (1 test)INSTRUMENTATION_STATUS_CODE: -1
四、传入参数控制脚本
- 演示范例
1)通过-e传入数据到用例中,如:拨打一个指定电话
public void testDemo7() throws UiObjectNotFoundException{ //初始化动作(按返回键才能万全退出一个应用) UiDevice.getInstance().pressBack(); UiDevice.getInstance().pressBack(); UiDevice.getInstance().pressBack(); UiDevice.getInstance().pressHome();//返回桌面 //获取对象 UiObject call=new UiObject(new UiSelector().text("拨号"));//拨号按钮 UiObject dialpad=new UiObject(new UiSelector().className("android.widget.TableLayout"));//拨号盘 //点击对象 call.clickAndWaitForNewWindow(); dialpad.clickAndWaitForNewWindow(); //传入参数 Bundle b=getParams(); String phone =(String) b.get("phone");//-e key value -e phone 10086 //逻辑判断和输入 for (int i=0;i<phone.length();i++){ String c=phone.charAt(i)+""; UiObject phoneNum=new UiObject(new UiSelector().text(c));//拨号盘 phoneNum.click(); sleep(1200); }}
- 注意事项:
1.Uiautomator不能进行传参的快速调试,可以先run一下,用例push到手机上之后然后使用命令行进行输入,上面的用例运行命令为:
adb shell uiautomator runtest test.jar --nohup -c Jian1.test1#testDemo7 -e phone 10086
2)通过-e出传入整体控制参数控制脚本,如:清理应用数据
public void testDemo8() throws UiObjectNotFoundException { //初始化动作(按返回键才能万全退出一个应用) UiDevice.getInstance().pressBack(); UiDevice.getInstance().pressBack(); UiDevice.getInstance().pressBack(); UiDevice.getInstance().pressHome();//返回桌面 //传入参数 Bundle b=getParams(); String ctrl=(String) b.get("ctrl"); //开始逻辑判定 boolean isClear=Boolean.valueOf(ctrl); if(isClear){ //执行清理步骤 //点菜单按钮 UiDevice.getInstance().pressMenu(); //点管理应用按钮 UiObject manAPP=new UiObject(new UiSelector().text("管理应用")); manAPP.clickAndWaitForNewWindow(); //滚动查找对象并点击 UiScrollable list=new UiScrollable(new UiSelector().resourceId("android:id/list")); UiObject browser=new UiObject(new UiSelector().text("浏览器")); list.scrollIntoView(browser); browser.clickAndWaitForNewWindow(); //点击清除数据按钮 UiObject clear=new UiObject(new UiSelector().text("清除数据")); clear.clickAndWaitForNewWindow(); //点击确定 UiObject OK=new UiObject(new UiSelector().text("确定")); OK.clearTextField(); }else{ //不执行清理 System.out.println("不执行清理-------------"); } //打开浏览器 UiObject browser=new UiObject(new UiSelector().text("浏览器")); browser.clickAndWaitForNewWindow();}
0 0
- 十一、Android_UiAutomator 报告查看
- Android_UiAutomator自动化测试框架
- Android_uiautomator支持输入中文
- C++程序设计实验报告(十一)
- iOS Crash 查看报告
- Uiautomator 报告查看
- C++程序设计实验报告(二十一)
- C++程序设计实验报告(十一)
- C++程序设计实验报告(二十一)
- leetCode解题报告5道题(十一)
- AWR 报告 查看 数据库 负载
- oracle查看awr、addm报告
- Android Studio 查看构建报告
- 十一届蓝狐杯的总结,顺带一点解题报告
- 解题报告-南阳理工学院16级新生十一检测
- 一、Android_UiAutomator(安卓UI自动化)环境搭建
- Oracle AWR报告生成与查看
- Oracle AWR报告生成与查看
- PHP安装MongoDB扩展
- WebKit之V8技术优化分析
- 分配给任务的堆栈的栈顶指针_理解
- hibernate笔记: 关于懒加载和load()方法
- freeradius and jradius configuration
- 十一、Android_UiAutomator 报告查看
- android 编程小技巧(1)---超实用的LogUtil
- WebKit之chromium进程创建过程分析
- UVA 10603(p202)----Fill
- iOS数据持久化-sqlite3
- 友元
- 第七章 变形 trnasform
- VMware+CentOS+zookeeper+solr集群环境搭建_org.apache.solr.handler.dataimport.DataImportHandler
- adb install in windows7