因为要在命令行下运行一些android的工具,所以配置一些环境变量会比较方便:
互相学习,请关注我的微博:weibo.com/ganchaojiang |
遇到问题: java -jar re-sign.jar 出现提示android路径没有配置好:
需要配置如下:
配置ANDROID_HOME为android sdk的安卓目录,例如:D:android-sdk
在path下添加这两个:
%ANDROID_HOME%tools;%ANDROID_HOME%platform-tools;
重新开关一次命令窗口
在真机中安装APK(以腾讯微信作为测试的apk)
因为robotium要求被测应用和测试代码要有一致的key,所以我们需要把下载到的apk,通过re-sign.jar来产生debug key的apk,这个重新生成的apk就会跟测试项目签名一致了
re-sign.jar可以从这里下载到:
http://www.troido.de/re-sign.jar
下载完后,在命令行下 通过 java -jar re-sign.jar就会出现一个节目,然后将apk拖到这个节目,就会自动生成一个debug key的apk
产生新apk的过程中会弹出一个信息框,记得截下图,因为里面有两个信息我们等会的代码中需要用到
然后打开模拟器(模拟器器一定要打开才能安装成功),然后打开命令行
adb install mitalk_debug.apk(新生成apk的名称)
安装成功就可以再模拟器里看到该应用的图标了
注意:
一、删除之前 APK 文件的签名
1、解压apk 文件
2、删除解压出来文件夹中的 META-INF 目录:META-INF 存放签名后的CERT 和MANIFEST 文件,用于识别软件的
签名及版权。
3、删除文件夹后重新把解压出来的其它文件夹压缩为zip 文件,然后直接把文件后缀改为apk
二、为 APK 重新生成签名
1、将证书复制到与需要重新签名的apk 文件相同的目录下
2、jarsigner -keystore debug.keystore -storepass android -keypass android D:Robotiumrobotiumrobotiumweixin_delet_rsa_sf.apk androiddebugkey
创建自动化测试项目
打开Eclipse,点击File->New一个Android Test Project,然后点击下一步的时候选择This project(因为我们没有米聊应用的源码),然后选择要在哪个android版本上测试
在该项目下创建一个包,com.tencent.test,在该包下创建LoginTest类,如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65package com.mitalk.test; import android.app.Activity; import android.test.ActivityInstrumentationTestCase2; import com.jayway.android.robotium.solo.Solo; @SuppressWarnings("rawtypes") public class LoginTest extends ActivityInstrumentationTestCase2 { public Solo solo; public Activity activity; private static Class<?> launchActivityClass; // 对应re-sign.jar生成出来的信息框里的两个值 private static String mainActiviy = "com.tencent.mm.ui.LauncherUI"; private static String packageName = "com.tencent.mm"; static { try { launchActivityClass = Class.forName(mainActiviy); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } } @SuppressWarnings("unchecked") public LoginTest() { super(packageName, launchActivityClass); } @Override protected void setUp() throws Exception { super.setUp(); this.activity = this.getActivity(); // this.solo = new Solo(getInstrumentation(), getActivity()); } public void testLoginWithIncorrentUsernameAndPassword() throws Exception { wait(5000); //待完成 } @Override public void tearDown() throws Exception { try { this.solo.finishOpenedActivities(); } catch (Throwable e) { e.printStackTrace(); } this.activity.finish(); super.tearDown(); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mitalk.test" android:versionCode="1" android:versionName="1.0" > <supports-screens android:anyDensity="true" /> <uses-sdk android:targetSdkVersion="17" /> <uses-sdk android:minSdkVersion="17" /> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.tencent.mm" /> <application android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <uses-library android:name="android.test.runner" /> </application> </manifest>
* Write following command to install AndroidCalculator apk on emulator
> adb install <path>/AndroidCalculator.apk
* Write following command to install AndroidCalculatorTest apk on emulator
> adb install <path>/AndroidCalculatorTestApk.apk
* Run the test cases:
> adb shell am instrument -w com.testcalculator/android.test.InstrumentationTestRunner
最后
以上就是灵巧万宝路最近收集整理的关于Robotium第一天:搭建环境测试微信互相学习,请关注我的微博:weibo.com/ganchaojiang 的全部内容,更多相关Robotium第一天:搭建环境测试微信互相学习,请关注我内容请搜索靠谱客的其他文章。
发表评论 取消回复