專利名稱:一種支持并行測試的測試資源管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及測試技術(shù)領(lǐng)域,特別涉及一種對自動測試系統(tǒng)中的測試資源進(jìn)行智能化配置管理的方法。
背景技術(shù):
測試資源管理程序主要用來管理自動測試系統(tǒng)中的各種測試資源軟、硬件的信息,它是自動測試系統(tǒng)中一個非常重要的輔助程序,尤其是對于復(fù)雜的通用自動測試系統(tǒng)來說更是如此。當(dāng)然,對于有些小型的自動測試系統(tǒng),由于測試資源較少,測試程序是專用的,極少出現(xiàn)并行測試的情況,所以也有不提供測試資源管理程序,而由測試程序直接通過驅(qū)動程序訪問儀器的情況。目前常見的測試資源管理程序只是管理了自動測試系統(tǒng)中的硬件、軟件的靜態(tài)信息,比如硬件的程控地址、驅(qū)動等信息。如圖1所示,測試程序11通過測試資源管理程序12提供的API函數(shù)訪問到自動測試系統(tǒng)中所有測試資源的信息,然后根據(jù)需要裝載相應(yīng)的驅(qū)動程序13,并通過驅(qū)動程序訪問測試儀器14。同測試儀器14會話的建立和結(jié)束都由測試程序11負(fù)責(zé)管理,與測試資源管理程序12無關(guān)。因此,現(xiàn)有測試資源管理程序12只是管理了自動測試系統(tǒng)中的測試資源的靜態(tài)信息。測試程序11只能通過這些信息裝載相應(yīng)驅(qū)動程序13來訪問所需儀器,從測試程序11本身的角度來管理測試儀器14的訪問狀態(tài),無法從自動測試系統(tǒng)的角度管理測試儀器14狀態(tài)。這樣就造成了以下問題當(dāng)多個測試程序并行運行時,互相之間交錯而無序的訪問測試儀器,造成測試儀器的狀態(tài)紊亂,從而無法得到準(zhǔn)確的測量數(shù)據(jù)。因此,現(xiàn)有的測試資源管理程序無法對并行測試提供有力支撐,極大的限制了測試儀器的測試能力,降低了測試效率。
發(fā)明內(nèi)容
本發(fā)明提出了一種支持并行測試的測試資源管理方法,解決了現(xiàn)有技術(shù)中多個測試程序同時訪問同一測試儀器時造成測試儀器狀態(tài)紊亂的問題。本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種支持并行測試的測試資源管理方法,包括以下步驟步驟101,在測試資源管理器服務(wù)器程序啟動時,創(chuàng)建測試資源管理器組件,并讀入資源配置文件;步驟102,解析XML文件,將資源配置文件中信息提取出來;步驟103,根據(jù)提取出來的信息,構(gòu)造測試儀器狀態(tài)信息表的初始值;步驟104,等待測試儀器發(fā)送過來的請求消息,當(dāng)新消息到來后,根據(jù)請求的不同,做出不同處理;步驟105,首先判斷請求是否是申請測試儀器,如果判斷為真,則再繼續(xù)判斷測試儀器是否是多通道儀器;如果判斷為否,則再繼續(xù)判斷請求是否是釋放測試儀器;步驟106,判斷請求是否是釋放測試儀器,如果判斷為真,則修改狀態(tài)信息表;步驟107,根據(jù)測試儀器是否為多通道儀器,如果測試儀器為多通道儀器,則將測試儀器中對應(yīng)通道的狀態(tài)改成“空閑”狀態(tài);如果測試儀器為單通道儀器,則將測試儀器的狀態(tài)改為“空閑”狀態(tài);步驟108,當(dāng)測試儀器通道數(shù)大于I時,則該測試儀器為多通道儀器;如果判斷為真,則查看繼續(xù)查看指定的通道是否空閑;否則,直接查看測試儀器是否空閑;步驟109,查看指定儀器的狀態(tài)是否為“空閑”狀態(tài),如果為空閑,則轉(zhuǎn)入步驟110 ;步驟110,向測試程序返回測試儀器正空閑的信息,并且修改狀態(tài)信息表,將對應(yīng)測試儀器的狀態(tài)改為“正在使用”狀態(tài);步驟111,當(dāng)測試儀器是多通道儀器時,判斷指定通道是否正空閑,如果空閑則轉(zhuǎn)入步驟113,否則轉(zhuǎn)入步驟112進(jìn)行處理;步驟112,向測試程序返回測試儀器通道忙信息;步驟113,如果指定通道是空閑的,向測試程序返回通道空閑的信息;步驟114,修改狀態(tài)信息表,將對應(yīng)測試儀器的指定通道的狀態(tài)改為“正在使用”狀態(tài)??蛇x地,測試程序訪問測試儀器的步驟具體包括步驟201,創(chuàng)建一個代理組件對象,如果測試程序要訪問測試儀器,首先向測試資源管理器組件申請操作該測試儀器;步驟202,調(diào)用代理組件對象方法,申請訪問指定儀器,在申請方法中傳入儀器名稱和通道索引參數(shù);步驟203,接收方法返回信息;步驟204,判斷返回消息是否是測試儀器空閑或測試儀器通道空閑,如果是表示當(dāng)前測試儀器和通道正在空閑,可以使用;否則表示測試儀器正忙,需要等待,然后循環(huán)向代理組件重新申請使用測試儀器,直到測試儀器狀態(tài)變?yōu)榭臻e;步驟205,調(diào)用測試儀器的驅(qū)動程序訪問測試儀器;步驟206,當(dāng)使用測試儀器完成測試工作后,需要調(diào)用代理組件對象相應(yīng)方法來釋放儀器??蛇x地,所述接收方法返回信息的步驟具體為,采用同步調(diào)用的方式,阻塞當(dāng)前線程,直到接收到返回信息??蛇x地,所述接收方法返回信息的步驟具體為,采用異步調(diào)用的方式,傳入回調(diào)函數(shù)名稱,當(dāng)有消息返回時,直接調(diào)用回調(diào)函數(shù)。本發(fā)明的有益效果是(I)用戶可以簡單的、快速的開發(fā)出能夠有序且有效的訪問測試儀器資源的測試程序,不僅支持多線程并行測試儀器訪問,而且支持多進(jìn)程并行測試儀器訪問,有效的利用了系統(tǒng)的儀器資源,極大的節(jié)省了硬件成本;(2)簡單的利用圖形界面程序修改配置就可以實現(xiàn)測試儀器的添加和更換,而不需要修改測試程序,也就是說本方法具有極好的可擴(kuò)展性、可配置性、儀器互換性。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有的測試系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明一種支持并行測試的測試資源管理方法的結(jié)構(gòu)示意圖;圖3為本發(fā)明一種支持并行測試的測試資源管理方法的進(jìn)程間通信的結(jié)構(gòu)示意圖;圖4為本發(fā)明一種支持并行測試的測試資源管理方法的流程圖;圖5為本發(fā)明一種支持并行測試的測試資源管理方法的測試程序的流程圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明提出了一種支持并行測試的測試資源管理方法,本方法的體系結(jié)構(gòu)如圖2所示,在該結(jié)構(gòu)中包括如下部分承載服務(wù)器21、測試資源管理器組件22、資源配置文件23和測試資源配置編輯器24。下面詳細(xì)闡述各個部分測試資源管理器組件22負(fù)責(zé)管理系統(tǒng)中所有測試資源,裝載資源配置文件23作為系統(tǒng)測試資源的初始化狀態(tài),并在此基礎(chǔ)上管理測試資源的動態(tài)信息。測試程序11向它申請訪問測試儀器14,根據(jù)所申請訪問的測試儀器14是否空閑,反饋測試程序11是否可以訪問。測試資源管理器組件22運行在獨立進(jìn)程中,而不是普通的COM組件。這樣,測試資源管理器組件22才能夠與多個測試程序進(jìn)程進(jìn)行交互,掌握系統(tǒng)中所有測試儀器的運行狀態(tài),而不是某個進(jìn)程使用測試儀器的狀態(tài)。承載服務(wù)器21為測試資源管理器組件22的宿主程序,可以是普通的Windows應(yīng)用程序或控制臺應(yīng)用程序,也可以封裝成為Windows服務(wù)的方式。承載服務(wù)器21主要功能是承載測試資源管理器組件22,利用信道實現(xiàn)進(jìn)程間的通信。優(yōu)選地,承載服務(wù)器采用單例模式運行,保證只有一個進(jìn)程運行。資源配置文件23為一個XML文件,保存了系統(tǒng)中所有測試資源的靜態(tài)信息,比如儀器的程控地址、儀器的通道數(shù)、驅(qū)動程序文件等信息。測試資源配置編輯器24為一個Windows應(yīng)用程序,主要功能是以圖形化界面編輯資源配置文件,修改系統(tǒng)中所有測試資源的靜態(tài)信息。系統(tǒng)中測試資源的運行狀態(tài)信息是在靜態(tài)信息的基礎(chǔ)上加入多個動態(tài)描述信息來實現(xiàn)的。系統(tǒng)的靜態(tài)信息包括系統(tǒng)中的所有軟、硬件測試資源的信息,被保存在資源配置文件23中。當(dāng)測試資源管理器服務(wù)器程序啟動時,實例化測試資源管理器組件22,測試資源管理器組件22裝載資源配置文件23,載入文件中的信息構(gòu)建出測試資源的初始狀態(tài)。這時,系統(tǒng)中的所有測試儀器14都是空閑狀態(tài)。當(dāng)一個測試程序向測試資源管理器組件22申請訪問某個測試儀器時,測試資源管理器組件22向測試程序返回“空閑”的信息,并修改該測試儀器狀態(tài)為“正在使用”狀態(tài)。如果這時另一個測試程序向測試資源管理器組件22申請訪問這個測試儀器時,測試資源管理器組件22向測試程序返回“正在使用”的信息,測試程序?qū)⑼O聛淼却摐y試儀器的釋放。當(dāng)測試程序使用完測試儀器后,向測試資源管理器組件22釋放該測試儀器,測試資源管理器組件22修改該測試儀器的狀態(tài)為“空閑”狀態(tài)。通過這種方式,測試資源管理器組件22有效的管理了系統(tǒng)中測試資源的使用情況,將測試程序?qū)y試儀器的并行訪問轉(zhuǎn)變?yōu)轫樞蛟L問,從而支持了系統(tǒng)級的并行測試,使得多個測試程序可以有序的訪問儀器,提高了測試效率。而且,管理的動態(tài)信息是在靜態(tài)信息的基礎(chǔ)上,擴(kuò)充了運行狀態(tài)信息實現(xiàn)。靜態(tài)信息是保存在資源配置文件中,而動態(tài)信息是內(nèi)存中的數(shù)據(jù),并不會被保存到文件中。優(yōu)選地,本發(fā)明一種支持并行測試的測試資源管理方法的體系結(jié)構(gòu)中還包括代理組件,測試程序?qū)崿F(xiàn)和測試資源管理器組件通信,簡化系統(tǒng)級資源管理。如圖3所示,測試資源管理器組件22單獨的運行在測試資源管理器服務(wù)器進(jìn)程31中,而測試程序11運行在測試程序進(jìn)程32中,即測試程序11和測試資源管理器組件22不是在一個進(jìn)程內(nèi),所以測試程序11只能通過進(jìn)程間通信的方式同測試資源管理器組件22進(jìn)行通信。因為跨進(jìn)程通信涉及到信道34、格式化程序33等技術(shù)細(xì)節(jié),如果直接在測試程序11中實現(xiàn)進(jìn)程間通信,會使得測試程序非常的復(fù)雜。代理組件35具有同測試資源管理器組件22相同的接口,利用格式化程序33和信道34,實現(xiàn)了同測試資源管理器組件22的通信。代理組件35可以被看作測試資源管理器組件22在測試程序11中的一個影子,測試程序11調(diào)用代理組件35中的方法實質(zhì)上就是調(diào)用測試資源管理器組件22的方法。因為兩者具有相同的接口,所以測試程序11絲毫感覺不到測試資源管理器組件22運行在單獨的進(jìn)程中。測試資源管理器組件22由一個單例模式的應(yīng)用程序(即承載服務(wù)器)承載,也就是系統(tǒng)中只有一個測試資源管理器組件22運行。每個測試程序通過進(jìn)程間通信的方式同測試資源管理器組件22交互,這樣測試資源管理器組件22就變成了多個進(jìn)程訪問測試儀器的仲裁者,從而不僅支持多線程測試儀器訪問,而且支持多進(jìn)程測試儀器訪問的并行管理。本發(fā)明一種支持并行測試的測試資源管理方法的流程圖如圖4所示,包括如下步驟步驟101,在測試資源管理器服務(wù)器程序啟動時,創(chuàng)建測試資源管理器組件,并讀入資源配置文件;步驟102,解析XML文件,將資源配置文件中信息提取出來;步驟103,根據(jù)提取出來的信息,構(gòu)造測試儀器狀態(tài)信息表的初始值,該信息表不但包括了系統(tǒng)中軟、硬件測試資源的靜態(tài)信息,比如硬件的程控地址、驅(qū)動的路徑、硬件的通道數(shù)等信息,而且包含了關(guān)于儀器的動態(tài)信息,比如硬件通道是否空閑等信息;步驟104,等待測試儀器發(fā)送過來的請求消息,當(dāng)新消息到來后,根據(jù)請求的不同,做出不同處理;步驟105,首先判斷請求是否是申請測試儀器,如果判斷為真,則再繼續(xù)判斷測試儀器是否是多通道儀器;如果判斷為否,則再繼續(xù)判斷請求是否是釋放測試儀器;步驟106,判斷請求是否是釋放測試儀器,如果判斷為真,則修改狀態(tài)信息表;步驟107,根據(jù)測試儀器是否為多通道儀器,如果測試儀器為多通道儀器,則將測試儀器中對應(yīng)通道的狀態(tài)改成“空閑”狀態(tài);如果測試儀器為單通道儀器,則將測試儀器的狀態(tài)改為“空閑”狀態(tài);步驟108,當(dāng)測試儀器通道數(shù)大于I時,則該測試儀器為多通道儀器;如果判斷為真,則查看繼續(xù)查看指定的通道是否空閑;否則,直接查看測試儀器是否空閑;步驟109,查看指定儀器的狀態(tài)是否為“空閑”狀態(tài),如果為空閑,則轉(zhuǎn)入步驟110 ;步驟110,向測試程序返回測試儀器正空閑的信息,并且修改狀態(tài)信息表,將對應(yīng)測試儀器的狀態(tài)改為“正在使用”狀態(tài);步驟111,當(dāng)測試儀器是多通道儀器時,判斷指定通道是否正空閑,如果空閑則轉(zhuǎn)入步驟113,否則轉(zhuǎn)入步驟112進(jìn)行處理;步驟112,向測試程序返回測試儀器通道忙信息;步驟113,如果指定通道是空閑的,向測試程序返回通道空閑的信息;步驟114,修改狀態(tài)信息表,將對應(yīng)測試儀器的指定通道的狀態(tài)改為“正在使用”狀態(tài)。其中,測試程序訪問測試儀器的流程圖如圖5所示,包括如下步驟步驟201,創(chuàng)建一個代理組件對象,如果測試程序要訪問測試儀器,首先需要向測試資源管理器組件申請操作該測試儀器;步驟202,調(diào)用代理組件對象方法,申請訪問指定儀器,在申請方法中傳入儀器名稱和通道索引等參數(shù);步驟203,接收方法返回信息,在這一步驟中,可以采用同步調(diào)用的方式,即阻塞當(dāng)前線程,直到接收到返回信息;也可以采用異步調(diào)用的方式,傳入回調(diào)函數(shù)名稱,當(dāng)有消息返回時,直接調(diào)用回調(diào)函數(shù),不需要阻塞當(dāng)前線程;步驟204,判斷返回消息是否是測試儀器空閑或測試儀器通道空閑,如果是表示當(dāng)前測試儀器和通道正在空閑,可以使用;否則表示測試儀器正忙,需要等待,然后循環(huán)向代理組件重新申請使用測試儀器,直到測試儀器狀態(tài)變?yōu)榭臻e;步驟205,調(diào)用測試儀器的驅(qū)動程序訪問測試儀器;步驟206,當(dāng)使用測試儀器完成測試工作后,需要調(diào)用代理組件對象相應(yīng)方法來釋放儀器。利用本發(fā)明的一種支持并行測試的測試資源管理方法,用戶可以簡單的、快速的開發(fā)出能夠有序且有效的訪問測試儀器資源的測試程序,不僅支持多線程并行測試儀器訪問,而且支持多進(jìn)程并行測試儀器訪問,有效的利用了系統(tǒng)的儀器資源,極大的節(jié)省了硬件成本;簡單的利用圖形界面程序修改配置就可以實現(xiàn)測試儀器的添加和更換,而不需要修改測試程序,也就是說本方法具有極好的可擴(kuò)展性、可配置性、儀器互換性。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種支持并行測試的測試資源管理方法,其特征在于,包括以下步驟: 步驟101,在測試資源管理器服務(wù)器程序啟動時,創(chuàng)建測試資源管理器組件,并讀入資源配置文件; 步驟102,解析XML文件,將資源配置文件中信息提取出來; 步驟103,根據(jù)提取出來的信息,構(gòu)造測試儀器狀態(tài)信息表的初始值; 步驟104,等待測試儀器發(fā)送過來的請求消息,當(dāng)新消息到來后,根據(jù)請求的不同,做出不同處理; 步驟105,首先判斷請求是否是申請測試儀器,如果判斷為真,則再繼續(xù)判斷測試儀器是否是多通道儀器;如果判斷為否,則再繼續(xù)判斷請求是否是釋放測試儀器; 步驟106,判斷請求是否是釋放 測試儀器,如果判斷為真,則修改狀態(tài)信息表; 步驟107,根據(jù)測試儀器是否為多通道儀器,如果測試儀器為多通道儀器,則將測試儀器中對應(yīng)通道的狀態(tài)改成“空閑”狀態(tài);如果測試儀器為單通道儀器,則將測試儀器的狀態(tài)改為“空閑”狀態(tài); 步驟108,當(dāng)測試儀器通道數(shù)大于I時,則該測試儀器為多通道儀器;如果判斷為真,則查看繼續(xù)查看指定的通道是否空閑;否則,直接查看測試儀器是否空閑; 步驟109,查看指定儀器的狀態(tài)是否為“空閑”狀態(tài),如果為空閑,則轉(zhuǎn)入步驟110 ;步驟110,向測試程序返回測試儀器正空閑的信息,并且修改狀態(tài)信息表,將對應(yīng)測試儀器的狀態(tài)改為“正在使用”狀態(tài); 步驟111,當(dāng)測試儀器是多通道儀器時,判斷指定通道是否正空閑,如果空閑則轉(zhuǎn)入步驟113,否則轉(zhuǎn)入步驟112進(jìn)行處理; 步驟112,向測試程序返回測試儀器通道忙信息; 步驟113,如果指定通道是空閑的,向測試程序返回通道空閑的信息; 步驟114,修改狀態(tài)信息表,將對應(yīng)測試儀器的指定通道的狀態(tài)改為“正在使用”狀態(tài)。
2.如權(quán)利要求1所述的支持并行測試的測試資源管理方法,其特征在于,測試程序訪問測試儀器的步驟具體包括: 步驟201,創(chuàng)建一個代理組件對象,如果測試程序要訪問測試儀器,首先向測試資源管理器組件申請操作該測試儀器; 步驟202,調(diào)用代理組件對象方法,申請訪問指定儀器,在申請方法中傳入儀器名稱和通道索引參數(shù); 步驟203,接收方法返回信息; 步驟204,判斷返回消息是否是測試儀器空閑或測試儀器通道空閑,如果是表示當(dāng)前測試儀器和通道正在空閑,可以使用;否則表示測試儀器正忙,需要等待,然后循環(huán)向代理組件重新申請使用測試儀器,直到測試儀器狀態(tài)變?yōu)榭臻e; 步驟205,調(diào)用測試儀器的驅(qū)動程序訪問測試儀器; 步驟206,當(dāng)使用測試儀器完成測試工作后,需要調(diào)用代理組件對象相應(yīng)方法來釋放儀器。
3.如權(quán)利要求2所述的支持并行測試的測試資源管理方法,其特征在于,所述接收方法返回信息的步驟具體為,采用同步調(diào)用的方式,阻塞當(dāng)前線程,直到接收到返回信息。
4.如權(quán)利要求2所述的支持并行測試的測試資源管理方法,其特征在于,所述接收方法返回信息的步驟具體為,采用異步調(diào)用的方式,傳入回調(diào)函數(shù)名稱,當(dāng)有消息返回時,直接調(diào)用回調(diào)函 數(shù)。
全文摘要
本發(fā)明提出了一種支持并行測試的測試資源管理方法,解決了現(xiàn)有技術(shù)中多個測試程序同時訪問同一測試儀器時造成測試儀器狀態(tài)紊亂的問題。利用本發(fā)明的一種支持并行測試的測試資源管理方法,用戶可以簡單的、快速的開發(fā)出能夠有序且有效的訪問測試儀器資源的測試程序,不僅支持多線程并行測試儀器訪問,而且支持多進(jìn)程并行測試儀器訪問,有效的利用了系統(tǒng)的儀器資源,極大的節(jié)省了硬件成本;簡單的利用圖形界面程序修改配置就可以實現(xiàn)測試儀器的添加和更換,而不需要修改測試程序,也就是說本方法具有極好的可擴(kuò)展性、可配置性、儀器互換性。
文檔編號G06F13/12GK103077135SQ201210594628
公開日2013年5月1日 申請日期2012年12月31日 優(yōu)先權(quán)日2012年12月31日
發(fā)明者胡寶剛 申請人:中國電子科技集團(tuán)公司第四十一研究所