您好,登錄后才能下訂單哦!
基于Instrumentation Framework的開源項目AndroidMonkey是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
最大的一個疑問是怎么monkey是用instrumentation來注入event呢?這樣的話它怎么做到跨進程應用的事件發送呢?因為根據本人的了解instrumentation框架是不能跨進程的,而monkey是絕對跨進程的!
@Override public int fireEvent(Instrumentation testRuner) { String note; if (mAction == KeyEvent.ACTION_UP) { note = "ACTION_UP"; } else { note = "ACTION_DOWN"; } System.out.println(":Typing Key (" + note + "): " + mKeyCode + " // "); try { // testRuner.sendKeySync(getEvent()); testRuner.sendKeyDownUpSync(mKeyCode); } catch (Exception e) { System.out.println("Failed to send key (" + note + "): " + mKeyCode + " // "); return MonkeyEvent.INJECT_FAIL; } return MonkeyEvent.INJECT_SUCCESS; }
糾結了一段時間后返回下載地方看了下概覽,很短,但很清楚的描述了這個不是我想要的monkey,而是原生monkey的一個修改后做成的android庫。既然碰上了就順便翻譯下它的介紹和使用吧,反正就那么幾句話,待今后有時間再來進一步研究它了,至于它是否真的如我所言不能跨進程,就留待今后或者大家來驗證了。
AndroidMonkey是一個android庫。事實上它是在基于原生monkey的基礎上做成的一個方便測試和分析(比如:代碼覆蓋率)的一個測試庫。
測試人員/用戶可以很方便的使用這個庫來創建針對安卓gui應用的隨機測試腳本
為什么使用這個庫:
使用這個庫的話你可以只用幾行代碼就能編寫出針對你的app的隨機測試用例
你可以在你的測試代碼中加入斷言從而很方便的去判斷你的SUT(被測系統/應用)的當前情況(如果你用monkey的話是很難做到的)
你可以通過隨即測試對你的app做覆蓋率分析,這對我們的研究是很有用的(像我現在所做的)(譯者注:其實最后這一句話應該這樣子去理解:如果你是一個公司的采購,你想去評估一個應用是否足夠穩定滿足你的需求,那么你就會先試用做一些前期研究)
public class ContactAdderTest extends ActivityInstrumentationTestCase2<ContactAdder> { private int NUM_EVENTS = 1000; public ContactAdderTest() { super("com.example.android.contactmanager", ContactAdder.class); } @Override protected void setUp() throws Exception { super.setUp(); setActivityInitialTouchMode(false); } public void testMonkeyEvents() { Display display = getActivity().getWindowManager().getDefaultDisplay(); Instrumentation inst = getInstrumentation(); PackageManager pm = getActivity().getPackageManager(); Monkey monkey = new Monkey(display, "com.example.android.contactmanager", inst, pm); // Generate and fire a random event. for (int i = 0; i < NUM_EVENTS; i++) { monkey.nextRandomEvent(); } } }
使用簡介
簡介
以下是介紹如何使用這個庫:
詳情
C創建android項目
先創建一個Android Test Project項目,通過Android ADT[http://developer.android.com/sdk/eclipse-adt.html] 添加對AndroidMonkey庫的引用(引用jar或者項目)
創建測試類
創建一個普通的ActivityInstrumentationTestCase2測試類,然后加入如下的測試用例代碼:
public void testMonkeyEvents(){ Display display = getActivity().getWindowManager().getDefaultDisplay(); Instrumentation inst = getInstrumentation(); PackageManager pm = getActivity().getPackageManager(); Monkey monkey = new Monkey(display, packageToTest, inst, pm); for (int i = 0; i < NUM_EVENTS; i++){ monkey.nextRandomEvent(); } }
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。