專利名稱:一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試系統(tǒng)以及測試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)堆疊系統(tǒng)領(lǐng)域,尤其涉及一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試系統(tǒng)以及測試方法。
背景技術(shù):
隨著數(shù)據(jù)通信技術(shù)的發(fā)展,寬帶網(wǎng)絡(luò)的持續(xù)增長,以太網(wǎng)交換機(jī)的堆疊技術(shù)成為目前以太網(wǎng)交換機(jī)擴(kuò)展端口使用較多的技術(shù),但是以太網(wǎng)的堆疊是一種非標(biāo)準(zhǔn)化技術(shù)。各個廠商之間不支持混合堆疊,堆疊模式也為各廠商制定,并且不支持拓?fù)浣Y(jié)構(gòu)。目前流行的堆疊模式主要有兩種菊花鏈模式和星型模式。堆疊技術(shù)的最大的優(yōu)點(diǎn)就是提供簡化的本地管理,將一組交換機(jī)作為一個對象來管理。
由于堆疊交換設(shè)備是由一組單獨(dú)的設(shè)備集合而成,對于系統(tǒng)測試而言,由原來的單臺設(shè)備的測試到一組設(shè)備的集合測試,測試的復(fù)雜度以及工作量都是成幾何級數(shù)增長的,堆疊系統(tǒng)工作的模式有原來分散控制到集中控制,設(shè)備間的同步以及相互協(xié)調(diào)成為設(shè)備能夠穩(wěn)定運(yùn)行的關(guān)鍵所在,對于網(wǎng)絡(luò)設(shè)備的系統(tǒng)測試來說,不但要求單臺設(shè)備的功能要符合標(biāo)準(zhǔn),協(xié)議要保持一致,并且要求堆疊后的設(shè)備同樣符合要求,由于整個堆疊系統(tǒng),各成員設(shè)備與主控設(shè)備,以及成員設(shè)備之間的協(xié)調(diào)工作應(yīng)用到具體的測試用例當(dāng)中將會是一個十分繁瑣,并且需要考慮諸多因素的一個過程,在測試過程中,首先要保證單臺成員設(shè)備在沒有堆疊的情況下,不會存在功能,協(xié)議以及性能上的缺陷,只有在這個前提下,經(jīng)過堆疊的設(shè)備才有可能在功能上不出現(xiàn)問題,所以一個完整的堆疊系統(tǒng)測試,應(yīng)該包括對單臺成員設(shè)備的全面功能測試,以及對整個經(jīng)過堆疊后的系統(tǒng)進(jìn)行的全面的功能測試兩部分,由于一個堆疊系統(tǒng)需要多臺設(shè)備進(jìn)行,所以這樣也為并行測試提供了條件,即在同一個測試系統(tǒng)的控制下,采用不同的測試用例同時分配到各個成員設(shè)備中,因此在測試當(dāng)中,如何才能覆蓋所有的測試功能點(diǎn)將會是不容易實(shí)現(xiàn)的一個步驟,這樣極易導(dǎo)致設(shè)備在不同的堆疊規(guī)模和堆疊配置下的系統(tǒng)缺陷,給堆疊設(shè)備的可用性帶來風(fēng)險。
發(fā)明內(nèi)容
本發(fā)明提供一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試系統(tǒng)以及測試方法,以解決在測試當(dāng)中,如何才能覆蓋所有的測試功能點(diǎn)的問題。
為了解決上述技術(shù)問題,本發(fā)明首先提供一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試系統(tǒng),包括堆疊成員設(shè)備、測試用例庫、日志管理模塊、系統(tǒng)任務(wù)調(diào)度模塊、系統(tǒng)任務(wù)執(zhí)行模塊、系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊和系統(tǒng)任務(wù)控制模塊,其中所述堆疊成員設(shè)備,與所述相連日志管理模塊、系統(tǒng)任務(wù)執(zhí)行模塊和系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊分別相連,是堆疊系統(tǒng)內(nèi)單臺成員設(shè)備,多臺此設(shè)備組成堆疊系統(tǒng);所述測試用例庫,與所述系統(tǒng)任務(wù)調(diào)度模塊相連,是測試用例的集合,通過增加或者刪減所述測試用例來滿足所需的測試要求;所述日志管理模塊,與所述堆疊成員設(shè)備相連,用來記錄系統(tǒng)運(yùn)行的事件和狀態(tài),是整個系統(tǒng)的輸出模塊;所述系統(tǒng)任務(wù)調(diào)度模塊,與所述系統(tǒng)任務(wù)控制模塊、系統(tǒng)任務(wù)執(zhí)行模塊和測試用例庫分別相連,用于對測試資源進(jìn)行協(xié)調(diào)分配,測試用例進(jìn)行管理,系統(tǒng)任務(wù)的派發(fā);所述系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊,與所述堆疊成員設(shè)備和系統(tǒng)任務(wù)控制模塊分別相連,用于監(jiān)控被測試設(shè)備任務(wù)的運(yùn)行狀況,定時向所述系統(tǒng)任務(wù)控制模塊反饋各設(shè)備的運(yùn)行狀況;所述系統(tǒng)任務(wù)執(zhí)行模塊,與所述堆疊成員設(shè)備、系統(tǒng)任務(wù)調(diào)度模塊和系統(tǒng)任務(wù)控制模塊分別相連,用于根據(jù)系統(tǒng)任務(wù)調(diào)度模塊的分配,進(jìn)行測試用例執(zhí)行,當(dāng)測試任務(wù)執(zhí)行失敗時,接受所述系統(tǒng)任務(wù)控制模塊的指令,清除任務(wù)失敗設(shè)備的測試用例和相關(guān)的配置;
所述系統(tǒng)任務(wù)控制模塊,與所述系統(tǒng)任務(wù)調(diào)度模塊、系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊和系統(tǒng)任務(wù)執(zhí)行模塊分別相連,用于對整個系統(tǒng)進(jìn)行管理,協(xié)調(diào)上述模塊的相互工作,也是整個系統(tǒng)的輸入模塊。
本發(fā)明所述系統(tǒng),其中,所述系統(tǒng)任務(wù)調(diào)度模塊,在對所述堆疊系統(tǒng)內(nèi)單臺成員設(shè)備測試時,用于進(jìn)行測試用例的調(diào)度管理;在對所述堆疊系統(tǒng)測試時,還用于對測試資源進(jìn)行協(xié)調(diào)分配。
本發(fā)明所述系統(tǒng),其中,對于所述堆疊成員設(shè)備自動測試,所述系統(tǒng)引進(jìn)同步機(jī)制,包括測試資源的獨(dú)享,資源調(diào)度的合理,測試結(jié)果的傳遞性,測試用例批量分配的合理性,系統(tǒng)通知狀態(tài)機(jī),測試用例執(zhí)行優(yōu)先級。
進(jìn)一步地,所述測試資源的獨(dú)享,即在已有測試用例運(yùn)行的情況下,系統(tǒng)不應(yīng)該再下發(fā)新的測試任務(wù);所述資源調(diào)度的合理,有限制的使用測試資源,即一個測試資源不能總被調(diào)度,而其他的測試資源總不能得到更多的調(diào)用;所述測試結(jié)果的傳遞性,即測試用例的交互性,當(dāng)一個測試用例的輸入依賴于另一個測試用例結(jié)果的輸出,需要將測試用例進(jìn)行合理的排隊(duì);所述測試用例批量分配的合理性,即有效的分配測試用例到指定的測試資源,相關(guān)的用例批量的分配,提高執(zhí)行效率;所述系統(tǒng)通知狀態(tài)機(jī),用來通知測試用例的執(zhí)行狀態(tài),檢測測試用例的執(zhí)行進(jìn)度;所述測試用例執(zhí)行優(yōu)先級,系統(tǒng)可以設(shè)置測試用例的優(yōu)先級,對于高優(yōu)先級的測試用例,最先保證資源的分配與執(zhí)行,并且支持資源的搶占式管理,即測試用例對測試資源進(jìn)行競爭時,高優(yōu)先級的測試用例先分配到測試資源。
本發(fā)明所述系統(tǒng),其中,在所述測試系統(tǒng)內(nèi)部,采用輪詢的機(jī)制來保證測試資源得到充分的利用。
本發(fā)明所述系統(tǒng),其中,所述測試系統(tǒng)設(shè)定一個時間片,來監(jiān)控用例的執(zhí)行,防止錯誤的發(fā)生。
本發(fā)明所述系統(tǒng),其中,所述測試資源包括測試用例又包括測試設(shè)備。
本發(fā)明所述系統(tǒng),其中,所述系統(tǒng)任務(wù)調(diào)度模塊的調(diào)度策略是測試者在測試前期編輯測試用例時候預(yù)先設(shè)定的,或者是所述系統(tǒng)任務(wù)調(diào)度模塊內(nèi)置的根據(jù)測試設(shè)備的數(shù)目進(jìn)行自動調(diào)整的策略。
本發(fā)明所述系統(tǒng),其中,所述系統(tǒng)任務(wù)控制模塊支持所述堆疊系統(tǒng)內(nèi)單臺成員設(shè)備和堆疊系統(tǒng)的工作模式切換。
本發(fā)明還提供一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試方法,對于堆疊系統(tǒng)中單獨(dú)成員設(shè)備的測試,包括如下步驟(1)向測試系統(tǒng)輸入所有成員設(shè)備的規(guī)模和拓?fù)浣Y(jié)構(gòu),然后所述系統(tǒng)任務(wù)調(diào)度模塊進(jìn)行所述測試用例與測試資源的分配,并根據(jù)所述測試用例所需的條件向系統(tǒng)任務(wù)執(zhí)行模塊下發(fā)符合測試條件的不同的測試用例;(2)所述系統(tǒng)任務(wù)執(zhí)行模塊執(zhí)行各個成員設(shè)備的測試用例;(3)在所述測試用例執(zhí)行的過程中,系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊輪詢偵聽各個成員設(shè)備的執(zhí)行狀態(tài),當(dāng)出現(xiàn)成員設(shè)備測試任務(wù)執(zhí)行失敗,則所述系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊會向系統(tǒng)任務(wù)控制模塊發(fā)送任務(wù)執(zhí)行失敗的消息,所述系統(tǒng)任務(wù)控制模塊向出現(xiàn)執(zhí)行狀態(tài)異常的成員設(shè)備發(fā)送清除任務(wù)的操作,并且向系統(tǒng)任務(wù)調(diào)度模塊重新申請測試用例,并將測試用例發(fā)送到已經(jīng)清除成功的成員設(shè)備,繼續(xù)執(zhí)行新的測試用例;(4)當(dāng)一個成員設(shè)備執(zhí)行完測試任務(wù)后,系統(tǒng)任務(wù)狀態(tài)監(jiān)控模塊會主動向系統(tǒng)任務(wù)控制模塊發(fā)送資源釋放的消息,此時,系統(tǒng)任務(wù)控制模塊判斷是否是最后一個測試用例,如果不是,則系統(tǒng)任務(wù)控制模塊向系統(tǒng)任務(wù)調(diào)度模塊申請新的測試用例并執(zhí)行,直到所有測試用例執(zhí)行完畢。
上述所述方法,其中,步驟(3)和(4)中,所述系統(tǒng)任務(wù)控制模塊控制所述成員設(shè)備將測試用例的執(zhí)行結(jié)果發(fā)送到日志管理模塊中。
上述所述方法,其中,步驟(1)中,通過系統(tǒng)任務(wù)控制模塊輸入所述配置信息。
上述所述方法,其中,步驟(1)中,在所述系統(tǒng)任務(wù)調(diào)度模塊進(jìn)行所述測試用例與測試資源的分配前,所述系統(tǒng)任務(wù)調(diào)度模塊根據(jù)所述成員設(shè)備的規(guī)模進(jìn)行測試用例的篩選。
本發(fā)明還提供一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試方法,對于堆疊系統(tǒng)的測試,包括如下步驟(a)向測試系統(tǒng)輸入整個堆疊系統(tǒng)的規(guī)模,以及拓?fù)浣Y(jié)構(gòu),然后所述系統(tǒng)任務(wù)控制模塊指定一臺設(shè)備為整個系統(tǒng)的主設(shè)備;(b)所述系統(tǒng)任務(wù)控制模塊向系統(tǒng)任務(wù)調(diào)度模塊發(fā)送測試資源分配的指令,系統(tǒng)任務(wù)調(diào)度模塊檢索測試用例庫,選擇與系統(tǒng)資源符合的測試用例,并鎖死該測試用例,所述系統(tǒng)任務(wù)調(diào)度模塊向篩選的所述單個測試用例進(jìn)行測試資源的調(diào)度分配;(c)對所述單個測試用例,當(dāng)該測試用例在主設(shè)備內(nèi)部運(yùn)行成功后,將通過系統(tǒng)任務(wù)狀態(tài)監(jiān)控模塊向系統(tǒng)任務(wù)控制模塊發(fā)送運(yùn)行成功的消息,此時系統(tǒng)任務(wù)控制模塊向系統(tǒng)任務(wù)調(diào)度模塊申請新的測試資源,系統(tǒng)任務(wù)調(diào)度模塊根據(jù)資源使用狀況將成員設(shè)備之間的資源占用,并發(fā)送同一個測試用例進(jìn)行測試,以此類推,直到將該測試用例在主設(shè)備內(nèi)部,成員設(shè)備與主設(shè)備之間以及成員設(shè)備之間均執(zhí)行一遍;(d)此時系統(tǒng)任務(wù)控制模塊通知系統(tǒng)任務(wù)調(diào)度模塊釋放所有的測試資源和該測試用例,并在測試用例庫中檢索下一用例,直到所有測試用例在所有測試資源上執(zhí)行完畢。
上述所述方法,其中,步驟(c)和(d)中,所述系統(tǒng)任務(wù)控制模塊控制所述成員設(shè)備將測試用例的執(zhí)行結(jié)果發(fā)送到日志管理模塊中。
上述所述方法,其中,步驟(a)中,通過系統(tǒng)任務(wù)控制模塊輸入所述配置信息。
上述所述方法,其中,步驟(a)中,所述系統(tǒng)任務(wù)控制模塊指定一臺設(shè)備為整個系統(tǒng)的主設(shè)備包括系統(tǒng)任務(wù)控制模塊根據(jù)堆疊系統(tǒng)自動分配被測試設(shè)備的序列號,系統(tǒng)指定一臺設(shè)備為主設(shè)備,并且向該設(shè)備發(fā)送主設(shè)備的相關(guān)配置,待整個堆疊系統(tǒng)穩(wěn)定后,該成員設(shè)備為整個系統(tǒng)的主設(shè)備。
本發(fā)明所述方案對單臺成員設(shè)備以及整個堆疊系統(tǒng)能夠?qū)崿F(xiàn)重復(fù)并且同時運(yùn)行測試用例,提高測試的效率,覆蓋測試的全面性。
圖1為本發(fā)明實(shí)施例系統(tǒng)框架結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例對于堆疊系統(tǒng)中單獨(dú)成員設(shè)備的測試流程圖;
圖3為本發(fā)明實(shí)施例對于堆疊系統(tǒng)的測試流程圖。
具體實(shí)施例方式
以下結(jié)合附圖和具體實(shí)施方式
對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)描述。
如圖1所示,本發(fā)明實(shí)施例系統(tǒng)框架結(jié)構(gòu)示意圖,包括堆疊成員設(shè)備、測試用例庫、日志管理模塊、系統(tǒng)任務(wù)調(diào)度模塊、系統(tǒng)任務(wù)執(zhí)行模塊、系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊和系統(tǒng)任務(wù)控制模塊,其中所述堆疊成員設(shè)備,與所述相連日志管理模塊、系統(tǒng)任務(wù)執(zhí)行模塊和系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊分別相連,是堆疊系統(tǒng)內(nèi)單臺成員設(shè)備,多臺此設(shè)備組成堆疊系統(tǒng);所述測試用例庫,與所述系統(tǒng)任務(wù)調(diào)度模塊相連,是測試用例的集合,通過增加或者刪減所述測試用例來滿足所需的測試要求;所述日志管理模塊,與所述堆疊成員設(shè)備相連,用來記錄系統(tǒng)運(yùn)行的事件和狀態(tài),是整個系統(tǒng)的輸出模塊;所述系統(tǒng)任務(wù)調(diào)度模塊,與所述系統(tǒng)任務(wù)控制模塊、系統(tǒng)任務(wù)執(zhí)行模塊和測試用例庫分別相連,用于對測試資源進(jìn)行協(xié)調(diào)分配,測試用例進(jìn)行管理,系統(tǒng)任務(wù)的派發(fā);所述系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊,與所述堆疊成員設(shè)備和系統(tǒng)任務(wù)控制模塊分別相連,用于監(jiān)控被測試設(shè)備任務(wù)的運(yùn)行狀況,定時向所述系統(tǒng)任務(wù)控制模塊反饋各設(shè)備的運(yùn)行狀況;所述系統(tǒng)任務(wù)執(zhí)行模塊,與所述堆疊成員設(shè)備、系統(tǒng)任務(wù)調(diào)度模塊和系統(tǒng)任務(wù)控制模塊分別相連,用于根據(jù)系統(tǒng)任務(wù)調(diào)度模塊的分配,進(jìn)行測試用例執(zhí)行,當(dāng)測試任務(wù)執(zhí)行失敗時,接受所述系統(tǒng)任務(wù)控制模塊的指令,清除任務(wù)失敗設(shè)備的測試用例和相關(guān)的配置;所述系統(tǒng)任務(wù)控制模塊,與所述系統(tǒng)任務(wù)調(diào)度模塊、系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊和系統(tǒng)任務(wù)執(zhí)行模塊分別相連,用于對整個系統(tǒng)進(jìn)行管理,協(xié)調(diào)上述模塊的相互工作,也是整個系統(tǒng)的輸入模塊。
對于本發(fā)明的自動化測試,系統(tǒng)首先需要引進(jìn)同步機(jī)制,包括
1)測試資源的獨(dú)享,即在已有測試用例運(yùn)行的情況下,系統(tǒng)不應(yīng)該再下發(fā)新的測試任務(wù);2)資源調(diào)度的合理,有限制的使用測試資源,即一個測試資源不能總被調(diào)度,而其他的測試資源總不能得到更多的調(diào)用;3)測試結(jié)果的傳遞性,即測試用例的交互性,當(dāng)一個測試用例的輸入依賴于另一個測試用例結(jié)果的輸出,需要將測試用例進(jìn)行合理的排隊(duì);4)測試用例批量分配的合理性,即有效的分配測試用例到指定的測試資源,相關(guān)的用例批量的分配,提高執(zhí)行效率;5)系統(tǒng)通知狀態(tài)機(jī),用來通知測試用例的執(zhí)行狀態(tài),檢測測試用例的執(zhí)行進(jìn)度;6)測試用例執(zhí)行優(yōu)先級,系統(tǒng)可以設(shè)置測試用例的優(yōu)先級,對于高優(yōu)先級的測試用例,最先保證資源的分配與執(zhí)行,并且支持資源的搶占式管理,即測試用例對測試資源進(jìn)行競爭時,高優(yōu)先級的測試用例先分配到測試資源。
此外,在測試系統(tǒng)內(nèi)部,采用輪詢的機(jī)制來保證測試資源能夠得到充分的利用,有些測試用例在運(yùn)行的過程中可能會出現(xiàn)沒有響應(yīng)或者死循環(huán)的情況,這時需要系統(tǒng)設(shè)定一個時間片,來監(jiān)控用例的執(zhí)行,防止錯誤的發(fā)生。
如圖2所示,本發(fā)明實(shí)施例對于堆疊系統(tǒng)中單獨(dú)成員設(shè)備的測試流程,包括如下步驟步驟201,在堆疊系統(tǒng)沒有形成前,可以認(rèn)為堆疊設(shè)備的各成員設(shè)備是獨(dú)立的個體,首先,向測試系統(tǒng)輸入所有成員設(shè)備的規(guī)模和拓?fù)浣Y(jié)構(gòu),一般通過系統(tǒng)任務(wù)控制模塊輸入相關(guān)的配置信息;步驟202,系統(tǒng)任務(wù)調(diào)度模塊根據(jù)所述成員設(shè)備的規(guī)模進(jìn)行測試用例的篩選;步驟203,所述系統(tǒng)任務(wù)調(diào)度模塊進(jìn)行所述測試用例與測試資源的分配;步驟204,由于在形成堆疊系統(tǒng)前,各個成員設(shè)備的地位是對等的,各個成員設(shè)備是相同并且獨(dú)立的個體,所以系統(tǒng)任務(wù)調(diào)度模塊根據(jù)所述測試用例所需的條件向系統(tǒng)任務(wù)執(zhí)行模塊下發(fā)符合測試條件的不同的測試用例;步驟205,所述系統(tǒng)任務(wù)執(zhí)行模塊執(zhí)行各個成員設(shè)備的測試用例(1~N);步驟206,在所述測試用例執(zhí)行的過程中,系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊輪詢偵聽各個成員設(shè)備的執(zhí)行狀態(tài),并把結(jié)果反饋給系統(tǒng)任務(wù)控制模塊,判斷是否執(zhí)行完成;如果沒有完成,即出現(xiàn)成員設(shè)備測試任務(wù)執(zhí)行失敗時,所述系統(tǒng)任務(wù)控制模塊向出現(xiàn)執(zhí)行狀態(tài)異常的成員設(shè)備發(fā)送清除任務(wù)的操作,并且向系統(tǒng)任務(wù)調(diào)度模塊重新申請測試用例,同時所述系統(tǒng)任務(wù)控制模塊控制所述成員設(shè)備將測試失敗的結(jié)果記錄發(fā)送到日志管理模塊中,轉(zhuǎn)步驟203;如果執(zhí)行完成,則轉(zhuǎn)步驟207;步驟207,當(dāng)一個成員設(shè)備執(zhí)行完測試任務(wù)后,系統(tǒng)任務(wù)狀態(tài)監(jiān)控模塊會主動向系統(tǒng)任務(wù)控制模塊發(fā)送資源釋放的消息;步驟208,系統(tǒng)任務(wù)控制模塊判斷是否是最后一個測試用例;如果不是,則系統(tǒng)任務(wù)控制模塊向系統(tǒng)任務(wù)調(diào)度模塊申請新的測試用例并且同時所述系統(tǒng)任務(wù)控制模塊控制所述成員設(shè)備向日志管理模塊發(fā)送執(zhí)行結(jié)果,轉(zhuǎn)步驟203;如果是,則轉(zhuǎn)步驟209;步驟209,所有測試用例執(zhí)行完畢,測試結(jié)束。
如圖3所示,本發(fā)明實(shí)施例對于堆疊系統(tǒng)的測試流程,包括如下步驟步驟301,向測試系統(tǒng)輸入整個堆疊系統(tǒng)的規(guī)模,以及拓?fù)浣Y(jié)構(gòu),一般通過系統(tǒng)任務(wù)控制模塊輸入相關(guān)的配置信息;步驟302,系統(tǒng)任務(wù)控制模塊根據(jù)堆疊系統(tǒng)自動分配被測試設(shè)備的序列號,系統(tǒng)指定一臺設(shè)備為主設(shè)備,并且向該設(shè)備發(fā)送主設(shè)備的相關(guān)配置,待整個堆疊系統(tǒng)穩(wěn)定后,該成員設(shè)備為整個系統(tǒng)的主設(shè)備;步驟303,所述系統(tǒng)任務(wù)控制模塊向系統(tǒng)任務(wù)調(diào)度模塊發(fā)送測試資源分配的指令,系統(tǒng)任務(wù)調(diào)度模塊檢索測試用例庫,選擇與系統(tǒng)資源符合的測試用例,并鎖死該測試用例;步驟304,所述系統(tǒng)任務(wù)調(diào)度模塊向篩選的所述單個測試用例進(jìn)行測試資源的調(diào)度分配,即將測試用例完全分布在不同的設(shè)備之上,將主設(shè)備與成員設(shè)備之間,各成員設(shè)備與成員設(shè)備之間以及成員設(shè)備內(nèi)部三種情況全部覆蓋,已保證測試的全面性;步驟305,對所述單個測試用例,當(dāng)該測試用例在主設(shè)備內(nèi)部運(yùn)行成功后,將通過系統(tǒng)任務(wù)狀態(tài)監(jiān)控模塊向系統(tǒng)任務(wù)控制模塊發(fā)送運(yùn)行成功的消息,同時所述系統(tǒng)任務(wù)控制模塊控制所述成員設(shè)備把運(yùn)行成功的消息發(fā)送到日志管理模塊中,此時系統(tǒng)任務(wù)控制模塊向系統(tǒng)任務(wù)調(diào)度模塊申請新的測試資源,系統(tǒng)任務(wù)調(diào)度模塊根據(jù)資源使用狀況將成員設(shè)備之間的資源占用,并發(fā)送同一個測試用例進(jìn)行測試,以此類推,然后判斷是否在主設(shè)備與成員設(shè)備之間,各成員設(shè)備與成員設(shè)備之間以及成員設(shè)備內(nèi)部均執(zhí)行完,如果執(zhí)行完,則轉(zhuǎn)步驟306;如果沒有執(zhí)行完,則轉(zhuǎn)步驟303;步驟306,此時系統(tǒng)任務(wù)控制模塊通知系統(tǒng)任務(wù)調(diào)度模塊釋放所有的測試資源和該測試用例,判斷是否所有測試用例在所有測試資源上執(zhí)行完畢;如果是,則轉(zhuǎn)步驟307;如果否,則轉(zhuǎn)步驟303;步驟307,測試結(jié)束。
無論是基于整個堆疊系統(tǒng)的測試還是堆疊系統(tǒng)內(nèi)單臺成員設(shè)備的測試,系統(tǒng)任務(wù)調(diào)度模塊對于測試資源的調(diào)度都是十分關(guān)鍵的,這里所指的資源是宏觀的資源,既包括測試用例又包括測試設(shè)備兩個方面,協(xié)調(diào)好這兩方面的資源可以大大提高自動化測試執(zhí)行的效率。測試任務(wù)的調(diào)度策略可以是測試者在測試前期編輯測試用例時候預(yù)先設(shè)定,即用戶可以隨意編排測試用例的執(zhí)行順序,以及測試用例的選擇,也可以是系統(tǒng)任務(wù)調(diào)度模塊內(nèi)置的根據(jù)測試設(shè)備的數(shù)目進(jìn)行自動調(diào)整的策略。
系統(tǒng)任務(wù)控制模塊支持堆疊系統(tǒng)內(nèi)單臺成員設(shè)備和堆疊系統(tǒng)的工作模式切換,測試者既可以選擇系統(tǒng)只工作于堆疊系統(tǒng)內(nèi)單臺成員設(shè)備測試模式,也可以只選擇系統(tǒng)工作在堆疊系統(tǒng)模式,還可以選擇兩種模式都支持,當(dāng)堆疊系統(tǒng)內(nèi)單臺成員設(shè)備模式測試完成后,系統(tǒng)自動切換到堆疊系統(tǒng)模式。
本發(fā)明所述方案,并不僅僅限于說明書和實(shí)施方式中所列運(yùn)用。對本發(fā)明技術(shù)所屬領(lǐng)域的普通技術(shù)人員來說,可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,而所有這些相應(yīng)的改變和變形都屬于本發(fā)明權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試系統(tǒng),其特征在于,包括堆疊成員設(shè)備、測試用例庫、日志管理模塊、系統(tǒng)任務(wù)調(diào)度模塊、系統(tǒng)任務(wù)執(zhí)行模塊、系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊和系統(tǒng)任務(wù)控制模塊,其中所述堆疊成員設(shè)備,與所述相連日志管理模塊、系統(tǒng)任務(wù)執(zhí)行模塊和系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊分別相連,是堆疊系統(tǒng)內(nèi)單臺成員設(shè)備,多臺此設(shè)備組成堆疊系統(tǒng);所述測試用例庫,與所述系統(tǒng)任務(wù)調(diào)度模塊相連,是測試用例的集合,通過增加或者刪減所述測試用例來滿足所需的測試要求;所述日志管理模塊,與所述堆疊成員設(shè)備相連,用來記錄系統(tǒng)運(yùn)行的事件和狀態(tài),是整個系統(tǒng)的輸出模塊;所述系統(tǒng)任務(wù)調(diào)度模塊,與所述系統(tǒng)任務(wù)控制模塊、系統(tǒng)任務(wù)執(zhí)行模塊和測試用例庫分別相連,用于對測試資源進(jìn)行協(xié)調(diào)分配,測試用例進(jìn)行管理,系統(tǒng)任務(wù)的派發(fā);所述系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊,與所述堆疊成員設(shè)備和系統(tǒng)任務(wù)控制模塊分別相連,用于監(jiān)控被測試設(shè)備任務(wù)的運(yùn)行狀況,定時向所述系統(tǒng)任務(wù)控制模塊反饋各設(shè)備的運(yùn)行狀況;所述系統(tǒng)任務(wù)執(zhí)行模塊,與所述堆疊成員設(shè)備、系統(tǒng)任務(wù)調(diào)度模塊和系統(tǒng)任務(wù)控制模塊分別相連,用于根據(jù)系統(tǒng)任務(wù)調(diào)度模塊的分配,進(jìn)行測試用例執(zhí)行,當(dāng)測試任務(wù)執(zhí)行失敗時,接受所述系統(tǒng)任務(wù)控制模塊的指令,清除任務(wù)失敗設(shè)備的測試用例和相關(guān)的配置;所述系統(tǒng)任務(wù)控制模塊,與所述系統(tǒng)任務(wù)調(diào)度模塊、系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊和系統(tǒng)任務(wù)執(zhí)行模塊分別相連,用于對整個系統(tǒng)進(jìn)行管理,協(xié)調(diào)上述模塊的相互工作,也是整個系統(tǒng)的輸入模塊。
2.如權(quán)利要求1所述系統(tǒng),其特征在于,所述系統(tǒng)任務(wù)調(diào)度模塊,在對所述堆疊系統(tǒng)內(nèi)單臺成員設(shè)備測試時,用于進(jìn)行測試用例的調(diào)度管理;在對所述堆疊系統(tǒng)測試時,還用于對測試資源進(jìn)行協(xié)調(diào)分配。
3.如權(quán)利要求1所述系統(tǒng),其特征在于,對于所述堆疊成員設(shè)備自動測試,所述系統(tǒng)引進(jìn)同步機(jī)制,包括測試資源的獨(dú)享,資源調(diào)度的合理,測試結(jié)果的傳遞性,測試用例批量分配的合理性,系統(tǒng)通知狀態(tài)機(jī),測試用例執(zhí)行優(yōu)先級。
4.如權(quán)利要求3所述系統(tǒng),其特征在于,所述測試資源的獨(dú)享,即在已有測試用例運(yùn)行的情況下,系統(tǒng)不應(yīng)該再下發(fā)新的測試任務(wù);所述資源調(diào)度的合理,有限制的使用測試資源,即一個測試資源不能總被調(diào)度,而其他的測試資源總不能得到更多的調(diào)用;所述測試結(jié)果的傳遞性,即測試用例的交互性,當(dāng)一個測試用例的輸入依賴于另一個測試用例結(jié)果的輸出,需要將測試用例進(jìn)行合理的排隊(duì);所述測試用例批量分配的合理性,即有效的分配測試用例到指定的測試資源,相關(guān)的用例批量的分配,提高執(zhí)行效率;所述系統(tǒng)通知狀態(tài)機(jī),用來通知測試用例的執(zhí)行狀態(tài),檢測測試用例的執(zhí)行進(jìn)度;所述測試用例執(zhí)行優(yōu)先級,系統(tǒng)可以設(shè)置測試用例的優(yōu)先級,對于高優(yōu)先級的測試用例,最先保證資源的分配與執(zhí)行,并且支持資源的搶占式管理,即測試用例對測試資源進(jìn)行競爭時,高優(yōu)先級的測試用例先分配到測試資源。
5.如權(quán)利要求1所述系統(tǒng),其特征在于,在所述測試系統(tǒng)內(nèi)部,采用輪詢的機(jī)制來保證測試資源得到充分的利用。
6.如權(quán)利要求1所述系統(tǒng),其特征在于,所述測試系統(tǒng)設(shè)定一個時間片,來監(jiān)控用例的執(zhí)行,防止錯誤的發(fā)生。
7.如權(quán)利要求1所述系統(tǒng),其特征在于,所述測試資源包括測試用例又包括測試設(shè)備。
8.如權(quán)利要求1所述系統(tǒng),其特征在于,所述系統(tǒng)任務(wù)調(diào)度模塊的調(diào)度策略是測試者在測試前期編輯測試用例時候預(yù)先設(shè)定的,或者是所述系統(tǒng)任務(wù)調(diào)度模塊內(nèi)置的根據(jù)測試設(shè)備的數(shù)目進(jìn)行自動調(diào)整的策略。
9.如權(quán)利要求1所述系統(tǒng),其特征在于,所述系統(tǒng)任務(wù)控制模塊支持所述堆疊系統(tǒng)內(nèi)單臺成員設(shè)備和堆疊系統(tǒng)的工作模式切換。
10.一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試方法,其特征在于,對于堆疊系統(tǒng)中單獨(dú)成員設(shè)備的測試,包括如下步驟(1)向測試系統(tǒng)輸入所有成員設(shè)備的規(guī)模和拓?fù)浣Y(jié)構(gòu),然后所述系統(tǒng)任務(wù)調(diào)度模塊進(jìn)行所述測試用例與測試資源的分配,并根據(jù)所述測試用例所需的條件向系統(tǒng)任務(wù)執(zhí)行模塊下發(fā)符合測試條件的不同的測試用例;(2)所述系統(tǒng)任務(wù)執(zhí)行模塊執(zhí)行各個成員設(shè)備的測試用例;(3)在所述測試用例執(zhí)行的過程中,系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊輪詢偵聽各個成員設(shè)備的執(zhí)行狀態(tài),當(dāng)出現(xiàn)成員設(shè)備測試任務(wù)執(zhí)行失敗,則所述系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊會向系統(tǒng)任務(wù)控制模塊發(fā)送任務(wù)執(zhí)行失敗的消息,所述系統(tǒng)任務(wù)控制模塊向出現(xiàn)執(zhí)行狀態(tài)異常的成員設(shè)備發(fā)送清除任務(wù)的操作,并且向系統(tǒng)任務(wù)調(diào)度模塊重新申請測試用例,并將測試用例發(fā)送到已經(jīng)清除成功的成員設(shè)備,繼續(xù)執(zhí)行新的測試用例;(4)當(dāng)一個成員設(shè)備執(zhí)行完測試任務(wù)后,系統(tǒng)任務(wù)狀態(tài)監(jiān)控模塊會主動向系統(tǒng)任務(wù)控制模塊發(fā)送資源釋放的消息,此時,系統(tǒng)任務(wù)控制模塊判斷是否是最后一個測試用例,如果不是,則系統(tǒng)任務(wù)控制模塊向系統(tǒng)任務(wù)調(diào)度模塊申請新的測試用例并執(zhí)行,直到所有測試用例執(zhí)行完畢。
11.如權(quán)利要求10所述方法,其特征在于,步驟(3)和(4)中,所述系統(tǒng)任務(wù)控制模塊控制所述成員設(shè)備將測試用例的執(zhí)行結(jié)果發(fā)送到日志管理模塊中。
12.如權(quán)利要求10所述方法,其特征在于,步驟(1)中,通過系統(tǒng)任務(wù)控制模塊輸入所述配置信息。
13.如權(quán)利要求10所述方法,其特征在于,步驟(1)中,在所述系統(tǒng)任務(wù)調(diào)度模塊進(jìn)行所述測試用例與測試資源的分配前,所述系統(tǒng)任務(wù)調(diào)度模塊根據(jù)所述成員設(shè)備的規(guī)模進(jìn)行測試用例的篩選。
14.一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試方法,其特征在于,對于堆疊系統(tǒng)的測試,包括如下步驟(a)向測試系統(tǒng)輸入整個堆疊系統(tǒng)的規(guī)模,以及拓?fù)浣Y(jié)構(gòu),然后所述系統(tǒng)任務(wù)控制模塊指定一臺設(shè)備為整個系統(tǒng)的主設(shè)備;(b)所述系統(tǒng)任務(wù)控制模塊向系統(tǒng)任務(wù)調(diào)度模塊發(fā)送測試資源分配的指令,系統(tǒng)任務(wù)調(diào)度模塊檢索測試用例庫,選擇與系統(tǒng)資源符合的測試用例,并鎖死該測試用例,所述系統(tǒng)任務(wù)調(diào)度模塊向篩選的所述單個測試用例進(jìn)行測試資源的調(diào)度分配;(c)對所述單個測試用例,當(dāng)該測試用例在主設(shè)備內(nèi)部運(yùn)行成功后,將通過系統(tǒng)任務(wù)狀態(tài)監(jiān)控模塊向系統(tǒng)任務(wù)控制模塊發(fā)送運(yùn)行成功的消息,此時系統(tǒng)任務(wù)控制模塊向系統(tǒng)任務(wù)調(diào)度模塊申請新的測試資源,系統(tǒng)任務(wù)調(diào)度模塊根據(jù)資源使用狀況將成員設(shè)備之間的資源占用,并發(fā)送同一個測試用例進(jìn)行測試,以此類推,直到將該測試用例在主設(shè)備內(nèi)部,成員設(shè)備與主設(shè)備之間以及成員設(shè)備之間均執(zhí)行一遍;(d)此時系統(tǒng)任務(wù)控制模塊通知系統(tǒng)任務(wù)調(diào)度模塊釋放所有的測試資源和該測試用例,并在測試用例庫中檢索下一用例,直到所有測試用例在所有測試資源上執(zhí)行完畢。
15.如權(quán)利要求14所述方法,其特征在于,步驟(c)和(d)中,所述系統(tǒng)任務(wù)控制模塊控制所述成員設(shè)備將測試用例的執(zhí)行結(jié)果發(fā)送到日志管理模塊中。
16.如權(quán)利要求14所述方法,其特征在于,步驟(a)中,通過系統(tǒng)任務(wù)控制模塊輸入所述配置信息。
17.如權(quán)利要求14所述方法,其特征在于,步驟(a)中,所述系統(tǒng)任務(wù)控制模塊指定一臺設(shè)備為整個系統(tǒng)的主設(shè)備包括系統(tǒng)任務(wù)控制模塊根據(jù)堆疊系統(tǒng)自動分配被測試設(shè)備的序列號,系統(tǒng)指定一臺設(shè)備為主設(shè)備,并且向該設(shè)備發(fā)送主設(shè)備的相關(guān)配置,待整個堆疊系統(tǒng)穩(wěn)定后,該成員設(shè)備為整個系統(tǒng)的主設(shè)備。
全文摘要
本發(fā)明公開了一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試系統(tǒng),包括堆疊成員設(shè)備、測試用例庫、日志管理模塊、系統(tǒng)任務(wù)調(diào)度模塊、系統(tǒng)任務(wù)執(zhí)行模塊、系統(tǒng)任務(wù)執(zhí)行狀態(tài)監(jiān)控模塊和系統(tǒng)任務(wù)控制模塊。本發(fā)明還公開了一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試方法,應(yīng)用于堆疊系統(tǒng)中單獨(dú)成員設(shè)備的測試。本發(fā)還公開了一種基于網(wǎng)絡(luò)堆疊系統(tǒng)的自動測試方法,應(yīng)用于堆疊系統(tǒng)的測試。本發(fā)明所述方案對單臺成員設(shè)備以及整個堆疊系統(tǒng)能夠?qū)崿F(xiàn)重復(fù)并且同時運(yùn)行測試用例,提高測試的效率,覆蓋測試的全面性。
文檔編號H04L12/56GK101094120SQ20071012298
公開日2007年12月26日 申請日期2007年7月4日 優(yōu)先權(quán)日2007年7月4日
發(fā)明者李新雙 申請人:中興通訊股份有限公司