240 likes | 589 Views
手机软件测试工具 Robotium 使用. http://code.google.com/p/robotium/. 内容. Robotium 介绍 Robotium 环境搭建 Robotium 进行测试的方法和步骤 Android 测试的其他手段 Android 测试的辅助工具. Robotium 介绍. User scenario testing for Android 。.
E N D
手机软件测试工具 Robotium使用 http://code.google.com/p/robotium/
内容 • Robotium介绍 • Robotium环境搭建 • Robotium进行测试的方法和步骤 • Android测试的其他手段 • Android测试的辅助工具
Robotium介绍 User scenario testing for Android。 Robotium是一款测试Android Application的测试框架,它使得编写黑盒测试代码更加容易和稳定。通过使用Robotium,测试用例开发人员能够跨越多个Activity,开发出功能、系统以及验收测试用例。 Robotium是基于Android测试框架InstrumentationTestCase2进行的2次封装,把一些基本操作又简化了一遍。
Robotium介绍 • Robotium的优势: • 针对黑盒测试 • 在测试过程中,不必需要测试程序的源代码,只要apk文件(前提是需要知道测试程序的package和activity) • 可以直接运行在手机上,并通过adb端获得运行结果。 • 在使用该工具的时候有一点必须:当编辑完测试脚本后,会生成一个apk文件,将该apk安装到手机端,并通过abd输入一系列命令后直接运行测试脚本。但该apk的签名必须要与测试程序的apk签名保持一致。
Robotium环境搭建 Robotium使用所需的环境: • JDK (Java Development Kit) • Eclipse for building Test project • ADT (Android Development Tools) • Android SDK (Software Development Kit) • Robotium-solo-*.*.*.jar
Robotium环境搭建 • 安装JDK,安装并设置环境变量JAVA_HOME 、CLASSPATH和path • 下载解压Eclipse for java工具 • 下载 Android SDK 解压,运行SDK Manager.exe文件,安装软件包 • 下载 ADT ,在Eclipse安装ADT插件 • 在Eclipse设置Android SDK 路径 • 创建一个新的 Android 虚拟设备AVD (Android模拟器的配置) • 在http://code.google.com/p/robotium/downloads/list下载相应版本的robotiumjar文件
Robotium进行测试的方法和步骤 • 以一个简单的计算乘法的程序AndroidCalculator作为被测程序 • 如图所示
Robotium进行测试的方法和步骤 • 启动Eclipse执行 File--> Import --> Select root directory,选择AndroidCalculator项目将被测程序导入进来。 • 创建一个测试项目AndroidCalculatorTest 选择File->New->Project->Android Test Project输入测试工程的名称,如:AndroidCalculatorTest。选择An existing Android Project,点击Browse按钮,选择之前创建的被测工程AndroidCalculator,点击OK按钮。一个测试工程就创建好了,如图:
Robotium进行测试的方法和步骤 • 创建一个测试用例Test Case 在AndroidCalculatorTest->src->com. calculator.test上,右击选择New->Juint->Juint Test Case。 在Name中输入Test Case的名字,如:TestMain,选择Setup(),tearDown()和Constructor选项,单击完成。创建好的Test Case如下图:
Robotium进行测试的方法和步骤 • 导入robotium.jar 选择测试工程AndroidCalculatorTest右击,选择Build Path->Configure Build Path…,在libraries页面中点击Add External JARs按钮。因为之前创建的工程的SDK是2.2的,所以选择robotium-solo-1.8.0.jar。点击OK按钮。
Robotium进行测试的方法和步骤 • 为测试用例编写代码 对AndroidCalculator程序进行测试,要实现的一个测试用例如下:1)访问的第一和第二个编辑域(EditFields)2)输入选择的测试数据3)访问和点击multiply按钮4)验证计算的结果是否符合预期 打开TestMain.java进行编辑并保存,见下图
Robotium进行测试的方法和步骤 • 测试代码的结构 • publicTestMain() {//构造函数,通知系统要测的app是什么 • super("com.calculator", Main.class); • } • //每一个test case都会调用setup来进行初始化 • protectedvoidsetUp() throws Exception { • super.setUp(); • …… • } • //可以通过tearDown()方法来结束case,可以指定清空或结束此case曾经调用过的一些资源,如果不写tearDown()方法,系统会调用默认的方法 • protectedvoidtearDown() throws Exception{ • …… • super.tearDown(); • } • //具体实现测试用例的方法 • publicvoidtestDisplayBlackBox() { • …… • } • }
Robotium进行测试的方法和步骤 • 运行测试程序 选择测试工程AndroidCalculatorTest右击,选择Run As->Android JUnit Test运行测试程序。可以在Run configuration中设置模拟器或设备区运行测试程序。 运行完后的测试结果界面(Pass) 运行完后的测试结果界面(Fail)
Robotium进行测试的方法和步骤 • 在模拟器或者手机上测试 • 前面的例子在eclipse中进行测试的,也可以在模拟器或者手机上测试。如果需要直接在模拟器或者手机上测试,需要将测试包和被测试包改成相同的签名。 • 关于测试方法可以参考《Test Android APK File With Robotium.pdf》 • 关于apk包的签名和重签名请参考《重新签名APK文件.pdf》
Android测试的其他手段 • CTS • 用来确保某设备符合Android兼容性规范 • 参考《Android CTS测试研究.pdf》 • ASE(Android Scripting Environment) • 可以通过脚本(如Python)调用Android的功能,从而定制一些测试。如打电话,发短信,浏览网页等。 • 可以扩充它的API(Java部分),并用python脚本调用这些API, 从而实现丰富的测试功能。用于API部分可以访问到Android全部API。python又能灵活部署测试,所以 ASE 的扩展性非常好。 • 参考《Android Scripting Environment.pdf》
Android测试的其他手段 • Monkey • Monkey是一个命令行工具, Monkey是运行在模拟器或设备上的一个程序,用来伪随机地模拟点击和触摸等用户事件,就如其它许多系统事件一样。Monkey可以用于对我们开发的应用程序进行随机和重复的压力测试。 • 示例:Program Files\Android\android-sdk-windows\docs\guide\developing\tools\monkey.html • 参考《Android自动化测试手段之Monkey.pdf》
Android测试的辅助工具 • ADB (Android Debug Bridge,Android调试桥) • ADB是androidSdk里的一个通用调试工具, 这个工具可以直接操作管理android模拟器或者真实设备的状态。还可以进行以下的操作: • 在模拟器或设备上安装应用程序的.apk文件 • 快速更新设备或手机模拟器中的代码,如应用或Android系统升级; • 在设备上运行shell命令,访问模拟器或设备; • 管理设备或手机模拟器上的预定端口; • 在设备或手机模拟器上复制或粘贴文件; • 使用ADB之前 • 把tools目录下的adb.exe和AdbWinApi.dll两个文件放到系统盘的windows/system32文件夹里 • 用数据线连接手机或者启动模拟器,然后在命令中使用adb命令
Android测试的辅助工具 • Hierarchy Viewer (层级观察器) • Hierarchy Viewer是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat,是Android自带的非常有用而且使用简单的工具,可以帮助我们更好地检视和设计用户界面(UI),调试和优化你的用户界面,是UI检视的利器。 • 它可以找到我当前窗口所有的view,并可以查看每个view的属性,查看每个控件的id,方便编写case。 • 参考《UI检视利器:Hierarchy Viewer.pdf》
Android测试的辅助工具 • DDMS( Dalvik Debug Monitor Service ) • Dalvik调试监视器服务提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收 SMS、虚拟地理坐标等等。DDMS将搭建起IDE与测试终端(Emulator 或者connected device)的链接,它们应用各自独立的端口监听调试器的信息,DDMS可以实时监测到测试终端的连接情况。当有新的测试终端连接后,DDMS将捕捉到终端的ID,并通过adb建立调试器,从而实现发送指令到测试终端的目的。 • 参考《Android DDMS如何使用.pdf》
Android测试的辅助工具 • MonkeyRunner • monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,也可以将其用于其它目的。 • E:\Program Files\Android\android-sdk-windows\docs\guide\developing\tools\monkeyrunner_concepts.html
Android测试的辅助工具 • Androidscreencastcase • 一个适用于Windows/Linux/MacOS平台控制任何android设备,通过USB连接就可实现鼠标键盘控制你的android. • 网址:http://code.google.com/p/androidscreencast/ • 几点说明: • 1.使用需要一定的权限如root,USB调试已经启用 • 2.鼠标右键可以旋转屏幕方向 • 3.反映数度有一定的延迟 • 4.下载androidscreencast.jnl • 对应的key值KeyMapping http://code.google.com/p/androidscreencast/wiki/KeyMapping
Android测试的辅助工具 • Aapt(Android Asset Packaging Tool) • 可用于创建包含Android应用程序二进制文件和资源文件的.apk文件 • Traceview • 可用于将Android应用程序产生的跟踪日志(trace log)转换为图形化的分析视图 • mksdcard • 用于创建磁盘映像(disk image),可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如SD卡) • Findbugs • 一个静态分析工具,可以在不实际运行程序的情况对软件进行分析,帮助改进代码的质量,可以作为Eclipse的插件使用。