一種客戶端崩潰的定位方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例提供了一種客戶端崩潰的定位方法,包括:獲取發(fā)生崩潰的客戶端的進(jìn)程日志;獲取所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè);依據(jù)所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè)以及所述進(jìn)程日志,獲得所述客戶端的崩潰信息。本發(fā)明實(shí)施例還提供一種客戶端崩潰的定位系統(tǒng)。根據(jù)本發(fā)明實(shí)施例提供的技術(shù)方案,可以實(shí)現(xiàn)提高客戶端崩潰的定位效率和定位可靠性。
【專利說(shuō)明】一種客戶端崩潰的定位方法及系統(tǒng)
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及計(jì)算機(jī)軟件技術(shù),尤其涉及一種客戶端崩潰的定位方法及系統(tǒng)。
【【背景技術(shù)】】
[0002]客戶端可能由于種種原因而出現(xiàn)崩潰的問(wèn)題,例如,在客戶端的測(cè)試過(guò)程中或者客戶端的使用過(guò)程中,都會(huì)出現(xiàn)崩潰的問(wèn)題。客戶端崩潰指的是實(shí)現(xiàn)客戶端的代碼的邏輯錯(cuò)誤或者客戶端內(nèi)部對(duì)異常情況處理不當(dāng),導(dǎo)致的客戶端停止反應(yīng)或者非正常退出等癥狀。一旦客戶端發(fā)生崩潰問(wèn)題,就可能需要等待很長(zhǎng)一段時(shí)間才能夠繼續(xù)使用或者繼續(xù)測(cè)試,因此,需要及時(shí)找到客戶端崩潰的原因,以避免由于客戶端的崩潰影響用戶使用。
[0003]然而,當(dāng)客戶端出現(xiàn)崩潰后,需要人為回憶上一次的操作。由于客戶端崩潰一般出現(xiàn)在無(wú)規(guī)律的隨機(jī)操作中,因此,依賴人為對(duì)上一次操作進(jìn)行重現(xiàn)這種客戶端崩潰的定位方式的效率和可靠性比較低。
【
【發(fā)明內(nèi)容】
】
[0004]有鑒于此,本發(fā)明實(shí)施例提供了一種客戶端崩潰的定位方法及系統(tǒng),可以實(shí)現(xiàn)提高客戶端崩潰的定位效率和定位可靠性。
[0005]本發(fā)明實(shí)施例提供了一種客戶端崩潰的定位方法,包括:
[0006]獲取發(fā)生崩潰的客戶端的進(jìn)程日志;
[0007]獲取所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè);
[0008]依據(jù)所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè)以及所述進(jìn)程日志,獲得所述客戶端的崩潰信息。
[0009]上述方法中,所述獲取發(fā)生崩潰的客戶端的進(jìn)程日志之前,所述方法還包括:
[0010]所述客戶端發(fā)生崩潰時(shí),通過(guò)所述客戶端所在終端的操作系統(tǒng)提供的崩潰處理API的入口地址,將運(yùn)行所述客戶端的進(jìn)程的相關(guān)信息輸入到所述崩潰處理API ;
[0011]依據(jù)預(yù)設(shè)的所述崩潰處理API的入口地址,對(duì)所述崩潰處理API進(jìn)行監(jiān)聽,以獲得輸入到所述崩潰處理API的所述相關(guān)信息;
[0012]依據(jù)所述相關(guān)信息和所述客戶端發(fā)生崩潰的時(shí)間,生成所述發(fā)生崩潰的客戶端的進(jìn)程日志。
[0013]上述方法中,所述獲取所述客戶端的鏡像文件之前,所述方法還包括:
[0014]所述客戶端發(fā)生崩潰后,生成鏡像文件;
[0015]將所述鏡像文件寫入存儲(chǔ)裝置中;
[0016]其中,所述鏡像文件包括所述客戶端發(fā)生崩潰時(shí)運(yùn)行所述客戶端的進(jìn)程狀態(tài)信息和所述客戶端的屬性信息。
[0017]上述方法中,所述獲取所述客戶端的操作行為信息,包括:
[0018]獲取所述客戶端發(fā)生崩潰之前所述終端上的操作行為;
[0019]若預(yù)設(shè)的操作行為類型包括獲取的所述操作行為,依據(jù)獲取的所述操作行為和所述操作行為的時(shí)間,生成所述操作行為信息;
[0020]其中,所述操作行為類型包括以下行為中至少一種:鼠標(biāo)單擊行為、鼠標(biāo)雙擊行為、鼠標(biāo)懸停行為、鼠標(biāo)拖拽行為、觸碰行為和按鍵輸入行為。
[0021]上述方法中,所述方法還包括:
[0022]按照預(yù)設(shè)的提示方式,向用戶推送提示信息,所述提示信息包括依據(jù)所述客戶端的崩潰信息獲得的所述客戶端的崩潰信息摘要;
[0023]所述提示方式包括以下方式中至少一種:郵件提示、短信息提示和提示框提示。
[0024]上述方法中,所述方法還包括:顯示所述客戶端的崩潰信息。
[0025]本發(fā)明實(shí)施例還提供了一種客戶端崩潰的定位系統(tǒng),包括:
[0026]第一獲取單元,用于獲取發(fā)生崩潰的客戶端的進(jìn)程日志;
[0027]第二獲取單元,用于獲取所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè);
[0028]分析單元,用于依據(jù)所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè)以及所述進(jìn)程日志,獲得所述客戶端的崩潰信息。
[0029]上述系統(tǒng)中,所述系統(tǒng)還包括:
[0030]調(diào)用單元,用于所述客戶端發(fā)生崩潰時(shí),通過(guò)所述客戶端所在終端的操作系統(tǒng)提供的崩潰處理API的入口地址,將運(yùn)行所述客戶端的進(jìn)程的相關(guān)信息輸入到所述崩潰處理API ;
[0031]監(jiān)聽單元,用于依據(jù)預(yù)設(shè)的所述崩潰處理API的入口地址,對(duì)所述崩潰處理API進(jìn)行監(jiān)聽,以獲得輸入到所述崩潰處理API的所述相關(guān)信息;
[0032]第一生成單元,用于依據(jù)所述相關(guān)信息和所述客戶端發(fā)生崩潰的時(shí)間,生成所述發(fā)生崩潰的客戶端的進(jìn)程日志。
[0033]上述系統(tǒng)中,所述系統(tǒng)還包括:
[0034]第二生成單元,用于所述客戶端發(fā)生崩潰后,生成鏡像文件;
[0035]寫入單元,用于將所述鏡像文件寫入存儲(chǔ)裝置中;
[0036]其中,所述鏡像文件包括所述客戶端發(fā)生崩潰時(shí)運(yùn)行所述客戶端的進(jìn)程狀態(tài)信息和所述客戶端的屬性信息。
[0037]上述系統(tǒng)中,所述第二獲取單元,具體用于:
[0038]獲取所述客戶端發(fā)生崩潰之前所述終端上的操作行為;
[0039]若預(yù)設(shè)的操作行為類型包括獲取的所述操作行為,依據(jù)獲取的所述操作行為和所述操作行為的時(shí)間,生成所述操作行為信息;
[0040]其中,所述操作行為類型包括以下行為中至少一種:鼠標(biāo)單擊行為、鼠標(biāo)雙擊行為、鼠標(biāo)懸停行為、鼠標(biāo)拖拽行為、觸碰行為和按鍵輸入行為。
[0041]上述系統(tǒng)中,所述系統(tǒng)還包括:
[0042]推送單元,用于按照預(yù)設(shè)的提示方式,向用戶推送提示信息,所述提示信息包括依據(jù)所述客戶端的崩潰信息獲得的所述客戶端的崩潰信息摘要;
[0043]所述提示方式包括以下方式中至少一種:郵件提示、短信息提示和提示框提示。
[0044]上述系統(tǒng)中,所述系統(tǒng)還包括:
[0045]顯示單元,用于顯示所述客戶端的崩潰信息。
[0046]由以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下有益效果:
[0047]能夠自動(dòng)獲取發(fā)生崩潰的客戶端的進(jìn)程日志,以及客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè),然后依據(jù)獲取的信息獲得客戶端的崩潰信息,以實(shí)現(xiàn)客戶端崩潰的定位,與現(xiàn)有技術(shù)中,當(dāng)客戶端發(fā)生崩潰后,依賴人為回憶上一次的操作方式相t匕,本發(fā)明實(shí)施例能夠提高客戶端崩潰的定位效率,從而可以縮短客戶端測(cè)試周期,提高客戶端的測(cè)試效率。
[0048]本發(fā)明實(shí)施例中,實(shí)現(xiàn)客戶端崩潰的定位是依賴客觀數(shù)據(jù),與現(xiàn)有技術(shù)中依賴人為回憶上一次的操作相比,能夠提高客戶端崩潰的定位的準(zhǔn)確性和可靠性。
【【專利附圖】
【附圖說(shuō)明】】
[0049]為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0050]圖1是本發(fā)明實(shí)施例所提供的客戶端崩潰的定位方法的流程示意圖;
[0051]圖2是本發(fā)明實(shí)施例所提供的客戶端崩潰的定位系統(tǒng)的功能方塊圖。
【【具體實(shí)施方式】】
[0052]為了更好的理解本發(fā)明的技術(shù)方案,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。
[0053]應(yīng)當(dāng)明確,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0054]在本發(fā)明實(shí)施例中使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實(shí)施例和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語(yǔ)“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
[0055]取決于語(yǔ)境,如在此所使用的詞語(yǔ)“如果”或者“若”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”。類似地,取決于語(yǔ)境,短語(yǔ)“如果確定”或“如果檢測(cè)(陳述的條件或事件)”可以被解釋成為“當(dāng)確定時(shí)”或“響應(yīng)于確定”或“當(dāng)檢測(cè)(陳述的條件或事件)時(shí)”或“響應(yīng)于檢測(cè)(陳述的條件或事件)”。
[0056]本發(fā)明實(shí)施例所提供的方法和系統(tǒng)可以在客戶端中實(shí)現(xiàn),也可以在客戶端所在終端中實(shí)現(xiàn)。本發(fā)明實(shí)施例中,所述客戶端可以包括各種客戶端,如殺毒軟件、瀏覽器等。所述客戶端包括所有用戶設(shè)備上運(yùn)行的客戶端,所述用戶設(shè)備可以包括個(gè)人計(jì)算機(jī)(PersonalComputer, PC)、筆記本電腦、手機(jī)或平板電腦。
[0057]本發(fā)明實(shí)施例給出一種客戶端崩潰的定位方法,請(qǐng)參考圖1,其為本發(fā)明實(shí)施例所提供的客戶端崩潰的定位方法的流程示意圖,如圖所示,該方法包括以下步驟:
[0058]S101,獲取發(fā)生崩潰的客戶端的進(jìn)程日志。
[0059]具體的,終端可以提供配置界面,該配置界面包括輸入框,用戶可以在該輸入框中輸入運(yùn)行待監(jiān)控的客戶端的進(jìn)程名稱。例如,若待監(jiān)控的客戶端是IE瀏覽器,則在輸入框中輸入運(yùn)行IE瀏覽器的進(jìn)程名稱“iexplore.exe”。再例如,若待監(jiān)控的殺毒軟件是金山殺毒軟件,則在輸入框中輸入運(yùn)行金山殺毒軟件的進(jìn)程名稱“kavstare.exe”。
[0060]在配置好運(yùn)行待監(jiān)控的客戶端的進(jìn)程名稱后,就可以對(duì)配置的客戶端進(jìn)行監(jiān)控,當(dāng)監(jiān)控的客戶端發(fā)生崩潰后,獲取發(fā)生崩潰的客戶端的進(jìn)程日志。
[0061]舉例說(shuō)明,獲取發(fā)生崩潰的客戶端的進(jìn)程日志的方法可以包括:
[0062]首先,可以利用應(yīng)用程序編程接口(Applicat1nProgramming Interface, API)鉤子(Hook)技術(shù),將客戶端所在操作系統(tǒng)提供的崩潰處理API與Hook工具關(guān)聯(lián),其關(guān)聯(lián)方法是在Hook工具的配置信息中增加崩潰處理API的入口地址。
[0063]當(dāng)待監(jiān)控的客戶端發(fā)生崩潰時(shí),可以由客戶端調(diào)用所在操作系統(tǒng)提供的崩潰處理API,通過(guò)所述客戶端所在終端的操作系統(tǒng)提供的崩潰處理API的入口地址,將運(yùn)行所述客戶端的進(jìn)程的相關(guān)信息作為參數(shù)輸入到所述崩潰處理API?;蛘?,客戶端所在操作系統(tǒng)主動(dòng)調(diào)用崩潰處理API,通過(guò)所述客戶端所在終端的操作系統(tǒng)提供的崩潰處理API的入口地址,將運(yùn)行所述客戶端的進(jìn)程的相關(guān)信息作為參數(shù)輸入到所述崩潰處理API。
[0064]然后,由于Hook工具中預(yù)先配置了所述崩潰處理API的入口地址,所以Hook工具可以對(duì)所述崩潰處理API的入口地址進(jìn)行監(jiān)聽;一旦所述崩潰處理API被調(diào)用,Hook工具就可以依據(jù)預(yù)設(shè)的所述崩潰處理API的入口地址,截獲通過(guò)該入口地址輸入的運(yùn)行所述客戶端的進(jìn)程的相關(guān)信息,從而Hook就可以獲得輸入到所述崩潰處理API的該相關(guān)信息。
[0065]最后,可以依據(jù)運(yùn)行所述客戶端的進(jìn)程的相關(guān)信息和所述客戶端發(fā)生崩潰的時(shí)間,生成所述發(fā)生崩潰的客戶端的進(jìn)程日志。
[0066]優(yōu)選的,所述客戶端所在終端的操作系統(tǒng)可以為Windows操作系統(tǒng)。運(yùn)行所述客戶端的進(jìn)程的相關(guān)信息包括運(yùn)行所述客戶端的進(jìn)程名稱和所述客戶端調(diào)用的函數(shù)信息。所述發(fā)生崩潰的客戶端的進(jìn)程日志包括所述客戶端的進(jìn)程的相關(guān)信息和所述客戶端發(fā)生崩潰的時(shí)間。
[0067]可選的,在獲取發(fā)生崩潰的客戶端的進(jìn)程日志之后,可以將獲取的發(fā)生崩潰的客戶端的進(jìn)程日志存儲(chǔ)在特定目錄中;優(yōu)選的,發(fā)生崩潰的客戶端的進(jìn)程日志的格式可以為txt文本格式。
[0068]S102,獲取所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè)。
[0069]具體的,舉例說(shuō)明,獲取所述客戶端的鏡像文件的方法可以包括:待監(jiān)控的客戶端發(fā)生崩潰后,該發(fā)生崩潰的客戶端會(huì)生成一個(gè)鏡像文件(Dump文件),該鏡像文件指的是運(yùn)行所述待監(jiān)控的客戶端的進(jìn)程的內(nèi)存鏡像。然后,所述發(fā)生崩潰的客戶端將生成的鏡像文件寫入存儲(chǔ)裝置中;例如,所述存儲(chǔ)裝置可以包括磁盤或者內(nèi)存。因此,所述客戶端發(fā)生崩潰后,可以依據(jù)預(yù)設(shè)的存儲(chǔ)地址,從所述存儲(chǔ)裝置中,獲取所述客戶端的鏡像文件。優(yōu)選的,所述鏡像文件包括所述客戶端發(fā)生崩潰時(shí)運(yùn)行所述客戶端的進(jìn)程狀態(tài)信息以及所述客戶端的屬性信息;例如,運(yùn)行所述客戶端的進(jìn)程狀態(tài)信息可以包括所述客戶端的堆棧信息、所述客戶端使用所述客戶端所在終端的操作系統(tǒng)資源的情況信息等。例如,所述客戶端的屬性信息可以包括客戶端的版本信息和客戶端的權(quán)限信息等。
[0070]舉例說(shuō)明,獲取所述客戶端的屏幕錄制信息的方法可以包括:終端提供的配置界面可以包括是否進(jìn)行屏幕錄制的選項(xiàng),通過(guò)該選項(xiàng)可以預(yù)先設(shè)置對(duì)待監(jiān)控的客戶端在運(yùn)行過(guò)程中是否進(jìn)行屏幕錄制。
[0071]若需要進(jìn)行屏幕錄制,則可以依據(jù)預(yù)設(shè)的截屏?xí)r間間隔和預(yù)設(shè)的圖片格式,調(diào)用自動(dòng)截屏工具對(duì)客戶端所在終端的屏幕進(jìn)行實(shí)時(shí)截屏,以獲得截屏圖片,從而可以實(shí)現(xiàn)屏幕錄制。也可以調(diào)用snapGet函數(shù)對(duì)客戶端所在終端的屏幕進(jìn)行實(shí)時(shí)截屏。在獲得截屏圖片后,可以依據(jù)預(yù)設(shè)的保存路徑將截屏圖片保存在特定目錄下的文件中。
[0072]這里,如果進(jìn)行屏幕錄制,則可以在客戶端發(fā)生崩潰后,通過(guò)查看截屏圖片獲得在發(fā)生崩潰前,客戶端上有哪些操作行為,從而可以獲知哪個(gè)操作行為導(dǎo)致的客戶端發(fā)生崩潰,從而實(shí)現(xiàn)快速的崩潰定位。
[0073]舉例說(shuō)明,獲取所述客戶端的操作行為信息的方法可以包括:
[0074]終端提供的配置界面可以包括操作行為類型的選項(xiàng),可以選中需要對(duì)客戶端進(jìn)行監(jiān)控的操作行為類型。例如,所述操作行為類型可以包括以下行為中至少一種:鼠標(biāo)單擊行為、鼠標(biāo)雙擊行為、鼠標(biāo)懸停行為、鼠標(biāo)拖拽行為、觸碰行為和按鍵輸入行為等。
[0075]首先,獲取所述客戶端發(fā)生崩潰之前所述終端上的操作行為。
[0076]優(yōu)選的,獲取所述客戶端發(fā)生崩潰之前所述終端上的鼠標(biāo)操作行為的方法可以是:客戶端所在終端的操作系統(tǒng)中都綁定有JavaScript鼠標(biāo)事件,當(dāng)所述終端上發(fā)生鼠標(biāo)操作行為時(shí),就會(huì)觸發(fā)相應(yīng)的JavaScript鼠標(biāo)事件,依據(jù)被觸發(fā)的JavaScript鼠標(biāo)事件以及JavaScript鼠標(biāo)事件與鼠標(biāo)操作行為的對(duì)應(yīng)關(guān)系,可以獲知對(duì)應(yīng)的鼠標(biāo)的具體操作行為。例如,當(dāng)在客戶端所在終端上單擊鼠標(biāo)時(shí),onClick事件會(huì)被觸發(fā),則確定客戶端所在終端上的操作行為是鼠標(biāo)單擊;同時(shí),MouseDown事件也會(huì)被觸發(fā),可以從該MouseDown事件的參數(shù)類型中獲得X值和y值,該X值和I值就是鼠標(biāo)點(diǎn)擊位置。再例如,當(dāng)在客戶端所在終端上拖拽瀏覽器時(shí),onMove事件會(huì)被觸發(fā),則確定客戶端所在終端上的操作行為是鼠標(biāo)拖拽。
[0077]優(yōu)選的,獲取所述客戶端發(fā)生崩潰之前所述終端上的按鍵輸入行為的方法可以是:客戶端所在終端的操作系統(tǒng)中都綁定有JavaScript鍵盤事件,當(dāng)所述終端上發(fā)生按鍵輸入行為時(shí),就會(huì)觸發(fā)相應(yīng)的JavaScript鍵盤事件,依據(jù)該JavaScript鍵盤事件以及JavaScript鍵盤事件與按鍵輸入行為的對(duì)應(yīng)關(guān)系,可以獲知鍵盤中哪些按鍵被按下,以及依據(jù)JavaScript鍵盤事件的觸發(fā)次數(shù),可以獲知按鍵被按下的次數(shù)。
[0078]優(yōu)選的,獲取所述客戶端發(fā)生崩潰之前所述終端上的觸碰行為的方法可以是:若所述客戶端所在終端的顯示屏是觸摸屏,該觸摸屏中的傳感器可以檢測(cè)到觸摸屏上的觸碰行為,獲得觸碰的位置信息。
[0079]然后,獲取所述客戶端發(fā)生崩潰之前所述客戶端上操作行為之后,若預(yù)設(shè)的操作行為類型中包括獲取的所述操作行為,則依據(jù)獲取的所述操作行為和所述操作行為的時(shí)間,生成所述操作行為信息。所述操作行為信息中包括客戶端發(fā)生崩潰之前所述客戶端上的操作行為以及發(fā)生該操作行為的時(shí)間??梢詫⑸傻牟僮餍袨樾畔⒈4嬖谔囟夸浵碌娜罩局?。優(yōu)選的,該日志的格式可以是txt文本格式。
[0080]S103,依據(jù)所述客戶端的鏡像信息、屏幕錄制信息和操作行為信息中至少一個(gè)以及所述進(jìn)程日志,獲得所述客戶端的崩潰信息。
[0081]具體的,依據(jù)特定目錄下存儲(chǔ)的所述客戶端的鏡像信息、屏幕錄制信息和操作行為信息中至少一個(gè)以及特定目錄下存儲(chǔ)的所述進(jìn)程日志,獲得所述客戶端的崩潰信息。
[0082]優(yōu)選的,所述客戶端的崩潰信息可以是依據(jù)所述客戶端的鏡像信息、屏幕錄制信息和操作行為信息中至少一個(gè)以及所述進(jìn)程日志,進(jìn)行分析處理后,獲得的崩潰信息;也可以不進(jìn)行分析,這樣,獲得的崩潰信息直接包括所述客戶端的鏡像信息、屏幕錄制信息和操作行為信息中至少一個(gè)以及所述進(jìn)程日志。
[0083]需要說(shuō)明的是,客戶端所在終端提供的配置界面可以包括輸入框,可以在該輸入框中輸入監(jiān)控的時(shí)間間隔,或者,客戶端所在終端提供的配置界面可以包括時(shí)間間隔的選項(xiàng),可以直接選擇時(shí)間間隔。例如,所述監(jiān)控的時(shí)間間隔可以配置為I秒、2秒、5秒或者10秒。可以依據(jù)預(yù)設(shè)的監(jiān)控的時(shí)間間隔對(duì)客戶端進(jìn)行監(jiān)控,以獲取上述進(jìn)程日志以及所述客戶端的鏡像信息、屏幕錄制信息和操作行為信息中至少一個(gè)。
[0084]可選的,S103之后所述方法還包括:
[0085]按照預(yù)設(shè)的提示方式,向用戶推送提示信息,所述提示信息包括依據(jù)所述客戶端的崩潰信息獲得的所述客戶端的崩潰信息摘要。
[0086]具體的,客戶端所在終端提供的配置界面可以包括提示方式的選項(xiàng),可以預(yù)先選擇提示方式。例如,所述提示方式可以包括以下方式中至少一種:郵件提示、短信息提示和提示框提示。例如,可以預(yù)先設(shè)置郵箱地址,當(dāng)客戶端發(fā)生崩潰后,將崩潰信息摘要發(fā)送到該郵箱地址。再例如,當(dāng)客戶端發(fā)生崩潰后,在客戶端所在終端中彈出提示框,提示框中包含該崩潰信息摘要。再例如,可以預(yù)先設(shè)置接收短信息的手機(jī)號(hào)碼,當(dāng)客戶端發(fā)生崩潰后,將崩潰信息摘要發(fā)送到該手機(jī)號(hào)碼所在手機(jī)。
[0087]按照預(yù)設(shè)的提示方式,向用戶推送提示信息,所述提示信息包括依據(jù)所述客戶端的崩潰信息獲得的所述客戶端的崩潰信息摘要。例如,崩潰信息摘要可以包括運(yùn)行發(fā)生崩潰的客戶端的進(jìn)程名稱和發(fā)生崩潰的時(shí)間等。這里,由于需要在客戶端發(fā)生崩潰后,向用戶報(bào)警,但是由于崩潰信息的內(nèi)容比較多,所以可以按照提示方式先向用戶推送崩潰信息摘要,以提示用戶及時(shí)查看崩潰信息,如果用戶需要進(jìn)一步查看崩潰信息,可以在特定目錄下查看所需要的崩潰信息。
[0088]優(yōu)選的,所述方法還包括:顯示所述客戶端的崩潰信息。
[0089]具體的,在客戶端發(fā)生崩潰后,可以直接在客戶端所在終端上顯示發(fā)生崩潰的客戶端的崩潰信息,也可以在用戶需要查看崩潰信息時(shí),依據(jù)用戶的操作,顯示崩潰信息。這樣,就可以及時(shí)獲得客戶端的崩潰信息,實(shí)現(xiàn)客戶端的崩潰定位。
[0090]需要說(shuō)明的是,上述技術(shù)方案中,監(jiān)控的客戶端發(fā)生崩潰后,可以立刻停止對(duì)客戶端的監(jiān)控,即立刻停止獲取進(jìn)程日志、鏡像文件、屏幕錄制信息或操作行為信息等,并向用戶推送提示信息,還可以顯示獲得的崩潰信息,以盡快對(duì)客戶端的崩潰進(jìn)行定位和及時(shí)修復(fù)?;蛘?,客戶端發(fā)生崩潰后,也可以保持客戶端的監(jiān)控。是否停止對(duì)客戶端進(jìn)行監(jiān)控,不影響向用戶推送提示信息,以及顯示崩潰信息。
[0091 ] 本發(fā)明實(shí)施例進(jìn)一步給出實(shí)現(xiàn)上述方法實(shí)施例中各步驟及方法的裝置實(shí)施例。
[0092]本發(fā)明實(shí)施例還給出一種客戶端崩潰的定位系統(tǒng),請(qǐng)參考圖2,其為本發(fā)明實(shí)施例所提供的客戶端崩潰的定位系統(tǒng)的功能方塊圖。如圖所示,該系統(tǒng)包括:
[0093]第一獲取單元201,用于獲取發(fā)生崩潰的客戶端的進(jìn)程日志;
[0094]第二獲取單元202,用于獲取所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè);
[0095]分析單元203,用于依據(jù)所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè)以及所述進(jìn)程日志,獲得所述客戶端的崩潰信息。
[0096]可選的,所述系統(tǒng)還包括:
[0097]調(diào)用單元204,用于所述客戶端發(fā)生崩潰時(shí),通過(guò)所述客戶端所在終端的操作系統(tǒng)提供的崩潰處理API的入口地址,將運(yùn)行所述客戶端的進(jìn)程的相關(guān)信息輸入到所述崩潰處理 API ;
[0098]監(jiān)聽單元205,用于依據(jù)預(yù)設(shè)的所述崩潰處理API的入口地址,對(duì)所述崩潰處理API進(jìn)行監(jiān)聽,以獲得輸入到所述崩潰處理API的所述相關(guān)信息;
[0099]第一生成單元206,用于依據(jù)所述相關(guān)信息和所述客戶端發(fā)生崩潰的時(shí)間,生成所述發(fā)生崩潰的客戶端的進(jìn)程日志。
[0100]可選的,所述系統(tǒng)還包括:
[0101]第二生成單元207,用于所述客戶端發(fā)生崩潰后,生成鏡像文件;
[0102]寫入單元208,用于將所述鏡像文件寫入存儲(chǔ)裝置中;
[0103]其中,所述鏡像文件包括所述客戶端發(fā)生崩潰時(shí)運(yùn)行所述客戶端的進(jìn)程狀態(tài)信息和所述客戶端的屬性信息。
[0104]優(yōu)選的,所述第二獲取單元202,具體用于:
[0105]獲取所述客戶端發(fā)生崩潰之前所述終端上的操作行為;
[0106]若預(yù)設(shè)的操作行為類型包括獲取的所述操作行為,依據(jù)獲取的所述操作行為和所述操作行為的時(shí)間,生成所述操作行為信息;
[0107]其中,所述操作行為類型包括以下行為中至少一種:鼠標(biāo)單擊行為、鼠標(biāo)雙擊行為、鼠標(biāo)懸停行為、鼠標(biāo)拖拽行為、觸碰行為和按鍵輸入行為。
[0108]可選的,所述系統(tǒng)還包括:
[0109]推送單元209,用于按照預(yù)設(shè)的提示方式,向用戶推送提示信息,所述提示信息包括依據(jù)所述客戶端的崩潰信息獲得的所述客戶端的崩潰信息摘要;
[0110]所述提示方式包括以下方式中至少一種:郵件提示、短信息提示和提示框提示。
[0111]可選的,所述系統(tǒng)還包括:顯示單元210,用于顯示所述客戶端的崩潰信息。
[0112]由于本實(shí)施例中的各單元能夠執(zhí)行圖1所示的方法,本實(shí)施例未詳細(xì)描述的部分,可參考對(duì)圖1的相關(guān)說(shuō)明。
[0113]本發(fā)明實(shí)施例的技術(shù)方案具有以下有益效果:
[0114]本發(fā)明實(shí)施例的技術(shù)方案中,能夠自動(dòng)獲取發(fā)生崩潰的客戶端的進(jìn)程日志,以及客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè),然后依據(jù)獲取的信息獲得客戶端的崩潰信息,以實(shí)現(xiàn)客戶端崩潰的定位,與現(xiàn)有技術(shù)中,當(dāng)客戶端發(fā)生崩潰后,依賴人為回憶上一次的操作,實(shí)現(xiàn)客戶端崩潰的定位的方式相比,本發(fā)明實(shí)施例的上述技術(shù)方案能夠提高客戶端崩潰的定位效率,從而可以縮短客戶端測(cè)試周期,提高客戶端的測(cè)試效率,還可以為用戶提供更多更加豐富的崩潰信息。而且,本發(fā)明實(shí)施例中,實(shí)現(xiàn)客戶端崩潰的定位是依賴客觀數(shù)據(jù),如客戶端的進(jìn)程日志、客戶端的鏡像文件、屏幕錄制信息和操作行為信息等,因此,與現(xiàn)有技術(shù)中依賴人為回憶上一次的操作相比,能夠提高客戶端崩潰的定位的準(zhǔn)確性和可靠性。
[0115]例如,表I是利用本發(fā)明實(shí)施例提供的技術(shù)方案與現(xiàn)有技術(shù)相比,獲得崩潰信息的時(shí)間對(duì)比:
[0116]表1
【權(quán)利要求】
1.一種客戶端崩潰的定位方法,其特征在于,所述方法包括: 獲取發(fā)生崩潰的客戶端的進(jìn)程日志; 獲取所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè); 依據(jù)所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè)以及所述進(jìn)程日志,獲得所述客戶端的崩潰信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取發(fā)生崩潰的客戶端的進(jìn)程日志之前,所述方法還包括: 所述客戶端發(fā)生崩潰時(shí),通過(guò)所述客戶端所在終端的操作系統(tǒng)提供的崩潰處理API的入口地址,將運(yùn)行所述客戶端的進(jìn)程的相關(guān)信息輸入到所述崩潰處理API ; 依據(jù)預(yù)設(shè)的所述崩潰處理API的入口地址,對(duì)所述崩潰處理API進(jìn)行監(jiān)聽,以獲得輸入到所述崩潰處理API的所述相關(guān)信息; 依據(jù)所述相關(guān)信息和所述客戶端發(fā)生崩潰的時(shí)間,生成所述發(fā)生崩潰的客戶端的進(jìn)程日志。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述獲取所述客戶端的鏡像文件之前,所述方法還包括: 所述客戶端發(fā)生崩潰后,生成鏡像文件; 將所述鏡像文件寫入存儲(chǔ)裝置中; 其中,所述鏡像文件包括所述客戶端發(fā)生崩潰時(shí)運(yùn)行所述客戶端的進(jìn)程狀態(tài)信息和所述客戶端的屬性信息。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于,所述獲取所述客戶端的操作行為信息,包括: 獲取所述客戶端發(fā)生崩潰之前所述終端上的操作行為; 若預(yù)設(shè)的操作行為類型包括獲取的所述操作行為,依據(jù)獲取的所述操作行為和所述操作行為的時(shí)間,生成所述操作行為信息; 其中,所述操作行為類型包括以下行為中至少一種:鼠標(biāo)單擊行為、鼠標(biāo)雙擊行為、鼠標(biāo)懸停行為、鼠標(biāo)拖拽行為、觸碰行為和按鍵輸入行為。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 按照預(yù)設(shè)的提示方式,向用戶推送提示信息,所述提示信息包括依據(jù)所述客戶端的崩潰信息獲得的所述客戶端的崩潰信息摘要; 所述提示方式包括以下方式中至少一種:郵件提示、短信息提示和提示框提示。
6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法,其特征在于,所述方法還包括:顯示所述客戶端的崩潰信息。
7.一種客戶端崩潰的定位系統(tǒng),其特征在于,所述系統(tǒng)包括: 第一獲取單元,用于獲取發(fā)生崩潰的客戶端的進(jìn)程日志; 第二獲取單元,用于獲取所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè); 分析單元,用于依據(jù)所述客戶端的鏡像文件、屏幕錄制信息和操作行為信息中至少一個(gè)以及所述進(jìn)程日志,獲得所述客戶端的崩潰信息。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括:調(diào)用單元,用于所述客戶端發(fā)生崩潰時(shí),通過(guò)所述客戶端所在終端的操作系統(tǒng)提供的崩潰處理API的入口地址,將運(yùn)行所述客戶端的進(jìn)程的相關(guān)信息輸入到所述崩潰處理API ;監(jiān)聽單元,用于依據(jù)預(yù)設(shè)的所述崩潰處理API的入口地址,對(duì)所述崩潰處理API進(jìn)行監(jiān)聽,以獲得輸入到所述崩潰處理API的所述相關(guān)信息; 第一生成單元,用于依據(jù)所述相關(guān)信息和所述客戶端發(fā)生崩潰的時(shí)間,生成所述發(fā)生崩潰的客戶端的進(jìn)程日志。
9.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 第二生成單元,用于所述客戶端發(fā)生崩潰后,生成鏡像文件; 寫入單元,用于將所述鏡像文件寫入存儲(chǔ)裝置中; 其中,所述鏡像文件包括所述客戶端發(fā)生崩潰時(shí)運(yùn)行所述客戶端的進(jìn)程狀態(tài)信息和所述客戶端的屬性信息。
10.根據(jù)權(quán)利要求7至9中任一項(xiàng)所述的系統(tǒng),其特征在于,所述第二獲取單元,具體用于: 獲取所述客戶端發(fā)生崩潰之前所述終端上的操作行為; 若預(yù)設(shè)的操作行為 類型包括獲取的所述操作行為,依據(jù)獲取的所述操作行為和所述操作行為的時(shí)間,生成所述操作行為信息; 其中,所述操作行為類型包括以下行為中至少一種:鼠標(biāo)單擊行為、鼠標(biāo)雙擊行為、鼠標(biāo)懸停行為、鼠標(biāo)拖拽行為、觸碰行為和按鍵輸入行為。
11.根據(jù)權(quán)利要求7至10中任一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 推送單元,用于按照預(yù)設(shè)的提示方式,向用戶推送提示信息,所述提示信息包括依據(jù)所述客戶端的崩潰信息獲得的所述客戶端的崩潰信息摘要; 所述提示方式包括以下方式中至少一種:郵件提示、短信息提示和提示框提示。
12.根據(jù)權(quán)利要求7至11中任一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 顯示單元,用于顯示所述客戶端的崩潰信息。
【文檔編號(hào)】G06F11/34GK104077210SQ201410247943
【公開日】2014年10月1日 申請(qǐng)日期:2014年6月6日 優(yōu)先權(quán)日:2014年6月6日
【發(fā)明者】肖迪 申請(qǐng)人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司