標籤:style blog http color strong 檔案 2014 問題
第3部分 軟體研發工作總結
效能測試
【文章摘要】
對於通訊領域的某些中間模組,其主要功能是對收到的訊息進行處理然後發送,在兩個模組之間充當了一個“橋樑”的作用。由於訊息的條數有多有少,這就對其效能提出了要求。
本文結合作者的實際項目經驗,描述了效能測試的整個過程,並對效能測試過程中的一些常見問題進行了簡單的介紹。
1. 前言
在完成項目新需求的編碼之後,對代碼進行自測以驗證功能的正確性是在所難免的。一般說來,花在測試上面的時間要更多一些。通過對自己所編寫程式的詳細測試,開發人員可以發現設計上、編碼上的不足,及時對程式進行修改,減少了後續修改所帶來的成本的增加。
某些中間模組位於兩個重要模組之間,充當了“橋樑”的作用。它需要對收到的訊息進行處理,並將處理之後的訊息發送出去。訊息的條數有多有少,當訊息條數很大時,就要求中間模組能夠有比較高的效能,不會因為處理不過來而癱瘓掉。因此,對中間模組進行效能測試以驗證其處理大量訊息的能力是很有必要的。
本文對效能測試的整個過程進行了詳細的描述,並對測試過程中的一些注意事項進行了簡單的介紹。
2. 效能測試環境的搭建
2.1 系統結構
一般而言,對於要處理大量訊息的系統,都需要進行效能測試。其通用的系統結構1所示。
圖1 效能測試系統結構圖
1所示,中間模組C需要與模組A和模組B進行訊息的互動。首先由模組A發送訊息到中間模組C,中間模組C按照協議組裝好訊息後,發送到模組B;模組B收到訊息之後,會給中間模組C返回應答訊息,中間模組C再按照協議組裝應答訊息返回給模組A。
由此可見,中間模組C需要處理不同的訊息,當訊息量很大的時候,就對其處理效能提出了要求。
2.2 類比程式的編寫
從圖1可以看出,要對中間模組C進行效能測試,需要類比模組A和模組B的功能。
為了方便操作,一般在自己的工作PC上編寫類比程式來完成簡單的效能測試。如果要想進行大規模的效能測試,需要專門的測試人員和測試環境的配合。
一般而言,可以編寫可視化的操作介面來類比模組A和模組B,這樣方便對訊息進行跟蹤和調試。類比介面的2所示。
圖2 類比介面
2所示,整個操作介面比較簡單,包括“開始測試”按鈕、“退出系統”按鈕、訊息類別按鈕、“發送次數”控制框、“發送間隔”控制框和顯示框等。
“開始測試”按鈕用於控制測試的開始。
“退出系統”按鈕用於控制測試的結束。
訊息類別按鈕用於控制發送訊息的內容。在系統建立起來之後,當選中其中的某項功能並點擊“開始測試”按鈕之後,模組A就會將訊息發送到中間模組C,並接收來自中間模組C的訊息。發送和接收的訊息會顯示在中間的顯示框中。
“發送次數”控制框用於控制訊息的發送條數,這是效能測試最重要的體現。對於某一類訊息,可以逐漸增加該項的取值。
“發送間隔”控制框用於控制訊息的發送間隔。這是為了方便觀察到每條訊息的發送情況,可根據實際情況進行調節。
顯示框用於展示訊息的執行情況,方便跟蹤與調試。
在類比模組A和模組B程式中,最為重要的是要嚴格按照協議來組裝發送的訊息,不僅要保證欄位內容和順序的正確性,還要保證格式的正確性。為了確保發送訊息的準確無誤,可以增加一個設定檔,在該檔案中將訊息配置好。
3. 效能測試的操作過程
效能測試操作過程與程式實際的測試過程沒有什麼兩樣。在測試之前,要保證系統的正常運行、要保證相關設定檔內容的正確性,並確保測試軟體的正確性。
3.1 啟動類比介面
類比程式成功啟動後的介面3所示。
圖3 類比程式成功啟動後的介面
3.2 對單條訊息進行測試
選擇某一個訊息類別,並設定“發送次數”為1,可以看到發送訊息和接收訊息的情況,4所示。
圖4 發送1條訊息成功
通過圖4的顯示框可以驗證程式的功能是否正確。
3.3 對中間模組C進行效能測試
編寫類比程式的一個主要目的就是要對中間模組C進行效能測試,也就是要不間斷地向中間模組C發送多條訊息,看一下其功能是否正常。
例如,選擇某類訊息,並設定“發送次數”為10000,可以看到發送訊息和接收訊息的情況,5所示。
圖5 發送10000條訊息成功
圖5中,類比程式不停地向中間模組C發送訊息,直到發送10000條為止。當訊息發送完之後,可以查看中間模組C處理訊息是否正常,也就是看效能測試是否達到預期的目的。
一般說來,要保證中間模組C能夠承受100000次乃至1000000次以上的效能測試。當某一項功能的效能測試通過之後,還要對該中間模組C涉及到的其它功能進行效能測試,以確保其效能的穩健性。
4. 效能測試常見問題及其解答
在效能測試過程中,常見的問題及解答如下:
1) 為什麼類比程式無法發送訊息?
答:出現這種情況,一般都是配置的問題。在進行效能測試之前,一定要確保各設定檔的正確性,要確保伺服器和用戶端配置的正確性,以及串連連接埠的準確性。串連不通,一般都是由連接埠號碼不對引起的。
2) 為什麼發送過來的訊息解析不對?
答:這一般是由於未按照協議的要求組裝訊息引起的。
3) 為什麼對於有些功能,處理少數幾條訊息的時候不會有什麼問題,而多條訊息時程式就會崩潰?
答:肯定是中間模組C程式有問題,效能測試的目的就是為了發現這類問題。可以對照相關記錄檔來檢查,看程式在哪裡崩潰的。一般說來,通過檢查對應的代碼可以發現問題之所在。
5. 總結
本文主要介紹了對中間模組C進行效能測試的整個過程,並對測試過程中的常見問題進行了描述。
效能測試的主要目的是保證代碼的品質,進而確保產品的品質。開發人員在編寫完代碼之後,一定要對代碼進行充分的測試,以減少後續修改所帶來的麻煩。
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,號:245924426,歡迎關注!)