Android Robotium搭建環(huán)境測(cè)試微信
因?yàn)橐诿钚邢逻\(yùn)行一些android的工具,所以配置一些環(huán)境變量會(huì)比較方便:
遇到問(wèn)題: java -jar re-sign.jar 出現(xiàn)提示android路徑?jīng)]有配置好:
需要配置如下:
配置ANDROID_HOME為android sdk的安卓目錄,例如:D:\android-sdk
在path下添加這兩個(gè):
%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
重新開(kāi)關(guān)一次命令窗口
因?yàn)?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">robotium要求被測(cè)應(yīng)用和測(cè)試代碼要有一致的key,所以我們需要把下載到的apk,通過(guò)re-sign.jar來(lái)產(chǎn)生debug key的apk,這個(gè)重新生成的apk就會(huì)跟測(cè)試項(xiàng)目簽名一致了
re-sign.jar可以從這里下載到:
http://www.troido.de/re-sign.jar
下載完后,在命令行下 通過(guò) java -jar re-sign.jar就會(huì)出現(xiàn)一個(gè)節(jié)目,然后將apk拖到這個(gè)節(jié)目,就會(huì)自動(dòng)生成一個(gè)debug key的apk
產(chǎn)生新apk的過(guò)程中會(huì)彈出一個(gè)信息框,記得截下圖,因?yàn)槔锩嬗袃蓚€(gè)信息我們等會(huì)的代碼中需要用到
然后打開(kāi)模擬器(模擬器器一定要打開(kāi)才能安裝成功),然后打開(kāi)命令行
adb install mitalk_debug.apk(新生成apk的名稱(chēng))
安裝成功就可以再模擬器里看到該應(yīng)用的圖標(biāo)了
注意:
一、刪除之前 APK 文件的簽名
1、解壓apk 文件
2、刪除解壓出來(lái)文件夾中的 META-INF 目錄:META-INF 存放簽名后的CERT 和MANIFEST 文件,用于識(shí)別軟件的
簽名及版權(quán)。
3、刪除文件夾后重新把解壓出來(lái)的其它文件夾壓縮為zip 文件,然后直接把文件后綴改為apk
二、為 APK 重新生成簽名
1、將證書(shū)復(fù)制到與需要重新簽名的apk 文件相同的目錄下
2、jarsigner -keystore debug.keystore -storepass android -keypass android D:\Robotium\robotium\robotium\weixin_delet_rsa_sf.apk androiddebugkey
創(chuàng)建自動(dòng)化測(cè)試項(xiàng)目
打開(kāi)Eclipse,點(diǎn)擊File->New一個(gè)Android Test Project,然后點(diǎn)擊下一步的時(shí)候選擇This project(因?yàn)槲覀儧](méi)有米聊應(yīng)用的源碼),然后選擇要在哪個(gè)android版本上測(cè)試
在該項(xiàng)目下創(chuàng)建一個(gè)包,com.tencent.test,在該包下創(chuàng)建LoginTest類(lèi),如下
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; // 對(duì)應(yīng)re-sign.jar生成出來(lái)的信息框里的兩個(gè)值 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(); } } |
posted on 2014-08-20 09:36 順其自然EVO 閱讀(407) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): android