高宇航
(91404部隊(duì),河北 秦皇島 066000)
聯(lián)調(diào)測(cè)試中,反應(yīng)時(shí)間的測(cè)試項(xiàng)目需多次重復(fù)測(cè)試,且測(cè)試流程相對(duì)固定,因此以反應(yīng)時(shí)間的測(cè)試項(xiàng)目為例,進(jìn)行需求分析。
反應(yīng)時(shí)間測(cè)試中設(shè)有一個(gè)指揮部位和多個(gè)監(jiān)測(cè)部位。指揮部位負(fù)責(zé)測(cè)試的組織指揮和被測(cè)試設(shè)備的操作;各監(jiān)測(cè)部位負(fù)責(zé)觀察相應(yīng)反應(yīng)現(xiàn)象并記錄時(shí)間。單次測(cè)試的流程具體為:(1)指揮部位依次詢問(wèn)各監(jiān)測(cè)部位準(zhǔn)備情況;(2)各監(jiān)測(cè)部位分別確認(rèn)檢測(cè)設(shè)備初始化正常并上報(bào)準(zhǔn)備完畢;(3)指揮部位進(jìn)行倒計(jì)時(shí),倒計(jì)時(shí)結(jié)束后操作被測(cè)試設(shè)備開(kāi)始工作;(4)各監(jiān)測(cè)部位記錄反應(yīng)現(xiàn)象出現(xiàn)時(shí)間;(5)指揮部位依次詢問(wèn)各監(jiān)測(cè)部位測(cè)試結(jié)果;(6)各監(jiān)測(cè)部位分別上報(bào)測(cè)試結(jié)果。
根據(jù)測(cè)試流程分析,需要協(xié)調(diào)軟件能夠由指揮部位向監(jiān)測(cè)部位發(fā)送準(zhǔn)備情況詢問(wèn)、測(cè)試開(kāi)始指令及測(cè)試結(jié)果詢問(wèn);各監(jiān)測(cè)部位能夠上報(bào)準(zhǔn)備情況、記錄反應(yīng)現(xiàn)象時(shí)間及上報(bào)測(cè)試結(jié)果。
為確保測(cè)試結(jié)果準(zhǔn)確,避免網(wǎng)絡(luò)延遲的影響,各部位間要保持時(shí)間同步。
根據(jù)需求分析,軟件采用C/S結(jié)構(gòu),分為指揮部位軟件(服務(wù)端)和監(jiān)測(cè)部位軟件(客戶端),拓?fù)潢P(guān)系采用以服務(wù)端為中心的星狀拓?fù)洹?/p>
對(duì)于穩(wěn)定、持續(xù)的點(diǎn)對(duì)點(diǎn)通信,一般應(yīng)采用TCP協(xié)議,但由于部分監(jiān)測(cè)部位未架設(shè)有線網(wǎng)絡(luò),只能通過(guò)無(wú)線傳輸設(shè)備達(dá)成通信。由于通信鏈路不穩(wěn)定,采用TCP連接常出現(xiàn)頻繁的斷開(kāi)現(xiàn)象和重聯(lián)現(xiàn)象,故采用UDP協(xié)議。在應(yīng)用層建立重發(fā)機(jī)制和應(yīng)答機(jī)制,以確保指令傳輸?shù)目煽啃訹1]。
為確保各客戶端與服務(wù)端時(shí)間同步,各客戶端包含NTP校時(shí)模塊。以服務(wù)端為NTP服務(wù)器進(jìn)行校時(shí),NTP協(xié)議在局域網(wǎng)內(nèi)校時(shí)精度可達(dá)0.1 ms,廣域網(wǎng)內(nèi)可達(dá)1~50 ms,可滿足大多數(shù)測(cè)試的時(shí)統(tǒng)需求。
客戶端和服務(wù)端相互發(fā)送4種數(shù)據(jù)包,分別為心跳數(shù)據(jù)包、心跳應(yīng)答數(shù)據(jù)包、指令數(shù)據(jù)包及指令應(yīng)答數(shù)據(jù)包。
心跳數(shù)據(jù)包為軟件運(yùn)行時(shí)自動(dòng)周期性發(fā)送,用于檢測(cè)通信質(zhì)量;心跳應(yīng)答數(shù)據(jù)包為接收到心跳數(shù)據(jù)包后自動(dòng)應(yīng)答。通過(guò)心跳數(shù)據(jù)包和應(yīng)答數(shù)據(jù)包的配合可檢測(cè)出通信信道的通斷、傳輸延遲及服務(wù)端與客戶端的時(shí)統(tǒng)偏差值。心跳周期一般設(shè)置為1 s。心跳數(shù)據(jù)包和心跳應(yīng)答數(shù)據(jù)包的數(shù)據(jù)格式如表1和表2所示。
實(shí)際軟件中采用客戶端發(fā)送心跳數(shù)據(jù)包、服務(wù)端返回應(yīng)答數(shù)據(jù)的模式,可減少軟件配置的復(fù)雜度,使軟件部署更靈活。
利用心跳應(yīng)答數(shù)據(jù)包的接收時(shí)間和心跳應(yīng)答數(shù)據(jù)包中的orig_time字段、send_time字段包含的時(shí)間信息,即可計(jì)算出往返的傳輸延遲和時(shí)統(tǒng)偏差值,公式為:
其中,ping為雙向傳輸?shù)难舆t時(shí)間;Δ為服務(wù)端與客戶端的時(shí)統(tǒng)偏差值;tr為客戶端接收心跳應(yīng)答數(shù)據(jù)包的時(shí)刻;to為心跳應(yīng)答數(shù)據(jù)包中orig_time字段的時(shí)刻,即心跳數(shù)據(jù)包的發(fā)送時(shí)刻;ts為心跳應(yīng)答數(shù)據(jù)包中send_time字段的時(shí)刻,即心跳數(shù)據(jù)包的接收時(shí)刻,也是心跳應(yīng)答數(shù)據(jù)包的發(fā)送時(shí)刻。
指令數(shù)據(jù)包為服務(wù)端下發(fā)指令或客戶端上報(bào)結(jié)果時(shí)發(fā)送的數(shù)據(jù)包,指令應(yīng)答數(shù)據(jù)包為接收到指令數(shù)據(jù)包后自動(dòng)進(jìn)行應(yīng)答。指令數(shù)據(jù)包和指令應(yīng)答數(shù)據(jù)包的數(shù)據(jù)格式如表3和表4所示。
建立應(yīng)答機(jī)制和重發(fā)機(jī)制:建立一個(gè)發(fā)送隊(duì)列,當(dāng)有指令需發(fā)送時(shí)先放入發(fā)送隊(duì)列,隨后進(jìn)行首次發(fā)送,在用戶界面上標(biāo)注該指令狀態(tài)為“發(fā)送中”;接收到指令應(yīng)答數(shù)據(jù)包后,遍歷發(fā)送隊(duì)列查找該序列號(hào)指令,將其移出發(fā)送隊(duì)列,并在用戶界面上標(biāo)注該指令狀態(tài)為“已送達(dá)”;周期性檢查發(fā)送隊(duì)列,重發(fā)隊(duì)列中的所有指令,當(dāng)某條指令的重發(fā)次數(shù)超限或時(shí)間超時(shí),將該指令移出發(fā)送隊(duì)列,并在用戶界面上標(biāo)注該指令狀態(tài)為“發(fā)送失敗”。
表1 心跳數(shù)據(jù)包數(shù)據(jù)格式
表2 心跳應(yīng)答數(shù)據(jù)包數(shù)據(jù)格式
表3 指令數(shù)據(jù)包數(shù)據(jù)格式
表4 指令應(yīng)答數(shù)據(jù)包數(shù)據(jù)格式
各部位軟件實(shí)現(xiàn)效果如圖1和圖2所示。
實(shí)際應(yīng)用證明,軟件可大幅提高測(cè)試效率。軟件充分應(yīng)用了色彩和音效等提示手段,有效降低了測(cè)試人員的值守強(qiáng)度。同時(shí),軟件可將測(cè)試結(jié)果存入數(shù)據(jù)庫(kù),大幅簡(jiǎn)化后期測(cè)試數(shù)據(jù)的梳理工作和統(tǒng)計(jì)工作。軟件還具有一定擴(kuò)展性,根據(jù)測(cè)試流程進(jìn)行簡(jiǎn)單修改即可滿足多種測(cè)試項(xiàng)目的需求,適用于測(cè)試流程相對(duì)固定、測(cè)試重復(fù)次數(shù)較多的測(cè)試項(xiàng)目。
圖1 指揮部位軟件效果圖
圖2 檢測(cè)部位軟件效果圖