一種Monkey測試方法及裝置的制造方法
【技術領域】
[0001]本發明涉及計算機技術領域,特別是涉及一種Monkey測試方法及裝置。
【背景技術】
[0002]目前,基于Android、1S等操作平臺開發的應用軟件越來越多,用戶在使用應用軟件的過程中,當用戶所點擊的操作控件區域所關聯的內部程序有bug時,應用軟件會由于程序出錯而出現閃退等問題。為了保證應用軟件在使用過程中的穩定性,盡量避免由于應用軟件內部程序的bug所造成的閃退等問題,對所開發的應用軟件進行Monkey測試,修復應用軟件內部程序中的bug。
[0003]Monkey是可以運行在模擬器里或實際設備中的程序,它向系統發送隨機的偽輸入事件流(如按鍵輸入、觸摸屏輸入以及手勢輸入等),實現對正在開發的應用程序進行穩定性測試。現有技術中,Monkey測試程序隨機生成一個應用軟件界面上的點擊坐標,自動觸發所述點擊坐標所產生的輸入操作作為一個偽輸入事件,若此時應用軟件的程序出錯閃退,則表明應用軟件與所述點擊坐標區域關聯的內部程序有bug,則技術人員找出上述內部程序中的bug并進行修復。
[0004]采用上述方法進行Monkey測試時,只有點擊坐標為應用軟件界面上的操作控件區域內的坐標時,自動觸發所述點擊坐標才能產生偽輸入事件。由于現有技術中點擊坐標是Monkey測試程序隨機生成的,當點擊坐標不是應用軟件界面上操作控件區域內的坐標時,無法觸發偽輸入事件,此次Monkey測試執行無效。一般情況下,應用軟件界面上有大量的非操作控件區域,觸發偽輸入事件的幾率低,降低Monkey測試執行效率。
【發明內容】
[0005]本發明解決的技術問題在于提供一種Monkey測試方法及裝置,從預設創建的控件坐標數據庫中選取被觸發時能夠產生偽輸入事件的控件坐標,避免使用隨機生成的點擊坐標進行Monkey測試時,無法產生偽輸入事件導致Monkey測試無效的問題。
[0006]為此,本發明解決技術問題的技術方案是:
[0007]—種Monkey測試方法,給待測試應用軟件預先創建控件坐標數據庫,所述控件坐標數據庫存儲有多個控件坐標及每個控件坐標所在的顯示界面的標識,每個所述控件坐標被觸發時都能夠產生一個偽輸入事件,所述方法包括:
[0008]從所述控件坐標數據庫中選取當前顯示界面的標識所對應的至少一個控件坐標;
[0009]依次觸發所獲取的控件坐標;
[0010]響應觸發每個所述控件坐標所產生的偽輸入事件,判斷所述待測試應用軟件是否出錯閃退;
[0011]當所述待測試應用軟件出錯閃退時,捕獲堆棧中所述待測試應用軟件閃退前所響應的最后一個偽輸入事件所調用的應用程序。
[0012]可選的,所述給待測試的應用軟件預先創建控件坐標數據庫包括:
[0013]獲取待測試應用軟件每個顯示界面上的基本操作控件的坐標作為控件坐標;
[0014]存儲每個控件坐標與此控件坐標所在的顯示界面的標識之間的對應關系。
[0015]可選的,所述給待測試的應用軟件預先創建控件坐標數據庫還包括:
[0016]給所述待測試應用軟件的每個顯示界面生成第一預設數量的第一點擊坐標,每個所述第一點擊坐標與此第一點擊坐標所在的顯示界面中的基本操作控件的坐標不同;
[0017]依次觸發每個第一點擊坐標;
[0018]判斷觸發所述第一點擊坐標后是否產生偽輸入事件,使得被觸發的第一點擊坐標所在的顯示界面跳轉到新顯示界面;
[0019]當觸發所述第一點擊坐標產生偽輸入事件時,將所述第一點擊坐標作為控件坐標,存儲所述控件坐標以及此控件坐標所在的顯示界面的標識之間的對應關系。
[0020]可選的,所述給待測試的應用軟件預先創建控件坐標數據庫包括:
[0021]按照預定的順序以及預設的間隔分別給所述待測試的應用軟件的每個顯示界面生成多個第二點擊坐標;
[0022]依次觸發每個第二點擊坐標;
[0023]判斷觸發所述第二點擊坐標后是否產生偽輸入事件,使得被觸發的第二點擊坐標所在的顯示界面跳轉到新顯示界面;
[0024]當觸發所述第二點擊坐標產生偽輸入事件時,將所述第二點擊坐標作為控件坐標,存儲所述控件坐標與此控件坐標所在的顯示界面的標識之間的對應關系。
[0025]可選的,所述給待測試的應用軟件預先創建控件坐標數據庫還包括:
[0026]存儲每個控件坐標被觸發偽輸入事件后所跳轉到的新顯示界面的標識與此控件坐標與之間的對應關系。
[0027]可選的,所述方法還包括:
[0028]生成第二預設數量的與控件坐標數據庫中所存儲的當前顯示界面的標識所對應的控件坐標不同的第三點擊坐標;
[0029]依次觸發每個第三點擊坐標;
[0030]判斷觸發所述第三點擊坐標后是否產生偽輸入事件,使得當前顯示界面跳轉到新顯示界面;
[0031]當觸發所述第三點擊坐標產生偽輸入事件時,響應觸發所述第三點擊坐標所產生的偽輸入事件,判斷所述待測試應用軟件是否出錯閃退;
[0032]當所述待測試應用軟件出錯閃退時,捕獲堆棧中所述第三點擊坐標所產生的偽輸入事件所調用的應用程序。
[0033]可選的,所述方法還包括:
[0034]當觸發所述第三點擊坐標產生偽輸入事件時,將所述第三點擊坐標作為控件坐標,將所述控件坐標與所述當前顯示界面的標識之間的對應關系存儲至所述控件坐標數據庫。
[0035]一種Monkey測試裝置,所述裝置包括:
[0036]創建模塊,用于給待測試應用軟件預先創建控件坐標數據庫,所述控件坐標數據庫存儲有多個控件坐標及每個控件坐標所在的顯示界面的標識,每個所述控件坐標被觸發時都能夠產生一個偽輸入事件;
[0037]選取模塊,用于從所述控件坐標數據庫中選取當前顯示界面的標識所對應的至少一個控件坐標;
[0038]第一觸發模塊,用于依次觸發所獲取的控件坐標;
[0039]第一判斷模塊,用于響應觸發每個所述控件坐標所產生的偽輸入事件,判斷所述待測試應用軟件是否出錯閃退;
[0040]第一捕獲模塊,用于當所述待測試應用軟件出錯閃退時,捕獲堆棧中所述待測試應用軟件閃退前所響應的最后一個偽輸入事件所調用的應用程序。
[0041 ] 可選的,所述創建模塊包括:
[0042]獲取單元,用于獲取待測試應用軟件每個顯示界面上的基本操作控件的坐標作為控件坐標;
[0043]第一存儲單元,用于存儲每個控件坐標與此控件坐標所在的顯示界面的標識之間的對應關系。
[0044]可選的,所述創建模塊還包括:
[0045]第一生成單元,用于給所述待測試應用軟件的每個顯示界面生成第一預設數量的第一點擊坐標,每個所述第一點擊坐標與此第一點擊坐標所在的顯示界面中的基本操作控件的坐標不同;
[0046]第一觸發單元,用于依次觸發每個第一點擊坐標;
[0047]第一判斷單元,用于判斷觸發所述第一點擊坐標后是否產生偽輸入事件,使得被觸發的第一點擊坐標所在的顯示界面跳轉到新顯示界面;
[0048]第二存儲單元,用于當觸發所述第一點擊坐標產生偽輸入事件時,將所述第一點擊坐標作為控件坐標,存儲所述控件坐標以及此控件坐標所在的顯示界面的標識之間的對應關系。
[0049]可選的,所述創建模塊包括:
[0050]第二生成單元,用于按照預定的順序以及預設的間隔分別給所述待測試的應用軟件的每個顯示界面生成多個第二點擊坐標;
[0051]第二觸發單元,用于依次觸發每個第二點擊坐標;
[0052]第二判斷單元,用于判斷觸發所述第二點擊坐標后是否產生偽輸入事件,使得被觸發的第二點擊坐標所在的顯示界面跳轉到新顯示界面;
[0053]第三存儲單元,用于當觸發所述第二點擊坐標產生偽輸入事件時,將所述第二點擊坐標作為控件坐標,存儲所述控件坐標與此控件坐標所在的顯示界面的標識之間的對應關系。
[0054]可選的,所述創建模塊還包括:
[0055]第四存儲單元,用于存儲每個控件坐標被觸發偽輸入事件后所跳轉到的新顯示界面的標識與此控件坐標與之間的對應關系。
[0056]可選的,所述裝置還包括:
[0057]生成模塊,用于生成第二預設數量的與控件坐標數據庫中所存儲的當前顯示界面的標識所對應的控件坐標不同的第三點擊坐標;
[0058]第二觸發模塊,用于依次觸發每個第三點擊坐標;
[0059]第二判斷模塊,用于判斷觸發所述第三點擊坐標后是否產生偽輸入事件,使得當前顯示界面跳轉到新顯示界面;
[0060]第三判斷模塊,用于當觸發所述第三點擊坐標產生偽輸入事件時,響應觸發所述第三點擊坐標所產生的偽輸入事件,判斷所述待測試應用軟件是否出錯閃退;
[0061]第二捕獲模塊,用于當所述待測試應用軟件出錯閃退時,捕獲堆棧中所述第三點擊坐標所產生的偽輸入事件所調用的應用程序。
[0062]可選的,所述裝置包括:
[0063]存儲模塊,用于當觸發所述第三點擊坐標產生偽輸入事件時,將所述第三點擊坐標作為控件坐標,將所述控件坐標與所述當前顯示界面的標識之間的對應關系存儲至所述控件坐標數據庫。
[0064]通過上述技術方案可知,本發明有如下有益效果:
[0065]本發明提供了一種Monkey測試方法及裝置,給待測試應用軟件預先創建控件坐標數據庫,所述控件坐標數據庫存儲有多個控件坐標及每個控件坐標所在的顯示界面的標識,每個所述控件坐標被觸發時都能夠產生一個偽輸入事件,從所述控件坐標數據庫中選取當前顯示界面的標識所對應的至少一個控件坐標;依次觸發所獲取的控件坐標;響應觸發每個所述控件坐標所產生的偽輸入事件,判斷所述待測試應用軟件是否出錯閃退;當所述待測試應用軟件出錯閃退時,捕獲堆棧中所述待測試應用軟件閃退前所響應的最后一個偽輸入事件所調用的應用程序。從所述控件坐標數據庫中選取控件坐標對待測試應用軟件進行Monkey測試,由于每個控件坐標被觸發時都能夠產生偽輸入事件,利用所述控件坐標數據庫中的控件坐標進行Monkey測試執行有效,避免觸發隨機生成的點擊坐標無法產生偽輸入事件導致Monkey測試失效的問題,提高Monkey測試的執行效率。若待測試應用軟件在響應偽輸入事件出錯閃退時,則所調用的應用程序有bug,捕獲所調用的應用程序進行修復。
【附圖說明】
[0066]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0067]圖1為本發明一種Monkey測試方法實施例一流程圖;
[0068]圖2為本發明一種Monkey測試方法實施例二流程圖;
[0069]圖3為本發明一種Monkey測試方法實施例三流程圖;
[0070]圖4為待測應用軟件的一個顯示界面示意圖;
[0071]圖5為本發明一種Monkey測試裝置實施例四結構示意圖;
[0072]圖6為本發明一種Monkey測試裝置實施例五結構示意圖;
[0073]圖7為本發明一種Monkey測試裝置實施例六結構示意圖;
[0074]圖8為本發明一種服務器結構示意圖。
【具體實施方式】
[0