專利名稱:一種在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法及裝置。
背景技術(shù):
自動(dòng)化測(cè)試是把以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過(guò)程。通常,在設(shè)計(jì)了測(cè)試用例并通過(guò)評(píng)審之后,由測(cè)試人員根據(jù)測(cè)試用例中描述的規(guī)程執(zhí)行測(cè)試,得到實(shí)際結(jié)果與期望結(jié)果的比較。在此過(guò)程中,為了節(jié)省人力、時(shí)間或硬件資源,提高測(cè)試效率,便引入了自動(dòng)化測(cè)試的概念。尤其是,在手工測(cè)試無(wú)法完成,需要投入大量時(shí)間與人力時(shí)也需要考慮引入自動(dòng)化測(cè)試,比如性能測(cè)試、壓力測(cè)試、大數(shù)據(jù)量輸入測(cè)試等。通常情況下,基于Web網(wǎng)頁(yè)或⑶I界面等被測(cè)試系統(tǒng)的自動(dòng)化測(cè)試方案都是通過(guò)操作被測(cè)試對(duì)象的頁(yè)面或者GUI圖形界面的菜單、按鈕等控件來(lái)實(shí)現(xiàn)測(cè)試用例數(shù)據(jù)的配置、修改、刪除、下發(fā)、上載等功能操作,但下述情況往往會(huì)導(dǎo)致自動(dòng)化測(cè)試無(wú)法達(dá)到預(yù)期的效果。(I)當(dāng)進(jìn)行大數(shù)據(jù)量的壓力測(cè)試或者性能測(cè)試時(shí),需要占用大量的系統(tǒng)資源而造成資源的極度匱乏,往往會(huì)出現(xiàn)被測(cè)試對(duì)象(比如打開界面等)的響應(yīng)速率會(huì)隨著配置數(shù)據(jù)量遞增而變得越來(lái)越緩慢。而自動(dòng)化測(cè)試腳本是一種電腦編程語(yǔ)言控制軟件應(yīng)用程序的描述性語(yǔ)言,不需要編譯,只在被調(diào)用時(shí)進(jìn)行解釋,高效率的執(zhí)行,所以容易出現(xiàn)腳本的執(zhí)行速率高于被測(cè)試對(duì)象的響應(yīng)速率,從而導(dǎo)致了在執(zhí)行測(cè)試用例過(guò)程中出現(xiàn)腳本跑飛的現(xiàn)象。(2)在操作⑶I界面或者Web網(wǎng)頁(yè)時(shí),一般需要從內(nèi)存中讀取數(shù)據(jù)進(jìn)行重新描繪,需要等待一定時(shí)間,所以為了保證被測(cè)試系統(tǒng)的線程安全,一般要求對(duì)界面的每個(gè)操作步驟都是原子級(jí)。當(dāng)腳本的執(zhí)行速率超過(guò)操作界面的響應(yīng)速率時(shí),那么就存在一個(gè)嚴(yán)重的風(fēng)險(xiǎn)測(cè)試工具與被測(cè)試對(duì)象的線程會(huì)因互相等待訪問(wèn)對(duì)方所占有的資源而造成死鎖等問(wèn)題,導(dǎo)致了出現(xiàn)被測(cè)試對(duì)象的界面花屏等現(xiàn)象,直接導(dǎo)致了自動(dòng)化測(cè)試失敗,而且給對(duì)測(cè)試結(jié)果進(jìn)行故障定位和分析也造成了較大的困擾。(3)由于自動(dòng)化測(cè)試是在預(yù)設(shè)的、正常的條件下運(yùn)行測(cè)試腳本,所以當(dāng)被測(cè)試系統(tǒng)存在故障時(shí),在整個(gè)測(cè)試過(guò)程中無(wú)法對(duì)這類異常情況進(jìn)行智能跟蹤處理,導(dǎo)致自動(dòng)化測(cè)試中斷,最終無(wú)法實(shí)現(xiàn)7*24小時(shí)自動(dòng)化測(cè)試,造成自動(dòng)化執(zhí)行效率低下。這些情況是進(jìn)行自動(dòng)化測(cè)試過(guò)程中普遍存在的問(wèn)題,由于在執(zhí)行腳本過(guò)程中無(wú)法智能處理預(yù)期事件,即自動(dòng)化測(cè)試腳本執(zhí)行速率與被測(cè)試對(duì)象的響應(yīng)速率之間的不同步、以及被測(cè)試測(cè)試系統(tǒng)本身可能存在故障等問(wèn)題,從而造成了腳本跑飛、測(cè)試中斷等嚴(yán)重問(wèn)題,嚴(yán)重影響了自動(dòng)化測(cè)試的效率。針對(duì)自動(dòng)化測(cè)試無(wú)法智能處理預(yù)期事件的問(wèn)題,目前業(yè)界常用的解決方法在測(cè)試腳本或者測(cè)試平臺(tái)中增加延遲時(shí)間來(lái)等待某一個(gè)被測(cè)試對(duì)象的響應(yīng),并且要求該被測(cè)試對(duì)象的句柄是預(yù)期可確定的。但該方法無(wú)法從根本上解決問(wèn)題,原因是被測(cè)試對(duì)象的響應(yīng)時(shí)間長(zhǎng)短取決于測(cè)試用例的數(shù)據(jù)量大小、系統(tǒng)資源多少、連續(xù)操作次數(shù)、以及被測(cè)試系統(tǒng)出現(xiàn)異??赡苄缘雀鞣N各樣、復(fù)雜、動(dòng)態(tài)的因素。也就意味著被測(cè)試對(duì)象的預(yù)期出現(xiàn)概率和響應(yīng)時(shí)間具有嚴(yán)重的隨機(jī)性,導(dǎo)致了無(wú)法通過(guò)設(shè)置一個(gè)相對(duì)固定的延遲時(shí)間和一個(gè)確定的被測(cè)試對(duì)象來(lái)解決問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法,能夠在測(cè)試腳本速率與被測(cè)試對(duì)象響應(yīng)速率無(wú)法保持同步、預(yù)期事件發(fā)生時(shí)下一個(gè)被測(cè)試對(duì)象不確定性等復(fù)雜情況下進(jìn)行高效的自動(dòng)化測(cè)試。本發(fā)明的另一目的在于,提供一種在自動(dòng)化測(cè)試中智能處理預(yù)期事件的裝置,能夠在測(cè)試腳本速率與被測(cè)試對(duì)象響應(yīng)速率無(wú)法保持同步、預(yù)期事件發(fā)生時(shí)下一個(gè)被測(cè)試對(duì)象不確定性等復(fù)雜情況下進(jìn)行高效的自動(dòng)化測(cè)試。本發(fā)明的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法,包括下列步驟A :在預(yù)期事件發(fā)生時(shí)獲取所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄;B :判斷循環(huán)檢測(cè)時(shí)間是否超出預(yù)先設(shè)定的時(shí)間期限,如果是,則進(jìn)行相應(yīng)的出錯(cuò)處理;否則,執(zhí)行步驟C ;C :根據(jù)被測(cè)試對(duì)象的句柄,輪詢檢測(cè)所有被測(cè)試對(duì)象的特征值,并判斷其中是否存在任意一個(gè)被測(cè)試對(duì)象的特征值處于可操作的狀態(tài),如果是,則測(cè)試腳本執(zhí)行下一步操作;否則,返回步驟B。其中,所述預(yù)先設(shè)定的時(shí)間期限,是根據(jù)被測(cè)試系統(tǒng)的性能指標(biāo)自定義的默認(rèn)值,或者是根據(jù)用戶測(cè)試用例數(shù)據(jù)進(jìn)行的重新賦值。其中,在所述步驟A中,所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄,包括正常和異常兩種情況下出現(xiàn)的被測(cè)試對(duì)象的句柄。其中,在所述步驟C中,包括下列步驟根據(jù)被測(cè)試對(duì)象的句柄,獲取所述被測(cè)試對(duì)象的狀態(tài)信息,根據(jù)所述狀態(tài)信息判斷所述被測(cè)試對(duì)象是否存在,如果存在,則獲取所述被測(cè)試對(duì)象的特征值,通過(guò)所述特征值判斷該被測(cè)試對(duì)象是否已經(jīng)處于可操作的狀態(tài)。其中,所述相應(yīng)的出錯(cuò)處理,包括下列步驟提前結(jié)束當(dāng)前自動(dòng)化測(cè)試用例的剩余測(cè)試步驟;將本次自動(dòng)化測(cè)試用例的結(jié)果設(shè)為失敗,失敗原因設(shè)為等待被測(cè)試對(duì)象響應(yīng)超時(shí),并且和所設(shè)置時(shí)間期限值一起寫入到測(cè)試結(jié)果報(bào)表或者日志中;清除當(dāng)前測(cè)試用例所配置的用戶數(shù)據(jù),進(jìn)行測(cè)試環(huán)境恢復(fù)操作。本發(fā)明的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的裝置,包括測(cè)試用例腳本的初始化模塊、檢測(cè)被測(cè)試對(duì)象特征值模塊,以及實(shí)時(shí)處理預(yù)期事件模塊,其中,所述測(cè)試用例腳本的初始化模塊,用于預(yù)先設(shè)定時(shí)間期限;所述檢測(cè)被測(cè)試對(duì)象特征值模塊,用于在預(yù)期事件發(fā)生時(shí)獲取所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄,并根據(jù)所述被測(cè)試對(duì)象的句柄,輪詢檢測(cè)所有被測(cè)試對(duì)象的特征值;所述實(shí)時(shí)處理預(yù)期事件模塊,用于根據(jù)所述檢測(cè)被測(cè)試對(duì)象特征值模塊的檢測(cè)結(jié)果,判斷是否存在任意一個(gè)被測(cè)試對(duì)象的特征值處于可操作的狀態(tài),存在時(shí),則測(cè)試腳本執(zhí)行下一步操作;不存在時(shí),則繼續(xù)循環(huán)檢測(cè),直到檢測(cè)時(shí)間超過(guò)預(yù)先設(shè)定的時(shí)間期限,進(jìn)行相應(yīng)的出錯(cuò)處理。其中,在所述測(cè)試用例腳本的初始化模塊中,所述預(yù)先設(shè)定的時(shí)間期限,是根據(jù)被測(cè)試系統(tǒng)的性能指標(biāo)自定義的默認(rèn)值,或者是根據(jù)用戶測(cè)試用例數(shù)據(jù)進(jìn)行的重新賦值。其中,在所述檢測(cè)被測(cè)試對(duì)象特征值模塊中,獲取的所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄,包括正常和異常兩種情況下出現(xiàn)的被測(cè)試對(duì)象的句柄。其中,所述實(shí)時(shí)處理預(yù)期事件模塊,用于根據(jù)被測(cè)試對(duì)象的句柄,獲取所述被測(cè)試對(duì)象的狀態(tài)信息,根據(jù)所述狀態(tài)信息判斷所述被測(cè)試對(duì)象是否存在,在存在時(shí),獲取所述被測(cè)試對(duì)象的特征值,通過(guò)所述特征值判斷該被測(cè)試對(duì)象是否已經(jīng)處于可操作的狀態(tài)。進(jìn)一步地,本發(fā)明的裝置還可以包括出錯(cuò)處理機(jī)制模塊,用于提前結(jié)束當(dāng)前自動(dòng)化測(cè)試用例的剩余測(cè)試步驟;并將本次自動(dòng)化測(cè)試用例的結(jié)果設(shè)為失敗,失敗原因設(shè)為等待被測(cè)試對(duì)象響應(yīng)超時(shí),并且和所設(shè)置時(shí)間期限值一起寫入到測(cè)試結(jié)果報(bào)表或者日志中;并清除當(dāng)前測(cè)試用例所配置的用戶數(shù)據(jù),進(jìn)行測(cè)試環(huán)境恢復(fù)操作。本發(fā)明的有益效果是依照本發(fā)明的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法及裝置,能夠在測(cè)試腳本速率與被測(cè)試對(duì)象響應(yīng)速率無(wú)法保持同步、預(yù)期事件發(fā)生時(shí)下一個(gè)被測(cè)試對(duì)象不確定性等復(fù)雜情況下進(jìn)行高效的自動(dòng)化測(cè)試,提高了測(cè)試用例的執(zhí)行效率,該方法簡(jiǎn)單可靠,實(shí)現(xiàn)該方法的裝置經(jīng)過(guò)實(shí)際測(cè)試,結(jié)果穩(wěn)定可靠。
圖1為本發(fā)明的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法的流程圖;圖2為本發(fā)明實(shí)施例的檢測(cè)預(yù)期事件發(fā)生時(shí)被測(cè)試對(duì)象特征值的流程圖;圖3為本發(fā)明的出錯(cuò)處理機(jī)制的流程圖;圖4為本發(fā)明實(shí)施例的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法的流程圖;圖5為本發(fā)明的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式以下,參考附圖1 5詳細(xì)描述本發(fā)明的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法及裝置。如圖1所示,本發(fā)明的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法,包括下列步驟步驟100 :預(yù)先定義一個(gè)時(shí)間期限;其中,該時(shí)間期限,可根據(jù)被測(cè)試系統(tǒng)的性能指標(biāo)自定義一個(gè)默認(rèn)值,或者根據(jù)用戶測(cè)試用例數(shù)據(jù)進(jìn)行重新賦值。步驟200 :在預(yù)期事件發(fā)生時(shí)獲取所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄;其中,要獲取所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄,是由于預(yù)期事件發(fā)生時(shí)下一個(gè)被測(cè)試對(duì)象具有隨機(jī)性;步驟300 :判斷循環(huán)檢測(cè)時(shí)間是否超出預(yù)先設(shè)定的時(shí)間期限,如果是,則進(jìn)行相應(yīng)的出錯(cuò)處理,然后進(jìn)行下一個(gè)測(cè)試用例;否則,執(zhí)行步驟400 ;步驟400 :根據(jù)被測(cè)試對(duì)象的句柄,輪詢檢測(cè)所有被測(cè)試對(duì)象的特征值,并判斷其中是否存在任意一個(gè)被測(cè)試對(duì)象的特征值處于可操作的狀態(tài),如果是,則測(cè)試腳本執(zhí)行下一步操作;否則,返回步驟300。具體地,如圖2所示,為本發(fā)明實(shí)施例的檢測(cè)預(yù)期事件發(fā)生時(shí)被測(cè)試對(duì)象特征值的流程圖,包括下列步驟步驟21 :根據(jù)被測(cè)試對(duì)象的句柄,獲取被測(cè)試對(duì)象的狀態(tài)信息;步驟22 :根據(jù)該狀態(tài)信息判斷該被測(cè)試對(duì)象是否存在,如果存在,則執(zhí)行步驟23 ;步驟23 :獲取該被測(cè)試對(duì)象的特征屬性,比如可編輯狀態(tài);步驟24 :判斷其特征屬性是否滿足可操作的狀態(tài),如果是,則返回正確并結(jié)束;否貝U,返回錯(cuò)誤并結(jié)束。另外,在步驟300中,進(jìn)行相應(yīng)的出錯(cuò)處理,如圖3所示,包括下列步驟步驟31 :提前結(jié)束當(dāng)前自動(dòng)化測(cè)試用例剩下的測(cè)試;步驟32 :將本次自動(dòng)化測(cè)試用例的結(jié)果設(shè)為失敗,失敗原因設(shè)為等待被測(cè)試對(duì)象響應(yīng)超時(shí);步驟33 :將測(cè)試用例結(jié)果、失敗原因、時(shí)間期限值一起寫入到測(cè)試結(jié)果報(bào)表或者日志中;步驟34 :清除當(dāng)前測(cè)試用例所配置的用戶數(shù)據(jù),進(jìn)行測(cè)試環(huán)境恢復(fù)操作。需要說(shuō)明的是,本發(fā)明中的預(yù)期事件是指在進(jìn)行自動(dòng)化測(cè)試過(guò)程中下一步可能出現(xiàn)的被測(cè)試對(duì)象,比如在測(cè)試網(wǎng)元管理系統(tǒng)時(shí),點(diǎn)擊完“配置”按鈕,可能是正常情況下出現(xiàn)的配置主界面,也可能是異常情況下出現(xiàn)的出錯(cuò)提示窗體等。另外,本發(fā)明中的預(yù)期事件發(fā)生時(shí)的特征值,是用于標(biāo)識(shí)預(yù)期的下一個(gè)被測(cè)試對(duì)象是否處于可操作狀態(tài)。比如要對(duì)某個(gè)控件進(jìn)行操作,那么不僅要先判斷其是否存在,且要判斷其是否處于可編輯或使能狀態(tài),即能夠完整描述控件是否處于可操作狀態(tài)。另外,上述被測(cè)試對(duì)象都是屬于互斥關(guān)系,所以一旦檢測(cè)到其中一個(gè)被測(cè)試對(duì)象的特征值滿足所設(shè)定條件(即被測(cè)試對(duì)象處于可操作狀態(tài)),則測(cè)試腳本就立即跳出循環(huán),繼續(xù)執(zhí)行下一條測(cè)試腳本,否則,當(dāng)循環(huán)檢測(cè)時(shí)間超過(guò)了時(shí)間期限,結(jié)束本次循環(huán),執(zhí)行下一個(gè)測(cè)試用例,從而智能地處理等待預(yù)期事件的發(fā)生,而不必盲目地對(duì)某一個(gè)被測(cè)試對(duì)象進(jìn)行長(zhǎng)時(shí)間等待,以保證腳本能夠?qū)崟r(shí)并可靠地執(zhí)行下去,提高自動(dòng)化測(cè)試用例的執(zhí)行效率。如圖4所示,為本發(fā)明實(shí)施例的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法的流程圖,包括下列步驟步驟41 :從測(cè)試用例數(shù)據(jù)中獲取時(shí)間期限值,給時(shí)間期限進(jìn)行重新賦值;步驟42 :獲取預(yù)期事件發(fā)生時(shí)的所有可能出現(xiàn)的下一步被測(cè)試對(duì)象,以正常和異常兩種情況下出現(xiàn)的被測(cè)試對(duì)象為例,分別獲取兩個(gè)被測(cè)試對(duì)象的句柄;步驟43 :判斷循環(huán)檢測(cè)時(shí)間是否超出了所設(shè)定的時(shí)間期限值,如果已超出,則等待超時(shí),進(jìn)行相應(yīng)的出錯(cuò)處理,然后運(yùn)行下一個(gè)自動(dòng)化測(cè)試用例;如果未超時(shí),則執(zhí)行步驟44 ;步驟44 :根據(jù)正常情況下的被測(cè)試對(duì)象的句柄獲取該被測(cè)試對(duì)象的特征值;步驟45 :判斷該特征值是否滿足所設(shè)定的條件,即是否處于可操作狀態(tài)。如果滿足條件,則立即跳出本次循環(huán)體,執(zhí)行下一步測(cè)試腳本;否則,執(zhí)行步驟46。步驟46 :根據(jù)異常情況下的被測(cè)試對(duì)象的句柄獲取該被測(cè)試對(duì)象的特征值;
步驟47 :根據(jù)異常情況下的被測(cè)試對(duì)象特征值,判斷該特征值是否滿足所設(shè)定的條件,如果滿足,則立即跳出本次循環(huán)體,執(zhí)行相應(yīng)的出錯(cuò)處理機(jī)制并進(jìn)入下一個(gè)自動(dòng)化測(cè)試用例,如果不丨兩足條件,則返回步驟43。圖5為本發(fā)明的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的裝置的結(jié)構(gòu)示意圖,如圖5所示,該裝置包括測(cè)試用例腳本的初始化模塊、檢測(cè)被測(cè)試對(duì)象特征值模塊,以及實(shí)時(shí)處理預(yù)期事件模塊。其中,測(cè)試用例腳本的初始化模塊,用于預(yù)先設(shè)定時(shí)間期限。檢測(cè)被測(cè)試對(duì)象特征值模塊,用于在預(yù)期事件發(fā)生時(shí)獲取所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄,并根據(jù)被測(cè)試對(duì)象的句柄,輪詢檢測(cè)所有被測(cè)試對(duì)象的特征值。實(shí)時(shí)處理預(yù)期事件模塊,用于根據(jù)檢測(cè)被測(cè)試對(duì)象特征值模塊的檢測(cè)結(jié)果,判斷是否存在任意一個(gè)被測(cè)試對(duì)象的特征值處于可操作的狀態(tài),存在時(shí),則測(cè)試腳本執(zhí)行下一步操作;不存在時(shí),則繼續(xù)循環(huán)檢測(cè),直到檢測(cè)時(shí)間超過(guò)預(yù)先設(shè)定的時(shí)間期限,進(jìn)行相應(yīng)的出錯(cuò)處理。其中,在測(cè)試用例腳本的初始化模塊中,該預(yù)先設(shè)定的時(shí)間期限,是根據(jù)被測(cè)試系統(tǒng)的性能指標(biāo)自定義的默認(rèn)值,或者是根據(jù)用戶測(cè)試用例數(shù)據(jù)進(jìn)行的重新賦值。另外,在檢測(cè)被測(cè)試對(duì)象特征值模塊中,獲取的所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄,包括正常和異常兩種情況下出現(xiàn)的被測(cè)試對(duì)象的句柄。另外,實(shí)時(shí)處理預(yù)期事件模塊,是用于根據(jù)被測(cè)試對(duì)象的句柄,獲取所述被測(cè)試對(duì)象的狀態(tài)信息,根據(jù)該狀態(tài)信息判斷該被測(cè)試對(duì)象是否存在,在存在時(shí),獲取該被測(cè)試對(duì)象的特征值,通過(guò)該特征值判斷該被測(cè)試對(duì)象是否已經(jīng)處于可操作的狀態(tài)。本發(fā)明的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的裝置,還可以進(jìn)一步包括出錯(cuò)處理機(jī)制模塊。出錯(cuò)處理機(jī)制模塊,用于提前結(jié)束當(dāng)前自動(dòng)化測(cè)試用例剩下的測(cè)試步驟,然后將本次自動(dòng)化測(cè)試用例的結(jié)果設(shè)為失敗,失敗原因設(shè)為等待被測(cè)試對(duì)象響應(yīng)超時(shí),并且和所設(shè)置時(shí)間期限值一起寫入到測(cè)試結(jié)果報(bào)表或者日志中;最后,清除當(dāng)前測(cè)試用例所配置的用戶數(shù)據(jù),進(jìn)行測(cè)試環(huán)境恢復(fù)操作,以免對(duì)下一個(gè)自動(dòng)化測(cè)試用例造成干擾。通過(guò)配套的出錯(cuò)處理機(jī)制,以進(jìn)行故障跟蹤定位和分析,并且保證順利進(jìn)入下一個(gè)自動(dòng)化測(cè)試用例。綜上所述,依照本發(fā)明的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法及裝置,具有如下優(yōu)點(diǎn)I)本發(fā)明能夠同時(shí)檢測(cè)在預(yù)期事件發(fā)生時(shí)的所有可能出現(xiàn)下一個(gè)被測(cè)試對(duì)象的可操作狀態(tài),由于這些對(duì)象之間為互斥關(guān)系,因此,只要其中任意一個(gè)被測(cè)試對(duì)象的特征值滿足所設(shè)定條件,即可進(jìn)行下一步操作。2)解決了測(cè)試腳本的執(zhí)行速率大于被測(cè)試對(duì)象的響應(yīng)速率,所帶來(lái)的腳本跑飛、死鎖等問(wèn)題,保證了腳本穩(wěn)定可靠地運(yùn)行,并能夠?qū)崟r(shí)地操作下一個(gè)被測(cè)試對(duì)象,極大地提高了自動(dòng)化測(cè)試效率和自動(dòng)化測(cè)試的智能化;在操作被測(cè)試對(duì)象過(guò)程中響應(yīng)時(shí)間不確定時(shí),也能夠?qū)崟r(shí)地處理等待預(yù)期事件的發(fā)生。3)本發(fā)明的智能處理等待預(yù)期事件的裝置及方法,算法簡(jiǎn)單,易于實(shí)現(xiàn),并提供配套的出錯(cuò)處理機(jī)制,解決了故障定位困難問(wèn)題。以上是為了使本領(lǐng)域普通技術(shù)人員理解本發(fā)明,而對(duì)本發(fā)明所進(jìn)行的詳細(xì)描述,但可以想到,在不脫離本發(fā)明的權(quán)利要求所涵蓋的范圍內(nèi)還可以做出其它的變化和修改,這些變化和修改均在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.ー種在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法,其特征在于,包括下列步驟 A :在預(yù)期事件發(fā)生時(shí)獲取所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄; B :判斷循環(huán)檢測(cè)時(shí)間是否超出預(yù)先設(shè)定的時(shí)間期限,如果是,則進(jìn)行相應(yīng)的出錯(cuò)處理;否則,執(zhí)行步驟C ; C :根據(jù)被測(cè)試對(duì)象的句柄,輪詢檢測(cè)所有被測(cè)試對(duì)象的特征值,并判斷其中是否存在任意一個(gè)被測(cè)試對(duì)象的特征值處于可操作的狀態(tài),如果是,則測(cè)試腳本執(zhí)行下一歩操作;否貝U,返回步驟B。
2.如權(quán)利要求1所述的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法,其特征在于,所述預(yù)先設(shè)定的時(shí)間期限,是根據(jù)被測(cè)試系統(tǒng)的性能指標(biāo)自定義的默認(rèn)值,或者是根據(jù)用戶測(cè)試用例數(shù)據(jù)進(jìn)行的重新賦值。
3.如權(quán)利要求1所述的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法,其特征在于,在所述步驟A中,所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄,包括正常和異常兩種情況下出現(xiàn)的被測(cè)試對(duì)象的句柄。
4.如權(quán)利要求1所述的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法,其特征在于,在所述步驟C中,包括下列步驟 根據(jù)被測(cè)試對(duì)象的句柄,獲取所述被測(cè)試對(duì)象的狀態(tài)信息,根據(jù)所述狀態(tài)信息判斷所述被測(cè)試對(duì)象是否存在,如果存在,則獲取所述被測(cè)試對(duì)象的特征值,通過(guò)所述特征值判斷該被測(cè)試對(duì)象是否已經(jīng)處于可操作的狀態(tài)。
5.如權(quán)利要求1所述的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法,其特征在于,所述相應(yīng)的出錯(cuò)處理,包括下列步驟 提前結(jié)束當(dāng)前自動(dòng)化測(cè)試用例的剩余測(cè)試步驟; 將本次自動(dòng)化測(cè)試用例的結(jié)果設(shè)為失敗,失敗原因設(shè)為等待被測(cè)試對(duì)象響應(yīng)超時(shí),并且和所設(shè)置時(shí)間期限值一起寫入到測(cè)試結(jié)果報(bào)表或者日志中; 清除當(dāng)前測(cè)試用例所配置的用戶數(shù)據(jù),進(jìn)行測(cè)試環(huán)境恢復(fù)操作。
6.ー種在自動(dòng)化測(cè)試中智能處理預(yù)期事件的裝置,其特征在于,包括測(cè)試用例腳本的初始化模塊、檢測(cè)被測(cè)試對(duì)象特征值模塊,以及實(shí)時(shí)處理預(yù)期事件模塊,其中, 所述測(cè)試用例腳本的初始化模塊,用于預(yù)先設(shè)定時(shí)間期限; 所述檢測(cè)被測(cè)試對(duì)象特征值模塊,用于在預(yù)期事件發(fā)生時(shí)獲取所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄,井根據(jù)所述被測(cè)試對(duì)象的句柄,輪詢檢測(cè)所有被測(cè)試對(duì)象的特征值; 所述實(shí)時(shí)處理預(yù)期事件模塊,用于根據(jù)所述檢測(cè)被測(cè)試對(duì)象特征值模塊的檢測(cè)結(jié)果,判斷是否存在任意一個(gè)被測(cè)試對(duì)象的特征值處于可操作的狀態(tài),存在吋,則測(cè)試腳本執(zhí)行下一歩操作;不存在吋,則繼續(xù)循環(huán)檢測(cè),直到檢測(cè)時(shí)間超過(guò)預(yù)先設(shè)定的時(shí)間期限,進(jìn)行相應(yīng)的出錯(cuò)處理。
7.如權(quán)利要求6所述的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的裝置,其特征在于,在所述測(cè)試用例腳本的初始化模塊中,所述預(yù)先設(shè)定的時(shí)間期限,是根據(jù)被測(cè)試系統(tǒng)的性能指標(biāo)自定義的默認(rèn)值,或者是根據(jù)用戶測(cè)試用例數(shù)據(jù)進(jìn)行的重新賦值。
8.如權(quán)利要求6所述的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的裝置,其特征在于,在所述檢測(cè)被測(cè)試對(duì)象特征值模塊中,獲取的所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄,包括正常和異常兩種情況下出現(xiàn)的被測(cè)試對(duì)象的句柄。
9.如權(quán)利要求6所述的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的裝置,其特征在于,所述實(shí)時(shí)處理預(yù)期事件模塊,用于根據(jù)被測(cè)試對(duì)象的句柄,獲取所述被測(cè)試對(duì)象的狀態(tài)信息,根據(jù)所述狀態(tài)信息判斷所述被測(cè)試對(duì)象是否存在,在存在時(shí),獲取所述被測(cè)試對(duì)象的特征值,通過(guò)所述特征值判斷該被測(cè)試對(duì)象是否已經(jīng)處于可操作的狀態(tài)。
10.如權(quán)利要求6所述的在自動(dòng)化測(cè)試中智能處理預(yù)期事件的裝置,其特征在于,進(jìn)一歩包括出錯(cuò)處理機(jī)制模塊,用于提前結(jié)束當(dāng)前自動(dòng)化測(cè)試用例的剰余測(cè)試步驟;并將本次自動(dòng)化測(cè)試用例的結(jié)果設(shè)為失敗,失敗原因設(shè)為等待被測(cè)試對(duì)象響應(yīng)超時(shí),并且和所設(shè)置時(shí)間期限值一起寫入到測(cè)試結(jié)果報(bào)表或者日志中;并清除當(dāng)前測(cè)試用例所配置的用戶數(shù)據(jù),進(jìn)行測(cè)試環(huán)境恢復(fù)操作。
全文摘要
本發(fā)明提供一種在自動(dòng)化測(cè)試中智能處理預(yù)期事件的方法及裝置,其中,該方法包括下列步驟A在預(yù)期事件發(fā)生時(shí)獲取所有可能情況下的下一個(gè)被測(cè)試對(duì)象的句柄;B判斷循環(huán)檢測(cè)時(shí)間是否超出預(yù)先設(shè)定的時(shí)間期限,如果是,則進(jìn)行相應(yīng)的出錯(cuò)處理;否則,執(zhí)行步驟C;C根據(jù)被測(cè)試對(duì)象的句柄,輪詢檢測(cè)所有被測(cè)試對(duì)象的特征值,并判斷其中是否存在任意一個(gè)被測(cè)試對(duì)象的特征值處于可操作的狀態(tài),如果是,則測(cè)試腳本執(zhí)行下一步操作;否則,返回步驟B。本發(fā)明能夠解決在測(cè)試腳本速率與被測(cè)試對(duì)象響應(yīng)速率不同步、預(yù)期事件發(fā)生時(shí)下一個(gè)被測(cè)試對(duì)象不確定性等復(fù)雜情況下高效的自動(dòng)化測(cè)試。
文檔編號(hào)G06F11/36GK103049370SQ20111031301
公開日2013年4月17日 申請(qǐng)日期2011年10月17日 優(yōu)先權(quán)日2011年10月17日
發(fā)明者鄭重 申請(qǐng)人:中興通訊股份有限公司