本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種異常處理方法和裝置。
背景技術(shù):
即時(shí)通信是互聯(lián)網(wǎng)中一項(xiàng)應(yīng)用非常廣泛的服務(wù)。用戶通過即時(shí)通信軟件可互相發(fā)送文本消息、視音頻消息、文件等內(nèi)容。除此之外,即時(shí)通信軟件中還存在一種特殊用戶——聊天機(jī)器人。聊天機(jī)器人是一個(gè)用來模擬人類對話或聊天的程序,典型案例有人人網(wǎng)推出的小黃雞、微軟公司推出的微軟小冰等。聊天機(jī)器人除回答用戶的提問外,還可向第三方應(yīng)用提供主動向用戶發(fā)送各類消息的API。
在這個(gè)智能移動設(shè)備飛速發(fā)展的時(shí)代,人們在生活、生產(chǎn)中的各類需求催生出了各式各樣的移動應(yīng)用程序。為保證移動應(yīng)用程序的產(chǎn)品質(zhì)量,必須對其進(jìn)行全面、充分的測試。在測試過程中,測試應(yīng)用實(shí)時(shí)監(jiān)控被測對象的運(yùn)行狀態(tài),如CPU占用率、內(nèi)存消耗、每秒平均幀率等。測試應(yīng)用一旦發(fā)現(xiàn)測試對象出現(xiàn)異常,需要通過某種報(bào)警方式通知測試人員。
目前,最常用的報(bào)警方式是測試應(yīng)用在發(fā)現(xiàn)測試對象異常時(shí),在移動設(shè)備本地屏幕上顯示相關(guān)報(bào)警信息或發(fā)出報(bào)警音效等類似方式。隨著測試技術(shù)水平的不斷進(jìn)步以及測試任務(wù)的復(fù)雜化,自動化測試在測試領(lǐng)域的作用越來越明顯。自動化測試能代理一部分人力執(zhí)行測試。但是自動化測試應(yīng)用難以像人類一樣識別這類報(bào)警信息,導(dǎo)致這一技術(shù)方案僅適用于手工測試,無法在自動化測試中應(yīng)用。
另一種常用的方式是測試應(yīng)用在發(fā)現(xiàn)異常時(shí),調(diào)用聊天機(jī)器人或自動化測試應(yīng)用的API,發(fā)送報(bào)警信息給測試人員。報(bào)警信息可包括測試對象的何種參數(shù)指標(biāo)異常、運(yùn)行截圖等。一般地,測試過程是一個(gè)動態(tài)的、持續(xù)的、復(fù)雜的執(zhí)行過程,出現(xiàn)異常時(shí),無論報(bào)警內(nèi)容為異常指標(biāo)的文本、近一段時(shí)間內(nèi)的參數(shù)指標(biāo)或者屏幕截圖,只能顯示出被測對象出現(xiàn)異常,無法獲知異常原因,特別是針對測試對象非正常結(jié)束運(yùn)行的情況,這不利于開發(fā)人員定位異常原因,進(jìn)而修復(fù)問題。
針對相關(guān)技術(shù)中在測試對象出現(xiàn)異常時(shí)只顯示報(bào)警信息無法及時(shí)獲知故障原因的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提供一種異常處理方法和裝置,以解決在測試對象出現(xiàn)異常時(shí)只顯示報(bào)警信息無法及時(shí)獲知故障原因的問題。
為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種異常處理方法,該方法包括:接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存;接收通知消息,其中,所述通知消息用于指示所述測試對象的運(yùn)行出現(xiàn)異常狀態(tài);響應(yīng)于所述通知消息獲取所述異常狀態(tài)的發(fā)生時(shí)間;至少將在所述發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的所述屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件;輸出所述多媒體文件。
進(jìn)一步地,至少將在所述發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的所述屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件包括:將在所述發(fā)生時(shí)間之前和所述發(fā)生時(shí)間之后的預(yù)定時(shí)間段內(nèi)的所述屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。
進(jìn)一步地,接收所述通知消息包括:通過HTTP接口接收文本類型的所述通知消息。
進(jìn)一步地,所述預(yù)定格式包括GIF格式,至少將在所述發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的所述屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件包括:通過視頻編碼程序至少將在所述發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的FLV格式的屏幕視頻轉(zhuǎn)碼,得到所述GIF格式的多媒體文件。
為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種異常處理方法,該方法包括:對測試對象進(jìn)行測試時(shí)錄制屏幕視頻,將所述屏幕視頻發(fā)送至服務(wù)器;在檢測到所述測試對象的運(yùn)行出現(xiàn)異常狀態(tài)時(shí),向所述服務(wù)器發(fā)出通知消息,其中,所述通知消息用于指示所述測試對象的運(yùn)行出現(xiàn)異常狀態(tài),所述通知消息用于指示所述服務(wù)器獲取所述異常狀態(tài)的發(fā)生時(shí)間,所述服務(wù)器至少將在所述發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的所述屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。
進(jìn)一步地,在向所述服務(wù)器發(fā)出通知消息之前,所述方法還包括:獲取所述異常狀態(tài)的異常類型;判斷距離上一次輸出所述異常類型的時(shí)間是否超過預(yù)設(shè)閾值;其中,在判斷出超過所述預(yù)設(shè)閾值時(shí),向所述服務(wù)器發(fā)出所述通知消息,在判斷出沒有超過所述預(yù)設(shè)閾值時(shí),不向所述服務(wù)器發(fā)出所述通知消息。
為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種異常處理裝置,該裝置包括:第一接收單元,用于接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存;第二接收單元,用于接收通知消息,其中,所述通知消息用于指示所述測試對象的運(yùn)行出現(xiàn)異常狀態(tài);獲取單元,用于響應(yīng)于所述通知消息獲取所述異常狀態(tài)的發(fā)生時(shí)間;轉(zhuǎn)換單元,用于至少將在所述發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的所述屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件;輸出單元,用于輸出所述多媒體文件。
為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種異常處理裝置,該裝置包括:錄制單元,用于對測試對象進(jìn)行測試時(shí)錄制屏幕視頻;第一發(fā)送單元,用于將所述屏幕視頻發(fā)送至服務(wù)器;第二發(fā)送單元,用于在檢測到所述測試對象的運(yùn)行出現(xiàn)異常狀態(tài)時(shí),向所述服務(wù)器發(fā)出通知消息,其中,所述通知消息用于指示所述測試對象的運(yùn)行出現(xiàn)異常狀態(tài),所述通知消息用于指示所述服務(wù)器獲取所述異常狀態(tài)的發(fā)生時(shí)間,所述服務(wù)器至少將在所述發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的所述屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。
為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種異常處理裝置,該裝置包括:第三接收單元,用于接收多媒體文件,其中,所述多媒體文件為服務(wù)器輸出的多媒體文件,所述服務(wù)器接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存,所述服務(wù)器接收通知消息,所述通知消息用于指示所述測試對象的運(yùn)行出現(xiàn)異常狀態(tài),所述服務(wù)器響應(yīng)于所述通知消息獲取所述異常狀態(tài)的發(fā)生時(shí)間,所述服務(wù)器至少將在所述發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的所述屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件;播放單元,用于播放所述多媒體文件。
本發(fā)明通過接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存;接收通知消息,其中,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài);響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間;至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件;輸出多媒體文件,由于至少將異常狀態(tài)發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件輸出,解決了在測試對象出現(xiàn)異常時(shí)只顯示報(bào)警信息無法及時(shí)獲知故障原因的問題,進(jìn)而達(dá)到了通過異常狀態(tài)發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻及時(shí)獲知故障原因的效果。
附圖說明
構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明第一實(shí)施例的異常處理方法的流程圖;
圖2是根據(jù)本發(fā)明第二實(shí)施例的異常處理方法的流程圖;
圖3是根據(jù)本發(fā)明第三實(shí)施例的異常處理方法的流程圖;
圖4是根據(jù)本發(fā)明實(shí)施例的異常處理系統(tǒng)的示意圖;
圖5是根據(jù)本發(fā)明第一實(shí)施例的異常處理裝置的示意圖;
圖6是根據(jù)本發(fā)明第二實(shí)施例的異常處理裝置的示意圖;以及
圖7是根據(jù)本發(fā)明第三實(shí)施例的異常處理裝置的示意圖。
具體實(shí)施方式
需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請方案,下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分的實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。
需要說明的是,本申請的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請的實(shí)施例。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
為了便于描述,以下對本申請實(shí)施例涉及的幾個(gè)術(shù)語進(jìn)行說明:
IM(Instant Messaging),即時(shí)通信,是一種可以讓使用者在網(wǎng)絡(luò)上建立某種私人聊天室的實(shí)時(shí)通訊服務(wù)。目前在互聯(lián)網(wǎng)上受歡迎的即時(shí)通訊軟件包括騰訊QQ、微信、易信、釘釘、百度HI、飛信、阿里旺旺、京東咚咚、飛語、yy、Skype、Google Talk、icq、FastMsg、parox等。
聊天機(jī)器人:一個(gè)用來模擬人類對話或聊天的程序。
FLV(Flash Video):一種網(wǎng)絡(luò)視頻格式,用作流媒體格式。
FFmpeg,是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。
API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。
自動化測試:把以人為驅(qū)動的測試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過程。通常,在設(shè)計(jì)了測試用例并通過評審之后,由測試人員根據(jù)測試用例中描述的規(guī)程一步步執(zhí)行測試,得到實(shí)際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時(shí)間或硬件資源,提高測試效率,便引入了自動化測試的概念。
本發(fā)明實(shí)施例提供了一種異常處理方法。
圖1是根據(jù)本發(fā)明第一實(shí)施例的異常處理方法的流程圖,如圖1所示,該方法包括以下步驟:
步驟S102:接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存。
步驟S104:接收通知消息,其中,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài)。
步驟S106:響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間。
步驟S108:至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。
步驟S110:輸出多媒體文件。
該實(shí)施例采用接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存;接收通知消息,其中,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài);響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間;至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件;輸出多媒體文件,由于至少將異常狀態(tài)發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件輸出,解決了在測試對象出現(xiàn)異常時(shí)只顯示報(bào)警信息無法及時(shí)獲知故障原因的問題,進(jìn)而達(dá)到了通過異常狀態(tài)發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻及時(shí)獲知故障原因的效果。
在一種可選的實(shí)施方式中,該實(shí)施例從服務(wù)器一側(cè)對異常處理方法進(jìn)行說明,測試對象可以是被測試的應(yīng)用程序,可以通過測試應(yīng)用來測試被測對象(測試對象),測試應(yīng)用可以實(shí)時(shí)測試被測對象,在測試被測對象時(shí),錄制屏幕視頻,測試應(yīng)用將錄制的屏幕視頻發(fā)送到服務(wù)器,可以是實(shí)時(shí)發(fā)送,也可以是每隔一定時(shí)間發(fā)送,服務(wù)器接收到對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻之后,將屏幕視頻保存,可以是保存到數(shù)據(jù)庫中。測試應(yīng)用測試到測試對象出現(xiàn)異常狀態(tài)時(shí),發(fā)出通知消息,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),服務(wù)器在接收到通知消息之后,響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間,例如,測試應(yīng)用在檢測到測試對象出現(xiàn)異常狀態(tài)時(shí),將出現(xiàn)異常的時(shí)間添加到通知消息中發(fā)送到服務(wù)器,服務(wù)器接收到通知消息之后,根據(jù)通知消息獲取異常狀態(tài)的發(fā)生時(shí)間。服務(wù)器在獲取到異常狀態(tài)的發(fā)生時(shí)間之后,至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件,預(yù)定時(shí)間段可以是異常狀態(tài)發(fā)生前10秒之內(nèi),例如,獲取到異常狀態(tài)的發(fā)生時(shí)間是6:01:10,則可以從存儲的屏幕視頻中確定出異常狀態(tài)發(fā)生時(shí)間之前的6:01:00-6:01:10的10秒的時(shí)間段內(nèi)的屏幕視頻,將屏幕視頻轉(zhuǎn)換為預(yù)定格式。
可選地,至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件包括:將在發(fā)生時(shí)間之前和發(fā)生時(shí)間之后的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。除了將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件之外,也可以將發(fā)生時(shí)間之前和之后的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換,例如,獲取到異常狀態(tài)的發(fā)生時(shí)間是6:01:10,則可以從存儲的屏幕視頻中確定出將6:01:00-6:01:15的15秒的時(shí)間段內(nèi)的屏幕視頻,將屏幕視頻轉(zhuǎn)換為預(yù)定格式,在時(shí)間段確定時(shí),可以根據(jù)實(shí)際應(yīng)用場景的需要選擇和設(shè)置,不限定具體的時(shí)間段長度。
預(yù)定格式可以是GIF格式(Graphics Interchange Format),GIF格式也稱為“圖像互換格式”,是CompuServe公司在1987年開發(fā)的圖像文件格式。GIF文件的數(shù)據(jù),是一種基于LZW算法的連續(xù)色調(diào)的無損壓縮格式。除了GIF格式以外,預(yù)定格式也可以是其他類型的格式??梢酝ㄟ^視頻編碼程序(FFmpeg)至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的FLV格式的屏幕視頻轉(zhuǎn)碼,得到GIF格式的多媒體文件。
在將屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件之后,輸出該預(yù)定格式的多媒體文件,例如,將該預(yù)定格式的多媒體文件輸出到預(yù)設(shè)的終端,因此測試人員可以根據(jù)多媒體文件及時(shí)查看到異常發(fā)生之前的預(yù)定時(shí)間段內(nèi)的屏幕情況,以根據(jù)屏幕情況及時(shí)獲知異常出現(xiàn)的故障原因。由于輸出的內(nèi)容中包含有異常發(fā)生之前一段時(shí)間內(nèi)的屏幕視頻,因此,能夠直觀地反映出現(xiàn)異常前的操作步驟和被測對象的運(yùn)行狀態(tài),使開發(fā)人員能夠及時(shí)定位異常原因,進(jìn)而修復(fù)問題。
可選地,通知消息可以是文本類型的消息,接收通知消息可以是通過HTTP接口接收文本類型的通知消息。
圖2是根據(jù)本發(fā)明第二實(shí)施例的異常處理方法的流程圖,如圖2所示,該方法包括以下步驟:
步驟S202,對測試對象進(jìn)行測試時(shí)錄制屏幕視頻。
步驟S204,將屏幕視頻發(fā)送至服務(wù)器。
步驟S206,在檢測到測試對象的運(yùn)行出現(xiàn)異常狀態(tài)時(shí),向服務(wù)器發(fā)出通知消息,其中,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),通知消息用于指示服務(wù)器獲取異常狀態(tài)的發(fā)生時(shí)間,服務(wù)器至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。
該實(shí)施例采用對測試對象進(jìn)行測試時(shí)錄制屏幕視頻,然后將屏幕視頻發(fā)送至服務(wù)器,在檢測到測試對象的運(yùn)行出現(xiàn)異常狀態(tài)時(shí),向服務(wù)器發(fā)出通知消息,其中,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),通知消息用于指示服務(wù)器獲取異常狀態(tài)的發(fā)生時(shí)間,并至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件,解決了在測試對象出現(xiàn)異常時(shí)只顯示報(bào)警信息無法及時(shí)獲知故障原因的問題,進(jìn)而達(dá)到了通過異常狀態(tài)發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻及時(shí)獲知故障原因的效果。
該實(shí)施例從測試應(yīng)用一側(cè)對異常處理方法進(jìn)行說明,在測試應(yīng)用對測試對象進(jìn)行測試時(shí)錄制屏幕視頻,測試應(yīng)用將錄制的屏幕視頻發(fā)送到服務(wù)器,測試應(yīng)用在測試過程中檢測到測試對象的運(yùn)行出現(xiàn)異常狀態(tài)時(shí),會向服務(wù)器發(fā)出通知消息,通知消息可以指示測試對象的運(yùn)行出現(xiàn)了異常狀態(tài),服務(wù)器接收到通知消息之后,獲取異常狀態(tài)的發(fā)生時(shí)間,然后至少將異常發(fā)生之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。
可選地,在測試應(yīng)用向服務(wù)器發(fā)出通知消息之前,獲取異常狀態(tài)的異常類型;判斷距離上一次輸出異常類型的時(shí)間是否超過預(yù)設(shè)閾值;其中,在判斷出超過預(yù)設(shè)閾值時(shí),向服務(wù)器發(fā)出通知消息,在判斷出沒有超過預(yù)設(shè)閾值時(shí),不向服務(wù)器發(fā)出通知消息。
測試應(yīng)用可以獲取異常狀態(tài)的異常類型,當(dāng)測試應(yīng)用發(fā)現(xiàn)測試對象出現(xiàn)如CPU使用率過高、內(nèi)存消耗過高、非正常退出等異常時(shí),調(diào)用媒體服務(wù)器對應(yīng)的HTTP接口,以普通文本形式通知異常類型。HTTP請求調(diào)用成功后,測試應(yīng)用在一段時(shí)間內(nèi)不會重復(fù)發(fā)送相同的異常類型請求。在測試應(yīng)用獲取異常狀態(tài)的異常類型之后,判斷距離上一次輸出同一種異常類型的時(shí)間是否超過預(yù)設(shè)閾值,如果超過預(yù)設(shè)閾值,則可以向服務(wù)器發(fā)出通知消息,如果判斷出沒有超過預(yù)設(shè)閾值,則不向服務(wù)器發(fā)出通知消息。由于在判斷出同種異常類型的時(shí)間超過預(yù)設(shè)閾值時(shí)才向服務(wù)器發(fā)出通知消息,可以減少異常的發(fā)送次數(shù),以減少不必要的數(shù)據(jù)交互,減少資源占用,使通知消息的準(zhǔn)確度更高。
在一種可選的應(yīng)用場景中,在開始測試后,測試應(yīng)用會不斷向媒體服務(wù)器發(fā)送屏幕錄制視頻流,并實(shí)時(shí)監(jiān)控測試對象的運(yùn)行狀態(tài)。視頻流除包括移動設(shè)備屏幕的顯示外,還包括測試應(yīng)用采集的測試對象的性能數(shù)據(jù),如CPU使用率,內(nèi)存消耗等,這些數(shù)據(jù)可以在移動設(shè)備屏幕的顯示區(qū)域上顯示。當(dāng)出現(xiàn)報(bào)警需求時(shí),媒體服務(wù)器使用FFmpeg截取視頻的最后一段轉(zhuǎn)換為GIF文件,并將GIF文件通過聊天機(jī)器人發(fā)送給測試人員查看。
圖3是根據(jù)本發(fā)明第三實(shí)施例的異常處理方法的流程圖。如圖3所示,該方法包括以下步驟:
步驟S302,接收多媒體文件,其中,多媒體文件為服務(wù)器輸出的多媒體文件,服務(wù)器接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存,服務(wù)器接收通知消息,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),服務(wù)器響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間,服務(wù)器至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。
步驟S304,播放多媒體文件。
該實(shí)施例采用接收多媒體文件,其中,多媒體文件為服務(wù)器輸出的多媒體文件,服務(wù)器接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存,服務(wù)器接收通知消息,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),服務(wù)器響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間,服務(wù)器至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件,然后播放多媒體文件,解決了在測試對象出現(xiàn)異常時(shí)只顯示報(bào)警信息無法及時(shí)獲知故障原因的問題,進(jìn)而達(dá)到了通過異常狀態(tài)發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻及時(shí)獲知故障原因的效果。
該實(shí)施例從IM客戶端一側(cè)對異常處理方法進(jìn)行說明,IM應(yīng)用的客戶端可以安裝在終端上,服務(wù)器接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存,接收通知消息,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),然后響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間,至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件,然后輸出到IM客戶端,IM客戶端接收多媒體文件之后,播放接收到的多媒體文件,可以在聊天窗口渲染顯示多媒體文件,以供測試人員查看,其中多媒體文件可以是GIF格式的文件,也可以是其他格式的文件。主流的IM軟件均能在其聊天窗口中顯示GIF文件。通過觀看GIF格式的報(bào)警內(nèi)容,測試人員可十分直觀地了解測試對象出現(xiàn)異常前的關(guān)鍵操作步驟信息,如用戶點(diǎn)擊區(qū)域、界面跳轉(zhuǎn)關(guān)系、用戶當(dāng)前狀態(tài)等。
圖4是根據(jù)本發(fā)明實(shí)施例的異常處理系統(tǒng)的示意圖。如圖4所示,媒體服務(wù)器可以使用帶有rtmp模塊的nginx,同時(shí)支持RTMP和HTTP。服務(wù)器可以包括媒體服務(wù)器,異常處理流程包括以下過程:
1、測試應(yīng)用監(jiān)控測試對象的運(yùn)行,實(shí)時(shí)發(fā)送屏幕錄制視頻流至媒體服務(wù)器。媒體服務(wù)器在其本地將視頻流保存為FLV文件。
2、當(dāng)測試應(yīng)用發(fā)現(xiàn)測試對象出現(xiàn)如CPU使用率過高、內(nèi)存消耗過高、非正常退出等異常時(shí),調(diào)用媒體服務(wù)器對應(yīng)的HTTP接口,以普通文本形式通知異常類型。HTTP請求調(diào)用成功后,測試應(yīng)用在一段時(shí)間內(nèi)不會重復(fù)發(fā)送相同的異常類型請求。
3、媒體服務(wù)器使用FFmpeg對本地的FLV文件進(jìn)行轉(zhuǎn)碼,以GIF格式輸出最后一段時(shí)間的內(nèi)容。媒體服務(wù)器會保存此GIF文件,并將其URL作為參數(shù),調(diào)用IM服務(wù)器提供的聊天機(jī)器人API。假設(shè)FLV文件名為video.flv,輸出的GIF文件名為exception.gif,截取時(shí)間為視頻最后10秒,那么對應(yīng)的FFmpeg指令可以為ffmpeg-ivideo.flv-sseof-0:0:10exception.gif。
4、IM客戶端收到包含異常類型和異常現(xiàn)場GIF URL的報(bào)警信息,輸出報(bào)警信息以提示測試人員出現(xiàn)異常。IM客戶端會直接顯示異常類型,而GIF則會根據(jù)其URL向媒體服務(wù)器發(fā)送HTTP GET請求來獲取。
5、IM客戶端成功獲取GIF文件后,在聊天窗口渲染顯示此文件,供測試人員查看。
通過本發(fā)明實(shí)施例的異常處理方式,測試人員通過IM聊天窗口,可及時(shí)了解測試對象異常時(shí)的現(xiàn)場:包括用戶的操作流程、測試對象的性能指標(biāo)等。測試人員通過收集異常現(xiàn)場的GIF,可生成簡潔直觀的測試報(bào)告供開發(fā)人員查看,以定位和修復(fù)問題。測試應(yīng)用發(fā)現(xiàn)異常后,處理存于媒體服務(wù)器的屏幕錄制視頻,截取異常前后的視頻內(nèi)容,轉(zhuǎn)換成適合通過即時(shí)聊天服務(wù)展示的GIF文件等。
測試應(yīng)用的錄屏也可以不采用流媒體技術(shù)實(shí)時(shí)發(fā)往服務(wù)器,而是存于測試應(yīng)用本地,出現(xiàn)異常后也直接在本地完成視頻文件轉(zhuǎn)GIF過程。但缺點(diǎn)是:使用FFmpeg將視頻文件轉(zhuǎn)GIF的過程屬于計(jì)算密集型任務(wù),對CPU的占用過大。若將此過程放在測試應(yīng)用本地實(shí)現(xiàn),那么因測試應(yīng)用過多占用CPU而導(dǎo)致測試對象的運(yùn)行受影響,進(jìn)而影響測試結(jié)果的準(zhǔn)確性。
需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明實(shí)施例提供了一種異常處理裝置,該異常處理裝置可以用于執(zhí)行本發(fā)明實(shí)施例的異常處理方法。
圖5是根據(jù)本發(fā)明第一實(shí)施例的異常處理裝置的示意圖,如圖5所示,該裝置包括:
第一接收單元10,用于接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存。
第二接收單元20,用于接收通知消息,其中,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài)。
獲取單元30,用于響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間。
轉(zhuǎn)換單元40,用于至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。
輸出單元50,用于輸出多媒體文件。
該實(shí)施例采用第一接收單元10接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存,第二接收單元20接收通知消息,其中,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),獲取單元30,用于響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間,轉(zhuǎn)換單元40至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件,輸出單元50輸出多媒體文件,解決了在測試對象出現(xiàn)異常時(shí)只顯示報(bào)警信息無法及時(shí)獲知故障原因的問題,進(jìn)而達(dá)到了通過異常狀態(tài)發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻及時(shí)獲知故障原因的效果。
圖6是根據(jù)本發(fā)明第二實(shí)施例的異常處理裝置的示意圖,如圖6所示,該裝置包括:
錄制單元110,用于對測試對象進(jìn)行測試時(shí)錄制屏幕視頻。
第一發(fā)送單元120,用于將屏幕視頻發(fā)送至服務(wù)器。
第二發(fā)送單元130,用于在檢測到測試對象的運(yùn)行出現(xiàn)異常狀態(tài)時(shí),向服務(wù)器發(fā)出通知消息,其中,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),通知消息用于指示服務(wù)器獲取異常狀態(tài)的發(fā)生時(shí)間,服務(wù)器至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。
該實(shí)施例采用錄制單元110對測試對象進(jìn)行測試時(shí)錄制屏幕視頻,第一發(fā)送單元120將屏幕視頻發(fā)送至服務(wù)器,第二發(fā)送單元130在檢測到測試對象的運(yùn)行出現(xiàn)異常狀態(tài)時(shí),向服務(wù)器發(fā)出通知消息,其中,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),通知消息用于指示服務(wù)器獲取異常狀態(tài)的發(fā)生時(shí)間,服務(wù)器至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件,解決了在測試對象出現(xiàn)異常時(shí)只顯示報(bào)警信息無法及時(shí)獲知故障原因的問題,進(jìn)而達(dá)到了通過異常狀態(tài)發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻及時(shí)獲知故障原因的效果。
圖7是根據(jù)本發(fā)明第三實(shí)施例的異常處理裝置的示意圖,如圖7所示,該裝置包括:
第三接收單元210,用于接收多媒體文件,其中,多媒體文件為服務(wù)器輸出的多媒體文件,服務(wù)器接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存,服務(wù)器接收通知消息,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),服務(wù)器響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間,服務(wù)器至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件。
播放單元220,用于播放多媒體文件。
該實(shí)施例采用第三接收單元210接收多媒體文件,其中,多媒體文件為服務(wù)器輸出的多媒體文件,服務(wù)器接收對測試對象進(jìn)行測試時(shí)錄制的屏幕視頻,并進(jìn)行保存,服務(wù)器接收通知消息,通知消息用于指示測試對象的運(yùn)行出現(xiàn)異常狀態(tài),服務(wù)器響應(yīng)于通知消息獲取異常狀態(tài)的發(fā)生時(shí)間,服務(wù)器至少將在發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻轉(zhuǎn)換為預(yù)定格式的多媒體文件,播放單元220播放多媒體文件,解決了在測試對象出現(xiàn)異常時(shí)只顯示報(bào)警信息無法及時(shí)獲知故障原因的問題,進(jìn)而達(dá)到了通過異常狀態(tài)發(fā)生時(shí)間之前的預(yù)定時(shí)間段內(nèi)的屏幕視頻及時(shí)獲知故障原因的效果。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲在存儲裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。