Android Robotium搭建环境测试微信

发表于:2014-8-19 11:28

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Super-John    来源:51Testing软件测试网采编

  因为要在命令行下运行一些android的工具,所以配置一些环境变量会比较方便:
  遇到问题: 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:\Robotium\robotium\robotium\weixin_delet_rsa_sf.apk androiddebugkey
  创建自动化测试项目
  打开Eclipse,点击File->New一个Android Test Project,然后点击下一步的时候选择This project(因为我们没有米聊应用的源码),然后选择要在哪个android版本上测试
  在该项目下创建一个包,com.tencent.test,在该包下创建LoginTest类,如下
package 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();
}
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号