序言:要做一個自動化測試平臺,越強(qiáng)大的平臺,其模塊之間的交互越難,也是各個模塊之間的接口定義越難,而如何采用一種策略去規(guī)范各個模塊的接口、消息格式和交互方式更是難,這一點,我覺得可以從學(xué)習(xí)網(wǎng)絡(luò)協(xié)議中找到一絲靈感,那些協(xié)議的交互方式以及消息的格式傳遞都是值得學(xué)習(xí)的,以前覺得學(xué)習(xí)協(xié)議純粹是為了了解,現(xiàn)在學(xué)習(xí)真的是想掌握其幾點精華思想,突然能夠想象到:一群人在一起思想的碰撞,不斷的去總結(jié),去發(fā)現(xiàn),去實用,才有了現(xiàn)在的協(xié)議標(biāo)準(zhǔn)。覺得,不一樣的領(lǐng)域都去發(fā)現(xiàn)才能有所感悟。
一、自動化測試平臺中的模塊
1、軟件產(chǎn)品是具有一系列特定功能的組件組成,其系統(tǒng)可以被分為一系列的功能模塊,每個模塊所特有的信息處理過程都被包含在模塊的內(nèi)部,如同一個“黑箱”,這是“封裝性”,然后模塊與模塊之間按照一定的規(guī)則相連則成了一個復(fù)雜的系統(tǒng)(一個系統(tǒng)也可以作為一個模塊,去組成更復(fù)雜的系統(tǒng))。
2、而在自動化測試平臺的系統(tǒng)開發(fā)中,首先,按照其抽象出來的自動化測試流程和方式劃分一系列的功能模塊,這些功能模塊都能脫離系統(tǒng)獨自使用,有的模塊獨自使用能夠提高一些效率(像CLI測試中的基于腳本的自動化測試框架,GUI測試中的基于工具的自動化測試框架等都是一種模塊,還有一些測試工具),然后在此些模塊的基礎(chǔ)上,我們定義一些交互規(guī)則,將他們以好的方式進(jìn)行安排在自動化測試流水線上,然后提供一個統(tǒng)一管理的界面,慢慢的,構(gòu)建成了一個自動化測試平臺。(關(guān)鍵點:必須在測試功能模塊獨自提高效率的基礎(chǔ)上,能夠在測試流程中加以應(yīng)用,平臺的作用伴隨更多的服務(wù),將他們流水線化)
二、自動化測試平臺平臺構(gòu)建難點
1、如何在測試流程中提煉自動化測試流程,然后抽象出自動化測試流水線。
2、如何能夠統(tǒng)一規(guī)劃整個測試部門的測試資源,這需要一個服務(wù)器去統(tǒng)一存儲和調(diào)度管理。
3、然后,很關(guān)鍵的一步:如何將已有的功能測試模塊結(jié)合起來,即建立一套良好的交互協(xié)議和交互消息格式,使其能夠很好的交互和互補(bǔ),真正完成自動化測試流水線的運(yùn)作。
三、自動化測試平臺模塊交互策略分析
以下策略是自己對測試平臺建設(shè)中的一些提煉,不一定完全適合,可以參考
1、策略1:服務(wù)注冊機(jī)制
即定義一個框架,其框架提供相應(yīng)的API,所有的模塊利用這個API遵循一定的規(guī)則都可以作為服務(wù)注冊到這個框架中,注冊的同時,也對該服務(wù)的發(fā)送和接收的消息進(jìn)行了規(guī)定,不同的消息可以調(diào)用其模塊不同的功能,然后,模塊則可以以這個框架為媒介,以傳遞消息的方式互相控制。當(dāng)然,對于數(shù)據(jù)的存儲,需要單獨提供一個空間,可以是服務(wù)器,也可以是內(nèi)存機(jī)制。
2、策略2:消息分發(fā)統(tǒng)一機(jī)制
即定義一個消息分發(fā)模塊,模塊的交互都會經(jīng)過這個消息分發(fā)模塊,這個消息分發(fā)模塊將消息進(jìn)行解析,然后傳送到對應(yīng)的模塊。
這里,兩種策略都需要統(tǒng)一規(guī)定好消息的格式。
總之,個人上次聽過一句話,如果你在一個行業(yè)領(lǐng)域已經(jīng)停滯不前,那么將眼光放寬,去另外一個領(lǐng)域去看看,往往這樣,會激發(fā)你無限的靈感。這也許是真理啊,喬布斯不很愛好藝術(shù)嗎?馬云不是個金庸迷嗎?當(dāng)然,不是說要去復(fù)制,個人覺得,說的是不要閉門造船吧,而是學(xué)會提煉共性,在思想中升華吧。