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