標籤:
寫Android測試案例有三要素,一是我們用的“安卓模擬器device”(用來顯示UI),二是“uiautomatorviewer.bat”(用來定位UI上的元素),三是“Robotium”中提供的類(用來與UI元素進行互動)。在寫好Android的測試案例後,可通過Android JUnit Test批量運行測試代碼。一共分四步——
第一步:寫一個suite類(suite中包含指定的測試案例,如下把SendInfoTest類作為一個測試案例添加進了suite中,LoginTest這個類由於被注釋沒有被加進suite中):
package com.renren.test.suites;import com.renren.test.SendInfoTest;import junit.framework.TestSuite;public class SuiteForTest {
public static TestSuite getTestSuite() { TestSuite suite = new TestSuite(); //suite.addTestSuite(LoginTest.class); suite.addTestSuite(SendInfoTest.class); return suite; }
}
第二步:寫一個runner類,用來運行指定的suite,runner類繼承了InstrumentationTestRunner類,並且重寫了getAllTests方法:
package com.renren.test.runners;import com.renren.test.suites.SuiteForTest;import android.test.InstrumentationTestRunner;import junit.framework.TestSuite;public class Runner1 extends InstrumentationTestRunner { @Override public TestSuite getAllTests() { TestSuite suite = new TestSuite(); suite.addTest(SuiteForTest.getTestSuite()); return suite; }}
第三步:修改AndroidManifest.xml檔案,添加一個instrumentation標籤,如:
其中“android:name”的值填寫“項目中的包名+runner類名”,“android:targetPackage”的值填寫被測應用app的包名,這個包名不是runner類所在項目中的包名,而是被測app——即被測apk重簽名後產生的Package name(隨之一起產生的還有Main activity名):
第四步:在項目上點擊右鍵->Run As->Run Configurations->選中Android JUnit Test並點擊上方的“建立按鈕”建立一個叫“ForMyRenren”的Android JUnit Test,Instrumentation runner選擇我們自己建立的runner類,點擊Run->批量運行測試。
附——擷取被測app的Package name和Main activity名的方法:
1、下載“apktool.jar”和“apktool.bat”檔案->。
2、 在Android的build-tools路徑(我的是C:\Users\Administration\AppData\Local\Android \android-sdk\build-tools\)下選擇一個高版本的檔案夾(我選擇了23.0.2)開啟,找到“aapt.exe”檔案;
3、將“apktool.jar”、“apktool.bat”和“aapt.exe”這三個檔案一起複製粘貼到“C:\Windows”目錄下:
4、啟動cmd命令列,輸入“aapt dump badging apk在本地的路徑名”(我用的是人人網re-sign後的apk),如下:
以上我們分別找到了apk的package name和activity name,即對應了apk重簽名後產生的Package name和Main activity名。
Android JUnit Test——批量運行測試代碼