【android自动化测试】robotium 初体验
来源:互联网 发布:电视直播app源码 编辑:程序博客网 时间:2024/06/05 17:36
robotium 进行android自动化测试初体验,本文包含的内容:
一,只有APK,没有源码的情况下robotium测试:
二 有待测试apk的源码测试:
robotium网址: http://code.google.com/p/robotium/
一,只有APK,没有源码的情况下robotium测试:
1)确保apk是debug签名;
下载re-sign.jar,下载地址:http://www.troido.de/re-sign.jar;下载之后双击jar,拖拽apk到上面根据提示操作即可的到myApp_debug.apk;同时也会得到包名等信息;
2)新建测试工程;
(1)新建工程,选择 Android Test Project ;
(2)Test Target 选择“This Project”:
(3)包名写同测试的apk同样的包名,或者加上.test 均可;
例如,待测试的apk包名是 com.myapk ,则测试工程的包名可以是com.myapk 或者 com.myapk.tset
3)加载 robotium-solo-2.1.jar;
Download Robotium jar from http://code.google.com/p/robotium/downloads/list
4)写测试类;
如下:
package com.trunk.ticket.act.test;import com.jayway.android.robotium.solo.Solo;import android.test.ActivityInstrumentationTestCase2;public class TestApk extends ActivityInstrumentationTestCase2 {private static final String TARGET_PACKAGE_ID = "com.trunk.ticket.act";private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.trunk.ticket.act.MainActivity";private static Class launcherActivityClass;static {try {launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);} catch (ClassNotFoundException e) {throw new RuntimeException(e);}}public TestApk() throws ClassNotFoundException {super(TARGET_PACKAGE_ID, launcherActivityClass);}private Solo solo;@Overrideprotected void setUp() throws Exception {solo = new Solo(getInstrumentation(), getActivity());}/* * 我的测试函数 */public void testDisplayBlackBox() { // Enter any integer/decimal value for// first editfield, we are writing 10solo.enterText(0, "10"); // Enter any interger/decimal value for first// editfield, we are writing 20solo.clickOnButton("查询");// Verify that resultant of 10 x 20//assertTrue(solo.searchText("200"));}@Overridepublic void tearDown() throws Exception {try {solo.finalize(); //Robotium will finish all the activities that have been open} catch (Throwable e) {e.printStackTrace();}getActivity().finish();super.tearDown();} }
5)修改AndroidManifest.xml文件
<instrumentation android:targetPackage="com.myapk" android:name="android.test.InstrumentationTestRunner" />
instrumentation android:targetPackage 必须是待测试的包。
在手机上安装待测试的apk,然后Run As AndroidJUnit Test 即可。
参考资料:http://code.google.com/p/robotium/wiki/RobotiumForAPKFiles
二 有待测试apk的源码测试:
1) 新建测试工程,同上,在选择Test Target 的时候选择待测试工程:
其它信息会默认写好,点击 “Finish”即可。
2)写测试类
如下:
/* * This is an example test project created in Eclipse to test NotePad which is a sample * project located in AndroidSDK/samples/android-9/NotePad * Just click on File --> New --> Project --> Android Project --> Create Project from existing source and * select NotePad. * * Then you can run these test cases either on the emulator or on device. You right click * the test project and select Run As --> Run As Android JUnit Test * * @author Renas Reda, renas.reda@jayway.com * */package com.mytest.app.test;import com.mytest.app.test.MainActivity;import com.jayway.android.robotium.solo.Solo;import android.test.ActivityInstrumentationTestCase2;import android.test.suitebuilder.annotation.Smoke;import android.util.Log;public class MyTest extends ActivityInstrumentationTestCase2<MainActivity>{private Solo solo;public MyTest() {super("com.mytest.app", MainActivity.class);} public void setUp() throws Exception { solo = new Solo(getInstrumentation(), getActivity()); } /* * 我的测试函数 */ @Smoke public void testAddNote() throws Exception { solo.clickOnMenuItem("Add note"); solo.enterText(0, "Note 2"); //In text field 0, add Note 2 solo.goBackToActivity("NotesList"); //Go back to first activity named "NotesList" boolean expected = true; boolean actual = solo.searchText("Note 1") && solo.searchText("Note 2"); assertEquals("Note 1 and/or Note 2 are not found", expected, actual); //Assert that Note 1 & Note 2 are found }@Overridepublic void tearDown() throws Exception {try {solo.finalize(); //Robotium will finish all the activities that have been open} catch (Throwable e) {e.printStackTrace();}getActivity().finish();super.tearDown();} }
3)AndroidManifest.xml 文件已经自动配置好,不用做修改,直接运行即可;
- 【android自动化测试】robotium 初体验
- 【android自动化测试】robotium 初体验
- Android Robotium自动化测试
- android 自动化测试robotium
- ANDROID自动化测试 robotium
- Android Robotium自动化测试
- Robotium android自动化测试
- Android自动化测试之robotium
- Android Robotium自动化测试二
- 转:ANDROID自动化测试 robotium
- ANDROID自动化测试工具:ROBOTIUM
- Android Robotium自动化测试二
- Android 自动化测试—robotium
- android 使用Robotium自动化测试
- Android测试之Robotium自动化测试框架
- 无源码,Robotium测试Android应用初体验
- 【Android自动化测试之Robotium】01. Robotium环境配置
- 【Android自动化测试之Robotium】01. Robotium环境配置
- MyEclipse6.5无法启动,一直停留刚开始启动界面
- 删除windows资源管理器记住的密码
- Eclipse SVN的安装与基本使用
- [官方消息] 5.0.1完美越狱圣诞节前放出
- 单链表逆序的递归与非递归算法
- 【android自动化测试】robotium 初体验
- runable的用法(学习笔记)
- eclipse中使用svn最快上手
- 抽取结果集的实现 ResultSetExtractor接口的extractData方法
- Android.mk的解析
- Mahout架构初探及KMeans算法分布式实现的研究
- 在Action获取Scope对象
- Chrome扩展开发指南(1)——入门
- 窗体间传值