一種脫離PC的Android自動(dòng)化測試錄屏機(jī)制及錄屏系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及自動(dòng)化測試技術(shù)領(lǐng)域,特別是一種脫離PC的Android自動(dòng)化測試錄屏機(jī)制及其應(yīng)用該方法的系統(tǒng)。
【背景技術(shù)】
[0002]自動(dòng)化測試是通過自動(dòng)化測試工具或其他手段,按照測試工程師的預(yù)定計(jì)劃進(jìn)行自動(dòng)的測試,從而達(dá)到提高軟件質(zhì)量的目的。測試工程師最常用的手段就是通過編寫自動(dòng)化測試腳本,讓被測程序按制定好的用例去執(zhí)行,通過對(duì)比測試結(jié)果和預(yù)期結(jié)果發(fā)現(xiàn)被測程序的缺陷。當(dāng)發(fā)生預(yù)期結(jié)果與測試結(jié)果不一致時(shí),保留異?,F(xiàn)場相關(guān)數(shù)據(jù)尤為重要,數(shù)據(jù)保存得越全,則越利于研發(fā)人員修復(fù)被測程序的缺陷或漏洞。
[0003]現(xiàn)有的自動(dòng)化測試機(jī)制,并未有一套完善的針對(duì)腳本運(yùn)行情況的監(jiān)控機(jī)制,一旦腳本的運(yùn)行過程中發(fā)生錯(cuò)誤,只是通過截圖、保存日志等方式保存錯(cuò)誤現(xiàn)場相關(guān)數(shù)據(jù),這種方式有兩個(gè)比較大的弊端,一是數(shù)據(jù)保存不完整,現(xiàn)有機(jī)制僅是保存錯(cuò)誤發(fā)生時(shí)間點(diǎn)當(dāng)前時(shí)刻的數(shù)據(jù),然而一條腳本的運(yùn)行失敗有可能是一系列的操作引起的,僅保存錯(cuò)誤時(shí)間點(diǎn)的數(shù)據(jù)并無法充分說明問題;二是數(shù)據(jù)不夠直觀,不利于錯(cuò)誤誘因推斷。測試人員單憑幾張截圖或是相關(guān)日志去判斷錯(cuò)誤誘因,需要憑經(jīng)驗(yàn)和推理,給程序缺陷或漏洞的定位和推斷帶來一定的難度。如果能對(duì)錯(cuò)誤發(fā)生時(shí)間點(diǎn)的相鄰時(shí)間段的運(yùn)行進(jìn)行監(jiān)測,將運(yùn)行情況通過錄屏的方式保存下來,將大大方便定位,雖然目前有一些PC端的工具能對(duì)手機(jī)進(jìn)行錄屏,但是在跑自動(dòng)化測試腳本往往需要脫離PC運(yùn)行?;谝陨媳尘?,本發(fā)明提出了一種脫離PC的Android自動(dòng)化測試錄屏機(jī)制。
【發(fā)明內(nèi)容】
[0004]本發(fā)明為解決上述問題,提供了一種脫離PC的Android自動(dòng)化測試錄屏機(jī)制及錄屏系統(tǒng),達(dá)到有效的、完整的、直觀的保存錯(cuò)誤現(xiàn)場相關(guān)數(shù)據(jù)的目的,解決現(xiàn)有機(jī)制所存在的弊端。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
[0006]—種脫離PC的Android自動(dòng)化測試錄屏機(jī)制,其包括以下步驟:
[0007]10.啟動(dòng)自動(dòng)化測試腳本,并運(yùn)行錄屏程序?qū)λ龅淖詣?dòng)化測試腳本的運(yùn)行情況進(jìn)行監(jiān)聽;
[0008]20.將所述的錄屏程序的監(jiān)聽結(jié)果進(jìn)行錄制,并生成錄屏緩存文件;
[0009]30.判斷所述的自動(dòng)化測試腳本的運(yùn)行是否發(fā)生異常,若否,則結(jié)束錄屏并清空所述的錄屏緩存文件;若是,則對(duì)發(fā)生異常時(shí)間點(diǎn)相關(guān)的錄屏緩存文件進(jìn)行保存。
[0010]優(yōu)選的,所述的步驟10進(jìn)一步包括:
[0011]11.運(yùn)行錄屏程序,通過待測試的Android應(yīng)用程序開啟線程進(jìn)行不間斷錄屏;
[0012]12.通過待測試的Android應(yīng)用程序啟動(dòng)所述的自動(dòng)化測試腳本;
[0013]13.所述的錄屏程序根據(jù)腳本運(yùn)行情況反饋機(jī)制對(duì)所述的自動(dòng)化測試腳本的運(yùn)行情況進(jìn)行監(jiān)聽。
[0014]優(yōu)選的,所述的步驟20中生成錄屏緩存文件后,是采用先進(jìn)先出、后進(jìn)后出的堆棧結(jié)構(gòu)的緩沖機(jī)制將生成的錄屏緩存文件存入緩沖區(qū)域,每個(gè)錄屏緩存文件具有預(yù)設(shè)的固定時(shí)長。
[0015]優(yōu)選的,所述的步驟30中判斷所述的自動(dòng)化測試腳本的運(yùn)行是否發(fā)生異常,是指在所述的自動(dòng)化測試腳本停止運(yùn)行時(shí),通過腳本運(yùn)行情況反饋機(jī)制判斷該自動(dòng)化測試腳本是否發(fā)生異常:
[0016]31.若所述的自動(dòng)化測試腳本為正常停止運(yùn)行,則結(jié)束錄屏并清空所述的錄屏緩存文件;
[0017]32.若所述的自動(dòng)化測試腳本為異常停止運(yùn)行,則對(duì)發(fā)生異常時(shí)間點(diǎn)相關(guān)的錄屏緩存文件進(jìn)行保存;
[0018]33.根據(jù)所述的發(fā)生異常時(shí)間點(diǎn)相關(guān)的錄屏緩存文件進(jìn)行異常誘因判斷和分析。
[0019]另外,本發(fā)明還提供一種脫離PC的Android自動(dòng)化測試錄屏系統(tǒng),其包括:
[0020]腳本運(yùn)行模塊A,用于啟動(dòng)自動(dòng)化測試腳本;
[0021]錄屏模塊B,用于運(yùn)行錄屏程序?qū)λ龅淖詣?dòng)化測試腳本的運(yùn)行情況進(jìn)行監(jiān)聽,并將所述的錄屏程序的監(jiān)聽結(jié)果進(jìn)行錄制;
[0022]緩存模塊C,用于將所錄制的錄屏程序的監(jiān)聽結(jié)果生成錄屏緩存文件;
[0023]分析模塊D,用于判斷所述的自動(dòng)化測試腳本的運(yùn)行是否發(fā)生異常,若否,則結(jié)束錄屏并清空所述的錄屏緩存文件;若是,則對(duì)發(fā)生異常時(shí)間點(diǎn)相關(guān)的錄屏緩存文件進(jìn)行保存;
[0024]存儲(chǔ)模塊E,用于保存所述的發(fā)生異常時(shí)間點(diǎn)相關(guān)的錄屏緩存文件。
[0025]本發(fā)明的有益效果是:
[0026]本發(fā)明的一種脫離PC的Android自動(dòng)化測試錄屏機(jī)制及錄屏系統(tǒng),其通過啟動(dòng)自動(dòng)化測試腳本,并運(yùn)行錄屏程序?qū)λ龅淖詣?dòng)化測試腳本的運(yùn)行情況進(jìn)行監(jiān)聽,將所述的錄屏程序的監(jiān)聽結(jié)果進(jìn)行錄制,并生成錄屏緩存文件,然后判斷所述的自動(dòng)化測試腳本的運(yùn)行是否發(fā)生異常,若否,則結(jié)束錄屏并清空所述的錄屏緩存文件;若是,則對(duì)發(fā)生異常時(shí)間點(diǎn)相關(guān)的錄屏緩存文件進(jìn)行保存;從而僅保存發(fā)生異常時(shí)間點(diǎn)附近的錄屏緩存文件,過濾其他不必要信息,不僅節(jié)約了存儲(chǔ)空間,而且節(jié)約了后續(xù)的異常誘因的分析工作量,使得測試分析工作更有針對(duì)性,測試異常處理的效率更高。
【附圖說明】
[0027]此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0028]圖1為本發(fā)明一種脫離PC的Android自動(dòng)化測試錄屏機(jī)制的流程簡圖;
[0029]圖2為本發(fā)明一種脫離PC的Android自動(dòng)化測試錄屏系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0030]為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0031]如圖1所示,本發(fā)明的一種脫離PC的Android自動(dòng)化測試錄屏機(jī)制,其包括以下步驟:
[0032]10.啟動(dòng)自動(dòng)化測試腳本,并運(yùn)行錄屏程序?qū)λ龅淖詣?dòng)化測試腳本的運(yùn)行情況進(jìn)行監(jiān)聽;
[0033]20.將所述的錄屏程序的監(jiān)聽結(jié)果進(jìn)行錄制,并生成錄屏緩存文件;
[0034]30.判斷所述的自動(dòng)化測試腳本的運(yùn)行是否發(fā)生異常,若否,則結(jié)束錄屏并清空所述的錄屏緩存文件;若是,則對(duì)發(fā)生異常時(shí)間點(diǎn)相關(guān)的錄屏緩存文件進(jìn)行保存。
[0035]所述的自動(dòng)化測試腳本按照指定格式進(jìn)行腳本編輯,或者通過測試工具導(dǎo)入按照指定格式外編輯的測試腳本,并設(shè)定測試用例及其執(zhí)行的次數(shù)、執(zhí)行的時(shí)間間隔以及兩個(gè)測試用例之間執(zhí)行的時(shí)間間隔等;同時(shí)還可設(shè)定測試過程中進(jìn)行系統(tǒng)資源監(jiān)控的參數(shù)。
[0036]所述的錄屏程序可以是一種使用常用程序語言,例如c語言開發(fā)出來且獨(dú)立于待測試應(yīng)用程序的可執(zhí)行文件;本實(shí)施例中,所述的錄屏程序是一個(gè)獨(dú)立的Android應(yīng)用程序,在進(jìn)行Android終端應(yīng)用程序的測試方法時(shí),用