Android自动化测试框架Robotium学习笔记
来源:互联网 发布:钢琴教学视频 知乎 编辑:程序博客网 时间:2024/04/30 19:43
RObotium自动化测试的几点体会也一起和大家交流下,有一些内容还在慢慢学习中:
1.Java5(2004-10)开始推出了Instrumentation,这是一个可以在main之前Java虚拟机加载类时改变Java类字节码或类classpath等内容的工具,同时JDK1.6还提供了运行过程中的动态改变,如在方法执行前后加入度量时间的代码,使Java代码可度量就是一个很典型的应用。不过这需要涉及到Java字节码有较深入的理解进行字节码直接编辑改写,或者需要借助开源字节码项目如bcel,ASM或javassist等,以简化对字节码的操作。
2.Instrumentation与Btrace。Btrace是基于Instrumentation和ASM的,只要理解了Instrumentation的原理和ASM对字节码的操作原理,了解Btrace就不困难了。
3.Android的测试框架robotium框架,使用的类也是Instrumentation,其原理应该也类似。为某工程新建了一个测试工程,在安装原有工程项目时,也将测试的工程项目安装到AVD(模拟器)上面,同时通过测试的工程项目来与运行时的项目交互,触发其组件的动作等。这种方法的缺点是要求两个项目同时安装到AVD上面。Google将会考虑采取Remote Control的方式实现自动化测试框架,类似于selenium的Remote Control,即在AVD上运行一个监控程序,而测试项目只需要连接这个监控程序,并发送相应的指令即可与程序进行交互,进行测试。希望早日实现这种方式~,目前的自动化测试使用前种方法也可。Robotium其底层仍是采用Android的Instrumentation!
4.Android的Instrumentation对某个监控程序进行交互时,其大致采用如下步骤:
1)启动时将项目配置文件AndroidManifest.xml文件中的instrumentation标签中的内容进行初始化,其中标明了所使用的测试运行类,目标项目的包名等
2)执行测试时(可用adb命令触发),将启动目标应用的Activity,同时将待测试ActivityThread作为一个引用进行初始化,如果找不到目标应用则会报错
3)在测试时测试项目的任何对目标项目进行的操作,都会用异步的方式,将消息体放在目标程序的MessageQueue里面,这样目标程序在看到自己的MessageQueue里有内容时,就会执行之。
整个初始化过程还有待研究,关键应该是在于AndroidManifest.xml文件中内容的标识
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-05/36512.htm
- Android自动化测试框架Robotium学习笔记
- Android自动化测试框架Robotium学习笔记
- Android自动化测试框架Robotium学习笔记
- Android自动化测试框架Robotium学习笔记
- Android测试之Robotium自动化测试框架
- Android自动化测试—Robotium学习笔记(1)
- Android自动化测试—Robotium学习笔记(2)
- robotium自动化测试框架
- Android Robotium自动化测试
- android 自动化测试robotium
- ANDROID自动化测试 robotium
- Android Robotium自动化测试
- Robotium android自动化测试
- Robotium自动化测试框架实用教程
- Robotium自动化测试框架实用教程
- Android自动化程测试框架之Robotium VS. UIAutomator
- 最新消息:Android自动化测试框架-Robotium 4.3发布!
- 迟来消息:Android自动化测试框架-Robotium 4.2发布!
- SVN提交时提示:Could not execute PROPPATCH -> 问题解决
- memcpy函数用法
- C/C++/C#面试题精选(3)
- pv3d源码分析
- memcpy函数用法
- Android自动化测试框架Robotium学习笔记
- Openfire S2S 连接建立与消息发送
- 去掉桌面图标阴影
- RedHat enterprise linux 5.3 X64下安装64位Oracle 11g (未测试)
- css中边界和补白
- 不再更新咯,hoho! ^_^
- Randomized Qruicksort
- Struts2源码分析--请求处理
- 杀进程批处理