本發(fā)明涉及計算機領域,具體而言,涉及一種應用程序異常處理方法及裝置。
背景技術(shù):
在相關技術(shù)的應用程序測試(特別是游戲測試)工作過程中,常用的對游戲客戶端運行過程中存在的缺陷及錯誤進行記錄與反饋的具體過程如下:
第一步、配置測試環(huán)境,啟動游戲,執(zhí)行測試用例;
第二步、發(fā)現(xiàn)游戲系統(tǒng)中存在的缺陷,錯誤等(即Bug)后,截圖或者拍照,同時保存程序輸出的日志(Log),再反饋給研發(fā)人員;
第三步、最后等待研發(fā)人員對Bug進行修正后再做進一步地驗證;
其中,發(fā)現(xiàn)Bug并將其反饋至研發(fā)人員是至關重要的環(huán)節(jié),需要測試人員在發(fā)現(xiàn)Bug后及時記錄,并通過特定方式反饋給研發(fā)人員;記錄的方式可以采用截屏、拍照等方式來豐富記錄內(nèi)容;反饋的方式則可以包括面談,通過即時通訊工具發(fā)送文字和/或圖片并進行文字描述,發(fā)送郵件(附件可選擇圖片)等,在缺陷管理平臺上登記此Bug。
然而,對于游戲這類復雜程度較高的系統(tǒng),在特定情況下,一個Bug偶然出現(xiàn)一次后卻難以再次出現(xiàn),此時對于Bug出現(xiàn)后的及時記錄便顯得尤為重要;而在另外情況下,一個Bug出現(xiàn)的前置條件較多,即通過一系列操作才能導致此Bug產(chǎn)生,而此時則需要在反饋的過程中采用更加有效的方式將異常情況反饋給研發(fā)人員。
由此可見,相關技術(shù)中所提供的記錄與反饋Bug的主要缺陷在于:
(1)對于Bug出現(xiàn)前置條件較復雜的情況而言,截圖只能記錄Bug出現(xiàn)時的實際表現(xiàn),但卻無法記錄Bug出現(xiàn)前發(fā)生過的操作,這樣,在反饋Bug的時候只能通過文字或者口頭進行描述,測試人員可能記憶不準確,研發(fā)人員也可能理解錯誤,由此導致溝通的效率較低。
(2)對于難以再現(xiàn)的Bug而言,此種方案也無法在Bug出現(xiàn)的時候記錄其再現(xiàn)過程,只能通過不斷反復操作來嘗試對Bug進行再現(xiàn),從而浪費了測試人員大量的時間,而且反饋給研發(fā)人員時也所能夠提供的信息量也較少。
為了改進上述方案,對于出現(xiàn)前置條件較復雜的Bug或者Bug表現(xiàn)為一段時間的動畫而言,目前,可使用視頻錄屏軟件來進行屏幕錄制,其常見的流程如下:
第一步、運行游戲客戶端;
第二步、運行具有屏幕錄制功能的應用程序,將錄制窗口對準游戲窗口,并開始錄屏;
第三步、操作游戲使其產(chǎn)生Bug;
第四步、停止錄屏,將錄制的視頻反饋給研發(fā)人員。
然而,此種改進方案仍然存在如下缺陷:
(1)在發(fā)現(xiàn)Bug后,需要在運行具有屏幕錄制功能的應用程序之后,再執(zhí)行一次Bug出現(xiàn)流程,易導致無效的重復操作。
(2)如果長期運行具有屏幕錄制功能的應用程序,會占用較多計算機的硬件資源,例如:中央處理器(CPU)的占用率、硬盤的使用率,同時錄屏應用程序界面還會影響正常的游戲操作。
(3)如果具有屏幕錄制功能的應用程序無法保持長期運行,則難以記錄偶然出現(xiàn)的且難以再現(xiàn)的Bug,因此,此種方案無法記錄難以出現(xiàn)的Bug,適用條件具有一定的局限性。
(4)錄制的視頻無法使用即時通訊工具實時觀看,只能將錄制的視頻傳送到對端后,在對端本地進行觀看,而無法在即時通訊工具中的多人聊天頁面中播放,由此不便于反饋給多人。
針對上述的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種應用程序異常處理方法及裝置,以至少解決相關技術(shù)中所采用的應用程序異常運行的監(jiān)控方案易消耗較多的終端硬件資源,監(jiān)控效率較低的技術(shù)問題。
根據(jù)本發(fā)明實施例的一個方面,提供了一種應用程序異常處理方法,包括:
確定終端屏幕內(nèi)當前顯示的頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口;對頂層窗口內(nèi)連續(xù)播放的多幀圖像進行采集,其中,多幀圖像用于對運行待測試應用程序的過程中發(fā)生的異常進行檢測與分析。
可選地,確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口的方式包括以下至少之一:根據(jù)頂層窗口的名稱確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口;根據(jù)頂層窗口的類名確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口;根據(jù)頂層窗口的尺寸確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口。
可選地,對頂層窗口內(nèi)連續(xù)播放的多幀圖像進行采集包括:采集步驟,在運行待測試應用程序的時間進度上按照預設時間間隔采集每幀圖像,其中,預設時間間隔是由多幀圖像對應的幀率確定的;判斷步驟,判斷當前采集的圖像幀數(shù)是否大于預設閾值,如果否,則返回采集步驟;如果是,則執(zhí)行更新步驟;更新步驟,將按照預設閾值最早采集的一幀或多幀圖像進行刪除,并保留當前最新采集到的一幀或多幀圖像,返回采集步驟。
可選地,按照預設時間間隔采集每幀圖像包括:當每次到達圖像采集時刻時,獲取頂層窗口的尺寸信息以及頂層窗口在終端屏幕內(nèi)的位置信息;根據(jù)尺寸信息和位置信息采集與圖像采集時刻對應的位于頂層窗口內(nèi)的圖像。
可選地,按照預設時間間隔采集每幀圖像包括:當每次到達圖像采集時刻時,采集與圖像采集時刻對應的位于終端屏幕內(nèi)的圖像;獲取頂層窗口的尺寸信息以及頂層窗口在終端屏幕內(nèi)的位置信息;根據(jù)尺寸信息和位置信息從位于終端屏幕內(nèi)的圖像中截取出位于頂層窗口內(nèi)的圖像。
可選地,在對頂層窗口內(nèi)連續(xù)播放的多幀圖像進行采集之后,還包括以下至少之一:接收第一控制指令,并按照第一控制指令將多幀圖像轉(zhuǎn)換為預設格式的視頻文件;接收第二控制指令,并按照第二控制指令將采集多幀圖像時選用的第一圖片格式轉(zhuǎn)換為第二圖片格式;接收第三控制指令,并按照第三控制指令將多幀圖像持久性存儲于預設存儲空間;接收第四控制指令,并按照第四控制指令查找多幀圖像的當前存儲位置。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種應用程序異常處理裝置,包括:
確定模塊,用于確定終端屏幕內(nèi)當前顯示的頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口;采集模塊,用于對頂層窗口內(nèi)連續(xù)播放的多幀圖像進行采集,其中,多幀圖像用于對運行待測試應用程序的過程中發(fā)生的異常進行檢測與分析。
可選地,確定模塊,用于根據(jù)頂層窗口的名稱確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口;和/或,根據(jù)頂層窗口的類名確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口;和/或,根據(jù)頂層窗口的尺寸確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口。
可選地,采集模塊包括:采集單元,用于在運行待測試應用程序的時間進度上按照預設時間間隔采集每幀圖像,其中,預設時間間隔是由多幀圖像對應的幀率確定的;判斷單元,用于判斷當前采集的圖像幀數(shù)是否大于預設閾值,如果否,則返回采集單元;如果是,則轉(zhuǎn)到更新單元;更新單元,用于將按照預設閾值最早采集的一幀或多幀圖像進行刪除,并保留當前最新采集到的一幀或多幀圖像,返回采集單元。
可選地,采集單元包括:獲取子單元,用于當每次到達圖像采集時刻時,獲取頂層窗口的尺寸信息以及頂層窗口在終端屏幕內(nèi)的位置信息;采集子單元,用于根據(jù)尺寸信息和位置信息采集與圖像采集時刻對應的位于頂層窗口內(nèi)的圖像。
可選地,采集單元包括:采集子單元,用于當每次到達圖像采集時刻時,采集與圖像采集時刻對應的位于終端屏幕內(nèi)的圖像;獲取子單元,用于獲取頂層窗口的尺寸信息以及頂層窗口在終端屏幕內(nèi)的位置信息;處理子單元,用于根據(jù)尺寸信息和位置信息從位于終端屏幕內(nèi)的圖像中截取出位于頂層窗口內(nèi)的圖像。
可選地,上述裝置還包括:處理模塊,用于接收第一控制指令,并按照第一控制指令將多幀圖像轉(zhuǎn)換為預設格式的視頻文件;和/或,接收第二控制指令,并按照第二控制指令將采集多幀圖像時選用的第一圖片格式轉(zhuǎn)換為第二圖片格式;和/或,接收第三控制指令,并按照第三控制指令將多幀圖像持久性存儲于預設存儲空間;和/或,接收第四控制指令,并按照第四控制指令查找多幀圖像的當前存儲位置。
在本發(fā)明實施例中,采用確定終端屏幕內(nèi)當前顯示的頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口并對頂層窗口內(nèi)連續(xù)播放的多幀圖像進行采集的方式,通過采集到的多幀圖像對運行待測試應用程序的過程中發(fā)生的異常進行檢測與分析,達到了只有在確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口時,才會占用終端的硬件資源,而且通過持續(xù)采集多幀圖像還可以實時記錄最新發(fā)生的程序運行異常的目的,從而實現(xiàn)了節(jié)省終端硬件資源,提高監(jiān)控效率的技術(shù)效果,進而解決了相關技術(shù)中所采用的應用程序異常運行的監(jiān)控方案易消耗較多的終端硬件資源,監(jiān)控效率較低的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的應用程序異常處理方法的流程圖;
圖2是根據(jù)本發(fā)明實施例的應用程序異常處理裝置的結(jié)構(gòu)框圖;
圖3是根據(jù)本發(fā)明優(yōu)選實施例的應用程序異常處理裝置的結(jié)構(gòu)框圖。
具體實施方式
為了使本技術(shù)領域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設備固有的其它步驟或單元。
根據(jù)本發(fā)明實施例,提供了一種應用程序異常處理方法的實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本發(fā)明實施例的應用程序異常處理方法的流程圖,如圖1所示,該方法包括如下步驟:
步驟S12,確定終端屏幕內(nèi)當前顯示的頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口;
步驟S14,對頂層窗口內(nèi)連續(xù)播放的多幀圖像進行采集,其中,多幀圖像用于對運行待測試應用程序的過程中發(fā)生的異常進行檢測與分析。
通過上述步驟,可以采用確定終端屏幕內(nèi)當前顯示的頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口并對頂層窗口內(nèi)連續(xù)播放的多幀圖像進行采集的方式,通過采集到的多幀圖像對運行待測試應用程序的過程中發(fā)生的異常進行檢測與分析,達到了只有在確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口時,才會占用終端的硬件資源,而且通過持續(xù)采集多幀圖像還可以實時記錄最新發(fā)生的程序運行異常的目的,從而實現(xiàn)了節(jié)省終端硬件資源,提高監(jiān)控效率的技術(shù)效果,進而解決了相關技術(shù)中所采用的應用程序異常運行的監(jiān)控方案易消耗較多的終端硬件資源,監(jiān)控效率較低的技術(shù)問題。
上述用于對應用程序運行異常進行檢測與分析的監(jiān)控程序可以在終端開機啟動后自動在后臺運行或者在終端正常啟動運行完畢進入桌面后再開始運行,無界面顯示,從而實現(xiàn)僅需一次啟動便可在后臺持續(xù)執(zhí)行,無需每次啟動應用程序時再啟動上述監(jiān)控程序,而且對測試過程無任何負面影響。終端的使用人員在測試過程也不會受到該監(jiān)控程序干擾。然后測試人員在對游戲的測試環(huán)境進行配置后,開始執(zhí)行應用程序運行測試。此外,監(jiān)控程序在未進行應用程序運行測試時處于等待狀態(tài),僅消耗較少的終端硬件資源。
可選地,在步驟S12中,確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口的方式包括以下至少之一:
方式一、根據(jù)頂層窗口的名稱確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口,例如:可使用python的pywin32庫來獲取窗口的名稱,如果窗口的名稱中包含特定關鍵詞即可確定其為游戲窗口;
方式二、根據(jù)頂層窗口的類名確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口,例如:可使用python的ctypes庫來獲取窗口的類名;
方式三、根據(jù)頂層窗口的尺寸確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口,例如:可使用python的pywin32庫來獲取窗口的尺寸。
監(jiān)控程序在后臺獲取當前終端的顯示屏幕內(nèi)最頂層的窗口標識信息(包括但不限于上述窗口的名稱、窗口的類名、窗口的尺寸),然后根據(jù)窗口標識信息來判斷該窗口是否為游戲窗口,游戲窗口的相關標識信息可以在監(jiān)控程序的配置文件中進行修改。如果確定頂層窗口不是游戲窗口,則判定為使用人員目前尚未執(zhí)行游戲測試,為了節(jié)省CPU資源,監(jiān)控程序處于等待狀態(tài)。
可選地,在步驟S14中,對頂層窗口內(nèi)連續(xù)播放的多幀圖像進行采集可以包括以下執(zhí)行步驟:
步驟S141,在運行待測試應用程序的時間進度上按照預設時間間隔采集每幀圖像,其中,預設時間間隔是由多幀圖像對應的幀率確定的;
步驟S142,判斷當前采集的圖像幀數(shù)是否大于預設閾值,如果否,則返回步驟S141;如果是,則執(zhí)行步驟S143;
步驟S143,將按照預設閾值最早采集的一幀或多幀圖像進行刪除,并保留當前最新采集到的一幀或多幀圖像,返回步驟S141。
通過后臺啟動監(jiān)控程序,對游戲測試過程進行實時監(jiān)控與反饋,然后不斷進行截圖和保存操作,由此能夠及時地記錄難以再現(xiàn)的Bug,同時還能夠高效地進行Bug反饋。
對于截圖后存儲的圖片格式,通常選取壓縮率較高的格式,例如:jpg,這樣能夠節(jié)省圖片存儲所占用的硬盤空間。更為重要的是,在通常情況下,最近一段時間內(nèi)的游戲過程已包含有大量的有效信息,而先前存儲并轉(zhuǎn)化的視頻文件對Bug產(chǎn)生的影響相對較小,這樣只要存儲最近的N張圖片即可滿足測試需求,其中,N為正整數(shù),N可以依據(jù)需要存儲并轉(zhuǎn)化的視頻文件的大小(即視頻的時間長短)來確定,即如果需要存儲時間更久的游戲視頻影像,則可以在硬盤空間容量充裕的情況下,調(diào)高N的取值,這樣當存儲的圖片數(shù)量超過N時,可以將最早存儲的一張或多張圖片刪除,再存儲最新截屏得到的圖片,從而使得存儲的圖片數(shù)目始終為N張,也不會因存儲并轉(zhuǎn)化的視頻文件過大而造成硬盤空間不足。
在每次采集完畢一幀圖像后,監(jiān)控程序會在后臺等待一段較短時間,然后再采集下一幀圖像,以達到后臺持續(xù)對游戲進行監(jiān)控的效果。而對于等待的時間長度,需要根據(jù)實際情況進行權(quán)衡,如果等待時間過短,易造成CPU占有率過高,而如果等待時間過長,那么每秒鐘保存的圖片數(shù)量過少,易導致最后轉(zhuǎn)化的視頻文件的幀率過低,回放效果較差。對于游戲視頻而言,視頻文件的幀率在10幀左右即可滿足回放需求,因而,上述等待時間可設置為0.1秒左右。
在測試人員進行游戲測試的過程中,即監(jiān)控程序持續(xù)存儲圖片的過程中,如果測試人員認為需要對最近一段時間的游戲過程進行存儲,例如:已經(jīng)發(fā)現(xiàn)Bug,尤其是難以判斷由何種操作導致此Bug發(fā)生時,可以選擇視頻存儲操作。
通過對游戲窗口的實時截圖與保存,能夠記錄Bug出現(xiàn)前一段時間內(nèi)的畫面與操作,尤其是對于難以再現(xiàn)的Bug,有助于更好地記錄Bug產(chǎn)生的前提條件。另外,通過上述多幀圖像的保存與圖片刪除操作相結(jié)合,實現(xiàn)了僅占用一定硬盤空間即可保留最近一段時間的游戲畫面信息。
可選地,在步驟S141中,按照預設時間間隔采集每幀圖像可以包括以下執(zhí)行步驟:
步驟S1411,當每次到達圖像采集時刻時,獲取頂層窗口的尺寸信息以及頂層窗口在終端屏幕內(nèi)的位置信息;
步驟S1412,根據(jù)尺寸信息和位置信息采集與圖像采集時刻對應的位于頂層窗口內(nèi)的圖像。
當確定頂層窗口為游戲窗口時,可以認定測試人員當前在對游戲運行過程進行測試,需要對游戲窗口中顯示的圖像進行存儲。為了保存視頻文件,可以采用先存儲單張圖片然后再連續(xù)播放形成視頻文件的方式進行。由此,便需要對游戲窗口進行截屏并存儲為圖片格式。在優(yōu)選實施過程中,可以根據(jù)游戲窗口的尺寸信息以及游戲窗口在終端屏幕內(nèi)的位置信息直接對游戲窗口進行截圖,例如:使用python的PIL庫。
可選地,在步驟S141中,按照預設時間間隔采集每幀圖像可以包括以下執(zhí)行步驟:
步驟S1413,當每次到達圖像采集時刻時,采集與圖像采集時刻對應的位于終端屏幕內(nèi)的圖像;
步驟S1414,獲取頂層窗口的尺寸信息以及頂層窗口在終端屏幕內(nèi)的位置信息;
步驟S1415,根據(jù)尺寸信息和位置信息從位于終端屏幕內(nèi)的圖像中截取出位于頂層窗口內(nèi)的圖像。
在優(yōu)選實施過程中,除了可以根據(jù)游戲窗口的尺寸信息以及游戲窗口在終端屏幕內(nèi)的位置信息直接對游戲窗口進行截圖之外,還可以對終端的顯示桌面進行截圖,再根據(jù)游戲窗口的尺寸和顯示位置進行裁剪,例如:使用QT。
可選地,在步驟S14,對頂層窗口內(nèi)連續(xù)播放的多幀圖像進行采集之后,還可以包括以下執(zhí)行步驟至少之一:
步驟S15,接收第一控制指令,并按照第一控制指令將多幀圖像轉(zhuǎn)換為預設格式的視頻文件;
步驟S16,接收第二控制指令,并按照第二控制指令將采集多幀圖像時選用的第一圖片格式轉(zhuǎn)換為第二圖片格式;
步驟S17,接收第三控制指令,并按照第三控制指令將多幀圖像持久性存儲于預設存儲空間;
步驟S18,接收第四控制指令,并按照第四控制指令查找多幀圖像的當前存儲位置。
當需要執(zhí)行視頻存儲操作時,由于監(jiān)控程序不具備交互界面,因此,只能采用快捷鍵的形式向后臺發(fā)送指令。在優(yōu)選實施例中,可以使用python的pyHook庫實現(xiàn)監(jiān)聽按鍵事件,當測試人員按下預設快捷鍵時,后臺便可以執(zhí)行相應的操作,同時依靠聲音來通知操作結(jié)果,其具體操作可以包括但不限于以下至少之一:
(1)響應測試人員按下的預設快捷鍵,接收第一控制指令,執(zhí)行存儲為視頻文件的操作,可以使用FFmpeg程序?qū)D片轉(zhuǎn)換為視頻文件,需要預先設置轉(zhuǎn)換成視頻的默認圖片個數(shù)N,然后再根據(jù)圖片創(chuàng)建時間(例如:可由python的os庫獲取)來選擇距離當前時刻最近的N張圖片進行轉(zhuǎn)換。
(2)響應測試人員按下的預設快捷鍵,接收第二控制指令,執(zhí)行存儲為GIF格式的操作,上述存儲的圖片除了轉(zhuǎn)換成視頻格式之外,還可以選擇轉(zhuǎn)換成GIF格式,由于GIF格式具有輕量特性,即GIF格式圖片的大小通常要小于其他格式(例如:JPG格式)圖片的大小,可以在即時通訊工具中直接發(fā)送,因此,其作為一種位圖圖形文件格式,通過存儲多幅彩色圖像可以進一步構(gòu)成簡單的動畫,便于在即時通訊工具中直接顯示,以實現(xiàn)實時向多人進行反饋。
需要說明的是,大多數(shù)即時通訊工具會限制GIF格式圖片的尺寸,因此,在轉(zhuǎn)換過程中可以將尺寸以及動畫長度進行縮放,使其最終尺寸滿足即時通訊工具的限制。
(3)響應測試人員按下的預設快捷鍵,接收第三控制指令,執(zhí)行存儲圖片集合的操作,盡管動態(tài)影像更容易描述游戲在執(zhí)行過程中的具體表現(xiàn),但對于研發(fā)人員而言,在特定時間段內(nèi)的單獨靜態(tài)影像序列更容易幫助其定位游戲過程中所產(chǎn)生的異常問題。此時,可以將當前存儲的圖片集合單獨保存到本地的指定文件夾內(nèi),并且保存到本地的指定文件夾內(nèi)的圖片集合不會自動刪除,而需要測試人員或研發(fā)人員根據(jù)硬盤容量和圖片重要程度決定是否進行刪除,或者設置第三方存儲服務器,當獲取到存儲圖片集合指令時,將圖片集合直接發(fā)送至第三方存儲服務器上進行存儲備份。
(4)響應測試人員按下的預設快捷鍵,接收第四控制指令,執(zhí)行打開文件夾的操作,為了便于在圖片或圖片集合存儲后,盡快找到存儲位置,可以采用快捷鍵操作直接打開剛才保存的圖片或圖片集合所在的文件夾,從而更加便捷地進行Bug反饋。
由于上述保存操作需要占用終端的硬件資源,所以在保存過程中,對于上述多幀圖像的持續(xù)截屏工作可以暫時停止,待保存結(jié)束后再繼續(xù)執(zhí)行,同時還可以提供特殊音效表示轉(zhuǎn)換成功或者失敗。
在上述采集過程以及轉(zhuǎn)化過程執(zhí)行完畢后,測試人員需要將相關Bug信息反饋給相應的研發(fā)人員,對于存儲的視頻文件而言,可以直接通過郵件或者即時通訊工具的形式發(fā)送給對應的研發(fā)人員,也可請研發(fā)人員親自過來觀看。對于GIF格式圖片而言,可以直接通過即時通訊工具發(fā)送給對方,以便對方實時查看圖片內(nèi)容而無需下載;更為重要的是,GIF格式的圖片還可以發(fā)送至即時通訊工具的群聊中,以便于多人實時查看圖片內(nèi)容并進行實時交流。最后,保存的圖片集合可供研發(fā)人員進行分析,亦可通過即時聊天工具發(fā)送多張圖片進行對比。
根據(jù)本發(fā)明實施例,還提供了一種應用程序異常處理裝置的實施例,圖2是根據(jù)本發(fā)明實施例的應用程序異常處理裝置的結(jié)構(gòu)框圖,如圖2所示,該裝置包括:確定模塊10,用于確定終端屏幕內(nèi)當前顯示的頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口;采集模塊20,用于對頂層窗口內(nèi)連續(xù)播放的多幀圖像進行采集,其中,多幀圖像用于對運行待測試應用程序的過程中發(fā)生的異常進行檢測與分析。
可選地,確定模塊10,用于根據(jù)頂層窗口的名稱確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口;和/或,根據(jù)頂層窗口的類名確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口;和/或,根據(jù)頂層窗口的尺寸確定頂層窗口為運行待測試應用程序觸發(fā)的顯示窗口。
可選地,圖3是根據(jù)本發(fā)明優(yōu)選實施例的應用程序異常處理裝置的結(jié)構(gòu)框圖,如圖3所示,采集模塊20可以包括:采集單元200,用于在運行待測試應用程序的時間進度上按照預設時間間隔采集每幀圖像,其中,預設時間間隔是由多幀圖像對應的幀率確定的;判斷單元202,用于判斷當前采集的圖像幀數(shù)是否大于預設閾值,如果否,則返回采集單元;如果是,則轉(zhuǎn)到更新單元;更新單元204,用于將按照預設閾值最早采集的一幀或多幀圖像進行刪除,并保留當前最新采集到的一幀或多幀圖像,返回采集單元。
可選地,采集單元200可以包括:獲取子單元(圖中未示出),用于當每次到達圖像采集時刻時,獲取頂層窗口的尺寸信息以及頂層窗口在終端屏幕內(nèi)的位置信息;采集子單元(圖中未示出),用于根據(jù)尺寸信息和位置信息采集與圖像采集時刻對應的位于頂層窗口內(nèi)的圖像。
可選地,采集單元200可以包括:采集子單元(圖中未示出),用于當每次到達圖像采集時刻時,采集與圖像采集時刻對應的位于終端屏幕內(nèi)的圖像;獲取子單元(圖中未示出),用于獲取頂層窗口的尺寸信息以及頂層窗口在終端屏幕內(nèi)的位置信息;處理子單元(圖中未示出),用于根據(jù)尺寸信息和位置信息從位于終端屏幕內(nèi)的圖像中截取出位于頂層窗口內(nèi)的圖像。
可選地,如圖3所示,上述裝置還可以包括:處理模塊30,用于接收第一控制指令,并按照第一控制指令將多幀圖像轉(zhuǎn)換為預設格式的視頻文件;和/或,接收第二控制指令,并按照第二控制指令將采集多幀圖像時選用的第一圖片格式轉(zhuǎn)換為第二圖片格式;和/或,接收第三控制指令,并按照第三控制指令將多幀圖像持久性存儲于預設存儲空間;和/或,接收第四控制指令,并按照第四控制指令查找多幀圖像的當前存儲位置。
通過采用本發(fā)明實施例所提供的應用程序異常處理裝置,監(jiān)控程序在后臺運行,當確定終端尚未執(zhí)行游戲測試時,將處于等待狀態(tài)并消耗較少的硬件資源;另外,無需多次重復啟動該監(jiān)控程序,使用方便且消耗已經(jīng)資源較少。進一步地,在采集到上述多幀圖像之后,測試人員還可以向研發(fā)人員進行bug反饋時存在更多的選擇途徑,例如:將存儲的圖片轉(zhuǎn)化為視頻文件,將存儲的圖片轉(zhuǎn)化為GIF格式圖片,直接存儲圖片集合至特定存儲空間等,從而有效地提高了測試人員與研發(fā)人員之間的溝通效率與游戲項目的開發(fā)效率。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可為個人計算機、服務器或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。