基于APK的自动化测试
???? Robotium第一個例子(NotePad)中是基于源碼的自動化測試,Robotium也可以基于APK進行自動化測試,也就是說你只要有APK文件,沒有源代碼,也可以進行自動化測試的。
??? 在做基于APK的自動化測試的過程中,需要確保的一點是,被測試的APK必須跟測試項目具有相同的簽名,那怎么做才能確保兩者擁有相同的簽名呢?
??? 第一步,首先將被測APK的簽名去掉,然后用debug keystore重新進行簽名,Eclipse也是使用debug keystore為默認的keystore為應用簽名的,這樣就可以保證被測應用和測試應用擁有同樣的簽名了
??? Eclipse默認的debug keystore可以在這個地方設置,Window-> Preferences-> Android -> Build
??? 去掉APK的簽名,然后為之重新簽名,可通過re-sign.jar這個jar來進行(自行到網上下載吧)
??? 雙擊運行re-sign.jar,會出現如下的窗口
???
??? 假設現在有一個APK,現在只需將這個APK拖動到上圖的APK圖標位置,re-sign.jar就會去掉改APK的簽名,然后重新以debug keystore為該APK重新簽名,如下圖所示
???
??? 點擊保存按鈕,等待一會,會出現如下窗口
???
???? 這樣就表明重簽名成功了,并獲得了被測應用的Package name和Main?activity。記住Package name和Main activity,后面會用到
??? 第二步,創建基于APK測試的測試工程
??? 在Eclipse里面新建一個Android Test Project,并命名為QunarTest,在Select Test Target這個窗口時,需要選擇“This project”
???
??? 接著根據提示選擇相應的按鈕,完成測試工程的創建。
??? 測試工程創建完畢后,新建一個libs文件夾,將Robotium的jar放到該文件夾下,然后將該jar添加到build path中
??? 第三步,編寫第一個基于APK測試自動化用例
??? 新建一個包, com.qunar.test,新建第一個測試類FirstQunarTest,繼承ActivityInstrumentationTestCase2,具體代碼如下
package com.qunar.test;import android.test.ActivityInstrumentationTestCase2;import com.robotium.solo.Solo;public class FirstQunarTest extends ActivityInstrumentationTestCase2 {private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.Qunar.NoteActivity";private static Class <?> launcherActivityClass;static{try{launcherActivityClass= Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);}catch(ClassNotFoundException e){throw new RuntimeException(e);}}@SuppressWarnings("unchecked")public FirstQunarTest(){super(launcherActivityClass);}private Solo solo;@Overrideprotected void setUp() throws Exception{solo= new Solo(getInstrumentation(),getActivity());}public void testCanOpenSettings(){solo.pressMenuItem(0);}@Overridepublic void tearDown() throws Exception{solo.finishOpenedActivities();} }
??? 其中LAUNCHER_ACTIVITY_FULL_CLASSNAME是由前面的re-sign.jar獲得的Main Activity
??? 第四步,安裝應用,運行自動化用例
??? 通過adb install 命令將重簽名獲得的qne_debug.apk安裝到設備上
??? 修改AndroidMainfest.xml里instrumentation的targetPackage的值為上面re-sign.jar獲得的package name,即com.Qunar
??? 鼠標右擊FirstQunarTest,選擇Run?As?->?Android?JUnit?Test,注意觀察屏幕,被測應用就會被啟動起來
轉載于:https://www.cnblogs.com/Akubi/p/5247511.html
總結
以上是生活随笔為你收集整理的基于APK的自动化测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 四则运算1
- 下一篇: GOROOT、GOPATH、GOBIN、