本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種實(shí)現(xiàn)組件式測試系統(tǒng)的方法和組件式測試系統(tǒng)。
背景技術(shù):
開發(fā)人員在對(duì)軟件、系統(tǒng)等進(jìn)行功能開發(fā)和建設(shè)時(shí),為確保功能的穩(wěn)定性和可用性,需要對(duì)組件接口、web服務(wù)接口等接口進(jìn)行測試,而現(xiàn)有技術(shù)中,測試需要用到的測試工具和測試系統(tǒng)往往是一體化的設(shè)計(jì),關(guān)聯(lián)比較緊密,這樣雖然測試系統(tǒng)穩(wěn)定性較好,但無法應(yīng)對(duì)一些問題,如在需要對(duì)新功能進(jìn)行測試時(shí),如果現(xiàn)有的測試工具和測試平臺(tái)系統(tǒng)對(duì)其進(jìn)行測試,則需要重新開發(fā)新的測試工具和測試系統(tǒng)來測試該新功能,這樣不僅對(duì)資源和時(shí)間造成了浪費(fèi),測試系統(tǒng)也不具有普遍適用性。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的實(shí)現(xiàn)組件式測試系統(tǒng)的方法和組件式測試系統(tǒng)。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種實(shí)現(xiàn)組件式測試系統(tǒng)的方法,包括:在基礎(chǔ)模塊中定義指定接口類;在每個(gè)組件中定義實(shí)現(xiàn)所述指定接口類的子類;所述基礎(chǔ)模塊根據(jù)所述指定接口類進(jìn)行掃描,發(fā)現(xiàn)實(shí)現(xiàn)所述指定接口類的子類;所述基礎(chǔ)模塊加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件。
可選地,所述基礎(chǔ)模塊根據(jù)所述指定接口類進(jìn)行掃描包括:所述基礎(chǔ)模塊隨測試系統(tǒng)的啟動(dòng)而啟動(dòng);所述基礎(chǔ)模塊在啟動(dòng)后根據(jù)所述指定接口類掃描指定的目錄。
可選地,所述基礎(chǔ)模塊加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件包括:所述基礎(chǔ)模塊將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件全部進(jìn)行加載;或者,所述基礎(chǔ)模塊根據(jù)測試 系統(tǒng)的需求選擇時(shí)機(jī)加載所發(fā)現(xiàn)的全部或部分子類對(duì)應(yīng)的組件。
可選地,所述在每個(gè)組件中定義實(shí)現(xiàn)所述指定接口類的子類包括:在每個(gè)組件中配置獨(dú)立的文件,在該獨(dú)立的文件中定義實(shí)現(xiàn)所述指定接口類的子類。
可選地,該方法進(jìn)一步包括:所述基礎(chǔ)模塊根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)釋放所加載的組件。
可選地,所述基礎(chǔ)模塊加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件包括:所述基礎(chǔ)模塊將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件注冊到內(nèi)存中的指定隊(duì)列中;所述釋放所加載的組件包括:從內(nèi)存中的指定隊(duì)列中移除相應(yīng)的組件。
可選地,該方法進(jìn)一步包括:在每個(gè)組件中定義一個(gè)或多個(gè)入口方法,每個(gè)入口方法對(duì)應(yīng)該組件中的一個(gè)執(zhí)行邏輯;所述基礎(chǔ)模塊根據(jù)所加載的組件中的入口方法調(diào)用該組件中的相應(yīng)執(zhí)行邏輯。
可選地,該方法進(jìn)一步包括:所述基礎(chǔ)模塊根據(jù)所加載的組件中的子類找到該組件中的入口方法;其中,所述子類中描述了查找入口方法的相關(guān)信息,或者所述子類和入口方法定義在同一個(gè)文件。
依據(jù)本發(fā)明的另一方面,提供了一種組件式測試系統(tǒng),包括:基礎(chǔ)模塊和多個(gè)組件,基礎(chǔ)模塊中定義了指定接口類,每個(gè)組件中定義了實(shí)現(xiàn)所述指定接口類的子類;所述基礎(chǔ)模塊,適于根據(jù)所述指定接口類進(jìn)行掃描,發(fā)現(xiàn)實(shí)現(xiàn)所述指定接口類的子類;以及適于加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件。
可選地,所述基礎(chǔ)模塊,適于隨測試系統(tǒng)的啟動(dòng)而啟動(dòng),在啟動(dòng)后根據(jù)所述指定接口類掃描指定的目錄。
可選地,所述基礎(chǔ)模塊,適于將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件全部進(jìn)行加載;或者適于根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)加載所發(fā)現(xiàn)的全部或部分子類對(duì)應(yīng)的組件。
可選地,每個(gè)組件中配置有獨(dú)立的文件,在該獨(dú)立的文件中定義有實(shí)現(xiàn)所述指定接口類的子類。
可選地,所述基礎(chǔ)模塊,進(jìn)一步適于根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)釋放所加載的組件。
可選地,所述基礎(chǔ)模塊,適于將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件注冊到內(nèi)存中 的指定隊(duì)列中;以及適于從內(nèi)存中的指定隊(duì)列中移除相應(yīng)的組件。
可選地,每個(gè)組件中定義有一個(gè)或多個(gè)入口方法,每個(gè)入口方法對(duì)應(yīng)該組件中的一個(gè)執(zhí)行邏輯;所述基礎(chǔ)模塊,適于根據(jù)所加載的組件中的入口方法調(diào)用該組件中的相應(yīng)執(zhí)行邏輯。
可選地,所述基礎(chǔ)模塊,適于根據(jù)所加載的組件中的子類找到該組件中的入口方法;其中,所述子類中描述了查找入口方法的相關(guān)信息,或者所述子類和入口方法定義在同一個(gè)文件。
由上述可知,本發(fā)明的技術(shù)方案,通過在基礎(chǔ)模塊中定義指定接口類,并在各個(gè)組件中定義指定接口類的子類,使得基礎(chǔ)模塊可以根據(jù)指定接口類,通過掃描發(fā)現(xiàn)指定接口類的子類,進(jìn)一步將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件進(jìn)行加載。該技術(shù)方案通過松耦合的設(shè)計(jì)方式,使得基礎(chǔ)模塊與組件間的連接更為靈活,因此也可以隨需求的變化對(duì)組件進(jìn)行添加、修改或刪除,使得測試系統(tǒng)具有普遍適用性,提高了測試能力。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種實(shí)現(xiàn)組件式測試系統(tǒng)的方法的流程圖;
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種組件式測試系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種實(shí)現(xiàn)組件式測試系統(tǒng)的方法的流程圖,如圖1所示,該方法包括:
步驟S110,在基礎(chǔ)模塊中定義指定接口類。其中,基礎(chǔ)模塊可以是一個(gè)具體的模塊,也可以是一些模塊構(gòu)成的模塊組。
步驟S120,在每個(gè)組件中定義實(shí)現(xiàn)指定接口類的子類。其中,子類與組件一一對(duì)應(yīng)。
步驟S130,基礎(chǔ)模塊根據(jù)指定接口類進(jìn)行掃描,發(fā)現(xiàn)實(shí)現(xiàn)指定接口類的子類。
步驟S140,基礎(chǔ)模塊加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件。
可見,圖1所示的方法,通過在基礎(chǔ)模塊中定義指定接口類,并在各個(gè)組件中定義指定接口類的子類,使得基礎(chǔ)模塊可以根據(jù)指定接口類,通過掃描發(fā)現(xiàn)指定接口類的子類,進(jìn)一步將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件進(jìn)行加載。該技術(shù)方案通過松耦合的設(shè)計(jì)方式,使得基礎(chǔ)模塊與組件間的連接更為靈活,因此也可以隨需求的變化對(duì)組件進(jìn)行添加、修改或刪除,使得測試系統(tǒng)具有普遍適用性,提高了測試能力。
在本發(fā)明的一個(gè)實(shí)施例中,圖1所示的方法中,基礎(chǔ)模塊根據(jù)指定接口類進(jìn)行掃描包括:基礎(chǔ)模塊隨測試系統(tǒng)的啟動(dòng)而啟動(dòng);基礎(chǔ)模塊在啟動(dòng)后根據(jù)指定接口類掃描指定的目錄。
在本實(shí)施例中,基礎(chǔ)模塊可以支持測試系統(tǒng)進(jìn)行最基本的啟動(dòng)、界面展示等功能,而具體的測試功能可以由各個(gè)組件進(jìn)行提供?;A(chǔ)模塊還應(yīng)當(dāng)進(jìn)一步具有掃描功能,根據(jù)指定接口類掃描指定目錄,這些指定目錄下應(yīng)當(dāng)存儲(chǔ)有各個(gè)組件的子類。這樣通過掃描指定目錄就可以識(shí)別指定接口類的子類。
在本發(fā)明的一個(gè)實(shí)施例中,圖1所示的方法中,基礎(chǔ)模塊加載所發(fā)現(xiàn)的 子類對(duì)應(yīng)的組件包括:基礎(chǔ)模塊將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件全部進(jìn)行加載;或者,基礎(chǔ)模塊根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)加載所發(fā)現(xiàn)的全部或部分子類對(duì)應(yīng)的組件。
本實(shí)施例提供的兩種組件加載方法各有其優(yōu)點(diǎn):基礎(chǔ)模塊將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件全部進(jìn)行加載,可以一次性完成加載操作,而不需在后續(xù)的測試流程中再進(jìn)行組件的加載,使得測試流程更加連貫;而基礎(chǔ)模塊根據(jù)測試系統(tǒng)的需求選擇組件的加載時(shí)機(jī),可以更有效地利用資源,因?yàn)榻M件的加載需要占用資源,在暫時(shí)不需要用到某些組件時(shí)選擇不對(duì)其進(jìn)行加載可以有效地節(jié)約資源。因此,在具體實(shí)施中,用戶可以根據(jù)實(shí)際需求選擇組件的加載方式,例如還可以將掃描到的一部分組件先進(jìn)行加載,將另一部分組件按測試系統(tǒng)的需求選擇時(shí)機(jī)進(jìn)行加載,等等。
在本發(fā)明的一個(gè)實(shí)施例中,圖1所示的方法中,在每個(gè)組件中定義實(shí)現(xiàn)指定接口類的子類包括:在每個(gè)組件中配置獨(dú)立的文件,在該獨(dú)立的文件中定義實(shí)現(xiàn)指定接口類的子類。
子類可以是一個(gè)單獨(dú)的文件,也可以是一個(gè)單獨(dú)的壓縮包,由于子類與組件是一一對(duì)應(yīng)的,因此需要為每個(gè)組件配置獨(dú)立的文件,在該文件中對(duì)指定接口類的子類進(jìn)行定義。
在本發(fā)明的一個(gè)實(shí)施例中,圖1所示的方法中,該方法進(jìn)一步包括:基礎(chǔ)模塊根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)釋放所加載的組件。
例如,由于每個(gè)組件可以對(duì)應(yīng)一種或幾種測試功能,當(dāng)對(duì)應(yīng)的測試功能完成后該組件的作用已經(jīng)完成,此時(shí)就可以釋放這些完成測試功能的組件。又例如測試系統(tǒng)的基礎(chǔ)模塊將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件全部進(jìn)行加載,而在測試過程中因?yàn)槟承┰虺霈F(xiàn)了測試機(jī)器資源不足,此時(shí)可以先釋放一部分加載的組件以獲得更多資源。
在本發(fā)明的一個(gè)實(shí)施例中,上述方法中,基礎(chǔ)模塊加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件包括:基礎(chǔ)模塊將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件注冊到內(nèi)存中的指定隊(duì)列中;釋放所加載的組件包括:從內(nèi)存中的指定隊(duì)列中移除相應(yīng)的組件。
例如,基礎(chǔ)模塊通過指定接口類掃描發(fā)現(xiàn)的子類對(duì)應(yīng)的組件包括接口測試組件、Web UI(Website User Interface,網(wǎng)絡(luò)產(chǎn)品界面設(shè)計(jì))測試組件、性 能測試組件,又根據(jù)測試需求,按接口測試、Web UI測試、性能測試的順序進(jìn)行具體測試,此時(shí)可以按接口測試組件、Web UI測試組件、性能測試組件的順序?qū)⒔涌跍y試組件、Web UI測試組件、性能測試注冊到內(nèi)存中的指定隊(duì)列中,當(dāng)某個(gè)組件完成相應(yīng)的測試后,從該隊(duì)列中移除該組件。
在本發(fā)明的一個(gè)實(shí)施例中,上述方法進(jìn)一步包括:在每個(gè)組件中定義一個(gè)或多個(gè)入口方法,每個(gè)入口方法對(duì)應(yīng)該組件中的一個(gè)執(zhí)行邏輯;基礎(chǔ)模塊根據(jù)所加載的組件中的入口方法調(diào)用該組件中的相應(yīng)執(zhí)行邏輯。
接口類的子類往往是功能性的,要實(shí)現(xiàn)此功能就需要有相關(guān)的執(zhí)行邏輯。在本實(shí)施例中,每個(gè)組件中定義有一個(gè)或多個(gè)入口方法,每個(gè)入口方法對(duì)應(yīng)該組件中的一個(gè)執(zhí)行邏輯,這樣,基礎(chǔ)模塊就可以通過已加載的組件中的入口方法調(diào)用相應(yīng)執(zhí)行邏輯來實(shí)現(xiàn)相應(yīng)的功能。
具體地,在本發(fā)明的一個(gè)實(shí)施例中,上述方法進(jìn)一步包括:基礎(chǔ)模塊根據(jù)所加載的組件中的子類找到該組件中的入口方法;其中,子類中描述了查找入口方法的相關(guān)信息,或者子類和入口方法定義在同一個(gè)文件。
由于基礎(chǔ)模塊是根據(jù)指定接口類掃描發(fā)現(xiàn)子類,因此可以根據(jù)子類進(jìn)一步找到組件中的入口方法來調(diào)用相關(guān)執(zhí)行邏輯實(shí)現(xiàn)相應(yīng)的功能。
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種組件式測試系統(tǒng)的結(jié)構(gòu)示意圖,如圖2所示,組件式測試系統(tǒng)200包括:基礎(chǔ)模塊210和多個(gè)組件220,基礎(chǔ)模塊210中定義了指定接口類,每個(gè)組件220中定義了實(shí)現(xiàn)指定接口類的子類。其中,基礎(chǔ)模塊可以是一個(gè)具體的模塊,也可以是一些模塊構(gòu)成的模塊組,子類與組件一一對(duì)應(yīng)。
基礎(chǔ)模塊210,適于根據(jù)指定接口類進(jìn)行掃描,發(fā)現(xiàn)實(shí)現(xiàn)指定接口類的子類;以及適于加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件220。
可見,圖2所示的測試系統(tǒng),通過在基礎(chǔ)模塊中定義指定接口類,并在各個(gè)組件中定義指定接口類的子類,使得基礎(chǔ)模塊可以根據(jù)指定接口類,通過掃描發(fā)現(xiàn)指定接口類的子類,進(jìn)一步將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件進(jìn)行加載。該技術(shù)方案通過松耦合的設(shè)計(jì)方式,使得基礎(chǔ)模塊與組件間的連接更為靈活,因此也可以隨需求的變化對(duì)組件進(jìn)行添加、修改或刪除,使得測試系統(tǒng)具有普遍適用性,提高了測試能力。
在本發(fā)明的一個(gè)實(shí)施例中,圖2所示的測試系統(tǒng)中,基礎(chǔ)模塊,適于隨測試系統(tǒng)的啟動(dòng)而啟動(dòng),在啟動(dòng)后根據(jù)指定接口類掃描指定的目錄。
在本實(shí)施例中,基礎(chǔ)模塊可以支持測試系統(tǒng)進(jìn)行最基本的啟動(dòng)、界面展示等功能,而具體的測試功能可以由各個(gè)組件進(jìn)行提供?;A(chǔ)模塊還應(yīng)當(dāng)進(jìn)一步具有掃描功能,根據(jù)指定接口類掃描指定目錄,這些指定目錄下應(yīng)當(dāng)存儲(chǔ)有各個(gè)組件的子類。這樣通過掃描指定目錄就可以識(shí)別指定接口類的子類。
在本發(fā)明的一個(gè)實(shí)施例中,圖2所示的測試系統(tǒng)中,基礎(chǔ)模塊,適于將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件全部進(jìn)行加載;或者適于根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)加載所發(fā)現(xiàn)的全部或部分子類對(duì)應(yīng)的組件。
本實(shí)施例,基礎(chǔ)模塊將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件全部進(jìn)行加載,可以一次性完成加載操作,而不需在后續(xù)的測試流程中再進(jìn)行組件的加載,使得測試流程更加連貫;而基礎(chǔ)模塊根據(jù)測試系統(tǒng)的需求選擇組件的加載時(shí)機(jī),可以更有效地利用資源,因?yàn)榻M件的加載需要占用資源,在暫時(shí)不需要用到某些組件時(shí)選擇不對(duì)其進(jìn)行加載可以有效地節(jié)約資源。因此,在具體實(shí)施中,用戶可以根據(jù)實(shí)際需求選擇組件的加載方式,例如還可以將掃描到的一部分組件先進(jìn)行加載,將另一部分組件按測試系統(tǒng)的需求選擇時(shí)機(jī)進(jìn)行加載,等等。
在本發(fā)明的一個(gè)實(shí)施例中,圖2所示的測試系統(tǒng)中,每個(gè)組件中配置有獨(dú)立的文件,在該獨(dú)立的文件中定義有實(shí)現(xiàn)指定接口類的子類。
子類可以是一個(gè)單獨(dú)的文件,也可以是一個(gè)單獨(dú)的壓縮包,由于子類與組件是一一對(duì)應(yīng)的,因此需要為每個(gè)組件配置獨(dú)立的文件,在該文件中對(duì)指定接口類的子類進(jìn)行定義。
在本發(fā)明的一個(gè)實(shí)施例中,圖2所示的測試系統(tǒng)中,基礎(chǔ)模塊,進(jìn)一步適于根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)釋放所加載的組件。
例如,由于每個(gè)組件可以對(duì)應(yīng)一種或幾種測試功能,當(dāng)對(duì)應(yīng)的測試功能完成后該組件的作用已經(jīng)完成,此時(shí)就可以釋放這些完成測試功能的組件。又例如測試系統(tǒng)的基礎(chǔ)模塊將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件全部進(jìn)行加載,而在測試過程中因?yàn)槟承┰虺霈F(xiàn)了測試機(jī)器資源不足,此時(shí)可以先釋放一部分加載的組件以獲得更多資源。
在本發(fā)明的一個(gè)實(shí)施例中,上述測試系統(tǒng)中,基礎(chǔ)模塊,適于將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件注冊到內(nèi)存中的指定隊(duì)列中;以及適于從內(nèi)存中的指定隊(duì)列中移除相應(yīng)的組件。
例如,基礎(chǔ)模塊通過指定接口類掃描發(fā)現(xiàn)的子類對(duì)應(yīng)的組件包括接口測試組件、Web UI測試組件、性能測試組件,又根據(jù)測試需求,按接口測試、Web UI測試、性能測試的順序進(jìn)行具體測試,此時(shí)可以按接口測試組件、Web UI測試組件、性能測試組件的順序?qū)⒔涌跍y試組件、Web UI測試組件、性能測試注冊到內(nèi)存中的指定隊(duì)列中,當(dāng)某個(gè)組件完成相應(yīng)的測試后,從該隊(duì)列中移除該組件。
在本發(fā)明的一個(gè)實(shí)施例中,上述測試系統(tǒng)中,每個(gè)組件中定義有一個(gè)或多個(gè)入口方法,每個(gè)入口方法對(duì)應(yīng)該組件中的一個(gè)執(zhí)行邏輯;基礎(chǔ)模塊,適于根據(jù)所加載的組件中的入口方法調(diào)用該組件中的相應(yīng)執(zhí)行邏輯。
接口類的子類往往是功能性的,要實(shí)現(xiàn)此功能就需要有相關(guān)的執(zhí)行邏輯。在本實(shí)施例中,每個(gè)組件中定義有一個(gè)或多個(gè)入口方法,每個(gè)入口方法對(duì)應(yīng)該組件中的一個(gè)執(zhí)行邏輯,這樣,基礎(chǔ)模塊就可以通過已加載的組件中的入口方法調(diào)用相應(yīng)執(zhí)行邏輯來實(shí)現(xiàn)相應(yīng)的功能。
在本發(fā)明的一個(gè)實(shí)施例中,上述測試系統(tǒng)中,基礎(chǔ)模塊,適于根據(jù)所加載的組件中的子類找到該組件中的入口方法;其中,子類中描述了查找入口方法的相關(guān)信息,或者子類和入口方法定義在同一個(gè)文件。
由于基礎(chǔ)模塊是根據(jù)指定接口類掃描發(fā)現(xiàn)子類,因此可以根據(jù)子類進(jìn)一步找到組件中的入口方法來調(diào)用相關(guān)執(zhí)行邏輯實(shí)現(xiàn)相應(yīng)的功能。
綜上所述,本發(fā)明的技術(shù)方案,通過在基礎(chǔ)模塊中定義指定接口類,并在各個(gè)組件中定義指定接口類的子類,使得基礎(chǔ)模塊可以根據(jù)指定接口類,通過掃描發(fā)現(xiàn)指定接口類的子類,進(jìn)一步將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件進(jìn)行加載。該技術(shù)方案通過松耦合的設(shè)計(jì)方式,使得基礎(chǔ)模塊與組件間的連接更為靈活,因此也可以隨需求的變化對(duì)組件進(jìn)行添加、修改或刪除,使得測試系統(tǒng)具有普遍適用性,提高了測試能力。
需要說明的是:
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬裝置或者其它設(shè)備固 有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類裝置所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的組件式測試系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了A1、一種實(shí)現(xiàn)組件式測試系統(tǒng)的方法,其中,該方法包括:
在基礎(chǔ)模塊中定義指定接口類;
在每個(gè)組件中定義實(shí)現(xiàn)所述指定接口類的子類;
所述基礎(chǔ)模塊根據(jù)所述指定接口類進(jìn)行掃描,發(fā)現(xiàn)實(shí)現(xiàn)所述指定接口類的子類;
所述基礎(chǔ)模塊加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件。
A2、如A1所述的方法,其中,所述基礎(chǔ)模塊根據(jù)所述指定接口類進(jìn)行掃描包括:
所述基礎(chǔ)模塊隨測試系統(tǒng)的啟動(dòng)而啟動(dòng);
所述基礎(chǔ)模塊在啟動(dòng)后根據(jù)所述指定接口類掃描指定的目錄。
A3、如A1所述的方法,其中,所述基礎(chǔ)模塊加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的 組件包括:
所述基礎(chǔ)模塊將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件全部進(jìn)行加載;
或者,所述基礎(chǔ)模塊根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)加載所發(fā)現(xiàn)的全部或部分子類對(duì)應(yīng)的組件。
A4、如A1所述的方法,其中,所述在每個(gè)組件中定義實(shí)現(xiàn)所述指定接口類的子類包括:
在每個(gè)組件中配置獨(dú)立的文件,在該獨(dú)立的文件中定義實(shí)現(xiàn)所述指定接口類的子類。
A5、如A1所述的方法,其中,該方法進(jìn)一步包括:
所述基礎(chǔ)模塊根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)釋放所加載的組件。
A6、如A5所述的方法,其中,
所述基礎(chǔ)模塊加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件包括:所述基礎(chǔ)模塊將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件注冊到內(nèi)存中的指定隊(duì)列中;
所述釋放所加載的組件包括:從內(nèi)存中的指定隊(duì)列中移除相應(yīng)的組件。
A7、如A1-A6中任一項(xiàng)所述的方法,其中,該方法進(jìn)一步包括:
在每個(gè)組件中定義一個(gè)或多個(gè)入口方法,每個(gè)入口方法對(duì)應(yīng)該組件中的一個(gè)執(zhí)行邏輯;
所述基礎(chǔ)模塊根據(jù)所加載的組件中的入口方法調(diào)用該組件中的相應(yīng)執(zhí)行邏輯。
A8、如A7所述的方法,其中,該方法進(jìn)一步包括:
所述基礎(chǔ)模塊根據(jù)所加載的組件中的子類找到該組件中的入口方法;
其中,所述子類中描述了查找入口方法的相關(guān)信息,或者所述子類和入口方法定義在同一個(gè)文件。
本發(fā)明還公開了B9、一種組件式測試系統(tǒng),其中,該測試系統(tǒng)包括:基礎(chǔ)模塊和多個(gè)組件,基礎(chǔ)模塊中定義了指定接口類,每個(gè)組件中定義了實(shí)現(xiàn)所述指定接口類的子類;
所述基礎(chǔ)模塊,適于根據(jù)所述指定接口類進(jìn)行掃描,發(fā)現(xiàn)實(shí)現(xiàn)所述指定接口類的子類;以及適于加載所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件。
B10、如B9所述的測試系統(tǒng),其中,
所述基礎(chǔ)模塊,適于隨測試系統(tǒng)的啟動(dòng)而啟動(dòng),在啟動(dòng)后根據(jù)所述指定接口類掃描指定的目錄。
B11、如B9所述的測試系統(tǒng),其中,
所述基礎(chǔ)模塊,適于將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件全部進(jìn)行加載;或者適于根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)加載所發(fā)現(xiàn)的全部或部分子類對(duì)應(yīng)的組件。
B12、如B9所述的測試系統(tǒng),其中,
每個(gè)組件中配置有獨(dú)立的文件,在該獨(dú)立的文件中定義有實(shí)現(xiàn)所述指定接口類的子類。
B13、如B9所述的測試系統(tǒng),其中,
所述基礎(chǔ)模塊,進(jìn)一步適于根據(jù)測試系統(tǒng)的需求選擇時(shí)機(jī)釋放所加載的組件。
B14、如B13所述的測試系統(tǒng),其中,
所述基礎(chǔ)模塊,適于將所發(fā)現(xiàn)的子類對(duì)應(yīng)的組件注冊到內(nèi)存中的指定隊(duì)列中;以及適于從內(nèi)存中的指定隊(duì)列中移除相應(yīng)的組件。
B15、如B9-B14中任一項(xiàng)所述的測試系統(tǒng),其中,
每個(gè)組件中定義有一個(gè)或多個(gè)入口方法,每個(gè)入口方法對(duì)應(yīng)該組件中的一個(gè)執(zhí)行邏輯;
所述基礎(chǔ)模塊,適于根據(jù)所加載的組件中的入口方法調(diào)用該組件中的相應(yīng)執(zhí)行邏輯。
B16、如B15所述的測試系統(tǒng),其中,
所述基礎(chǔ)模塊,適于根據(jù)所加載的組件中的子類找到該組件中的入口方法;
其中,所述子類中描述了查找入口方法的相關(guān)信息,或者所述子類和入口方法定義在同一個(gè)文件。