導航:首頁 > 程序命令 > staf命令

staf命令

發布時間:2024-06-01 03:47:01

Ⅰ 分布式系統的分布式系統的測試


· 在測試執行過程中,對測試結果的分析是一個需要進行深入思考的重點問題。分布式系統測試的重點在於對後端伺服器集群的測試,而判定系統中是否存在Bug則是我們需要解決的重要問題。那麼應該如何確定是否存在Bug呢?
對於測試結果的分析,我們通常觀察下面幾種情況。
觀察前端應用的返回結果。這里需要分兩種情況來考慮:第一,按照前端應用業務功能點及流程進行操作,觀察返回結果是否符合業務方的需求預期;第二,操作後端的伺服器(通常是重啟、宕機、斷網等操作),觀察前端應用的返回結果是否符合系統的設計需求。
分析伺服器日誌。在功能測試過程中,當我們在啟動伺服器的時候,需要將日誌級別定義為Debug級別(最低級別)。這樣做的主要目的是為了能便於測試工程師來分析日誌和定位問題。為了能更好地定位問題,常常需要在伺服器程序代碼中進行日誌打樁,把程序中的一些重要數據通過日誌的方式展現出來。通常情況下,我們需要對日誌的格式進行約定,在日誌行中增加一些關鍵字來進行分類,這將便於測試工程師進行日誌分析,也有利於開展分布式系統的自動化測試。另外,值得注意的是,我們盡可能地將打樁代碼放在Debug代碼中,避免影響系統代碼,引入新問題。
分析操作系統的一些重要信息。我們測試的分布式系統絕大多數是基於Linux操作系統開發的,在測試的過程中,除了詳細分析程序日誌以外,還需要對操作系統的一些重要數據信息進行分析,從而來診斷伺服器程序是否存在異常。以Linux操作系統為例,我們常常會使用top命令、netstat命令及sar命令來查看操作系統的一些數據信息。例如,可以通過netstat命令檢查伺服器程序是否正確地監聽了指定的埠等。
藉助其他分析工具。例如,如何判斷伺服器程序是否產生了內存泄漏?通常需要藉助於內存檢測工具來進行分析。在Linux環境下,我們常用Valgrind來進行內存檢測。這是一款非常好用、功能強大的分析工具,可以幫助測試或者開發工程師快速發現很多隱藏的程序Bug,尤其是在內存檢測方面(同時它還具有很多其他優秀的功能,讀者可以自己查看官網中的使用手冊)。 對於分布式系統而言,壓力測試和性能測試非常重要。在進行壓力測試和性能測試的時候,可能會碰到下面一些難點。
數據准備。如何准備海量的測試數據並保證模擬數據的真實性?以一個分布式的文件系統為例,預先存入100GB的數據還是存入100TB的數據、存入的文件是大小基本一致差別不大還是各不相同甚至差異很大(例如,從幾十位元組至幾十兆位元組不等),這些因素對於分布式系統的性能影響是有很大差異的。另外,如果需要預先存入100TB的數據,若按每秒寫入100MB數據來計算,寫入100TB數據需要100×1024×1024/100=1048576秒=291.27小時=12天。我們是否能忍受這么長時間的數據准備工作?為了解決這樣的問題,我們需要對系統架構設計進行深入分析,設計好測試場景,並提前進行測試用例的設計,以盡早開始准備測試數據。
性能或壓力測試工具。通常來說,分布式系統的測試需要開發一些測試工具來滿足性能測試的需求。如果可以的話,建議這樣的測試工具最好由測試工程師自己來實現,因為測試工程師更清楚自己的測試需求。當需要自己開發測試工具的時候,有兩個關鍵問題需要重點關註:第一,一些關鍵數據的收集方式與計算將成為性能測試工具的關鍵,例如,TPS(每秒請求數)、Throughput(吞吐量)計算的准確性;第二,要保證性能測試工具的性能,如果工具本身的性能不好,將無法給予分布式系統足夠強大的壓力來進行測試。另外,當考慮到多並發(例如有10萬客戶端同時並發連接)時,如果性能測試工具在一台測試機器上只能運行50個或者更少的話,那麼需要的測試機器數量也將會很龐大(例如2000台測試機),這個成本或許是許多公司不能承受的。因此,性能測試工具本身的性能必須要足夠好才能滿足需求、降低測試成本。 自動化測試是測試行業發展的必然趨勢,對於分布式系統測試而言也不例外。在實施分布式系統自動化測試的過程中,我們可能會碰到下面兩個難點問題。
涉及平台多且硬體雜,測試流程式控制制困難。在實施自動化測試的過程中,測試腳本需要控制的操作系統和應用程序很多,而且存在跨平台的特性,同時還有可能需要控制一些網路設備。因此,選擇一個優秀的自動化測試框架成為了非常重要的工作之一。以我們的實踐經驗來看,STAF是一個不錯的選擇,它的平台(Windows及Linux各版本)支持及開發語言的支持都很全面。
測試結果驗證復雜。對於分布式系統的自動化測試來說,我們需要通過測試腳本來收集各種測試結果數據以驗證測試結果的正確性。在實施自動化測試的過程中,我們可以將測試結果數據收集部分模塊化,通過各子模塊來檢測各項數據是否正確。例如,我們會設計一個日誌分析模塊,主要負責從伺服器應用程序的日誌中收集相應數據進行對比驗證(本文前面提到的在打樁日誌中增加關鍵字部分就顯得格外重要)。
隨著互聯網的發展,大型分布式系統也越來越多、越來越復雜、越來越重要。如何有效地保證大型分布式系統7×24小時全天候持續穩定地運行也就成為了一個重要課題。

閱讀全文

與staf命令相關的資料

熱點內容
伺服器程序怎麼刪除 瀏覽:655
阿里年薪70萬程序員名單照片 瀏覽:573
android定製輸入法 瀏覽:758
linux下編譯android 瀏覽:311
電影重建文件夾 瀏覽:981
第五人格香香解壓 瀏覽:626
我的世界手機版推薦什麼伺服器 瀏覽:706
安卓怎麼下載空戰 瀏覽:586
程序員賣房入市 瀏覽:117
android視頻播放窗口 瀏覽:288
17元特效的app名字叫什麼 瀏覽:838
小米手機什麼時候配置安卓 瀏覽:262
三種命令方塊 瀏覽:565
hp伺服器怎麼重新做系統 瀏覽:480
電腦與單片機無線 瀏覽:611
雲伺服器錢怎麼提現 瀏覽:878
華為運動app怎麼退出登錄 瀏覽:796
程序員那麼可愛陸漓金句 瀏覽:879
java如何將自己電腦設置成伺服器 瀏覽:859
域名怎麼制定伺服器8080埠 瀏覽:667