中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于Instrumentation Framework的開源項目AndroidMonkey是怎樣的

發布時間:2021-11-22 19:19:28 來源:億速云 閱讀:201 作者:柒染 欄目:移動開發

基于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庫。既然碰上了就順便翻譯下它的介紹和使用吧,反正就那么幾句話,待今后有時間再來進一步研究它了,至于它是否真的如我所言不能跨進程,就留待今后或者大家來驗證了。

1. 概覽

AndroidMonkey是一個android庫。事實上它是在基于原生monkey的基礎上做成的一個方便測試和分析(比如:代碼覆蓋率)的一個測試庫。

測試人員/用戶可以很方便的使用這個庫來創建針對安卓gui應用的隨機測試腳本


Why this library:

為什么使用這個庫:


  • 使用這個庫的話你可以只用幾行代碼就能編寫出針對你的app的隨機測試用例


  • 你可以在你的測試代碼中加入斷言從而很方便的去判斷你的SUT(被測系統/應用)的當前情況(如果你用monkey的話是很難做到的)


  • 你可以通過隨即測試對你的app做覆蓋率分析,這對我們的研究是很有用的(像我現在所做的)(譯者注:其實最后這一句話應該這樣子去理解:如果你是一個公司的采購,你想去評估一個應用是否足夠穩定滿足你的需求,那么你就會先試用做一些前期研究)


Code example/代碼實例

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();                 }          } }

 
  


 

2.使用簡介

使用簡介

簡介

以下是介紹如何使用這個庫:

詳情

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(); } }

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

旬邑县| 肇州县| 宿迁市| 高州市| 晋州市| 平果县| 海宁市| 清涧县| 高青县| 玉屏| 宜春市| 木里| 开原市| 思南县| 庄河市| 潮安县| 沿河| 壶关县| 黄平县| 同德县| 通化县| 南安市| 南澳县| 固原市| 通渭县| 郁南县| 哈密市| 荔波县| 临桂县| 盱眙县| 五常市| 军事| 泾阳县| 平潭县| 赤城县| 八宿县| 永城市| 岢岚县| 汶上县| 芷江| 奉节县|