Robotium -- 针对apk包的测试

时间:2023-03-08 22:57:01
Robotium -- 针对apk包的测试

在使用Robotium测试的时候,有时候,测试人员并没有代码权限,而Robotium也可以在只有apk文件进行测试,下面就介绍一下这个过程。

1.设置环境变量

安装jdk环境和sdk环境

Robotium -- 针对apk包的测试

Robotium -- 针对apk包的测试

2.安装签名文件

因为robotium要求被测应用和测试代码要有一致的签名, 所以我们需要把下载到的apk,通过re-sign.jar来产生debug key的apk,这个重新生成的apk就会跟测试项目签名一致了。

点我下载re-sign.jar

打开运行cmd,切换到re-sign.jar文件目录下输入命令java -jar re-sign.jar,点击回车即可打开该jar文件。

Robotium -- 针对apk包的测试

3.重新签名apk

将apk包,直接拖拽进去,就会自动生成一个debug key的apk,产生新apk的过程中会弹出一个信息框,记得截下图,因为里面有两个信息我们等会的代码中需要用到

Robotium -- 针对apk包的测试

4.安装apk

将重新签名后的apk安装到设备上,若能顺利打开,无crash,则说明重新签名成功。

5.创建项目

打开Eclipse,点击File->New一个Android Test Project, 然后点击下一步的时候选择This project(因为我们没有应用的源码),然后选择要在哪个android版本上测试,并引入Robotium.jar包

Robotium -- 针对apk包的测试

Robotium -- 针对apk包的测试

Robotium -- 针对apk包的测试

6,修改manifest.xml文件

将Package名改为被测文件的包名(重签名时截图中有)

Robotium -- 针对apk包的测试

7,新建一个junit测试类

代码如下

  1. package com.tangbc.test;
  2. import android.app.Activity;
  3. import android.test.ActivityInstrumentationTestCase2;
  4. import com.robotium.solo.Solo;
  5. @SuppressWarnings("rawtypes")
  6. public class MomoTest extends ActivityInstrumentationTestCase2 {
  7. // 定义变量
  8. public Solo solo;
  9. public Activity activity;
  10. private static Class<?> launchActivityClass;
  11. // 对应re-sign.jar生成出来的信息框里的两个值
  12. private static String mainActiviy = "com.immomo.momo.android.activity.WelcomeActivity";
  13. private static String packageName = "com.immomo.momo";
  14. static {
  15. try {
  16. launchActivityClass = Class.forName(mainActiviy);
  17. } catch (ClassNotFoundException e) {
  18. throw new RuntimeException(e);
  19. }
  20. }
  21. @SuppressWarnings("unchecked")
  22. public MomoTest() {
  23. super(launchActivityClass);
  24. }
  25. @Override
  26. protected void setUp() throws Exception {
  27. super.setUp();
  28. this.activity = this.getActivity();
  29. this.solo = new Solo(getInstrumentation(), getActivity());
  30. }
  31. public void testLogin() {
  32. solo.sleep(2000);
  33. solo.clickOnText("注册");
  34. solo.sleep(2000);
  35. }
  36. @Override
  37. public void tearDown() throws Exception {
  38. solo.finishOpenedActivities();
  39. }
  40. }

8.最后, run as android junit test,就可以进行测试了

【转载:http://blog.csdn.net/tt75281920/article/details/28087583】