今天和同事交流關於
效能測試
的東西,以前也做過效能測試,突然想寫點自己關於如何做效能測試的認識。
基於b/s架構的系統,利用loadrunner做效能測試,利用nmon監控系統資源(用linux自帶的top,vmstat等命令也可以,寫一些簡單的
shell
指令碼就行了)。
那麼到底該怎麼去做效能測試呢?
1、首先要了解被測系統的結構和有關知識的儲備。
了解了被測系統,在後期效能出現異常的時候,定位就相對容易一些;而且知道在測試的過程中需要監控什麼。
乙個簡單b\s系統結構圖:
該系統有一下及部分組成:
web和應用伺服器
memcached:負責做資料快取
lucene:負責做搜尋
rabbitmq:負責某些業務的佇列處理
mysql:
資料庫伺服器,乙個主庫,乙個從庫
從以上系統結構來看,要搭建和維護效能測試環境,需要的一些必要的知識。
對於memcached:怎麼搭建memcached,怎麼檢視命中率,memcached的作用是什麼
lucene:這個lucene是幹什麼用的,要怎麼配置
rabbitmq:mq要如何配置,都那些業務用到了mq。
mysql:如何配置主從,為什麼要配置主從,主從如何同步等等
在搭建環境的過程中肯定會遇到這樣或那樣的問題,要自己找資料,或者相關的開發人員一起解決,並注意做筆記,防止以後同樣的問題再出現。
2、了解了系統結構,開始搭建測試環境,並準備資料。
測試環境盡量要和生產環境的結構保持一致,還有配置檔案等也要保持一致,這樣能保證效能測試的結果更加真實和接近生產環境。
資料準備一定要充足,而且資料量要大於等於生產環境,這樣能更真實的模擬生產環境。比如對乙個select語句而言,10w的資料,和1000w的資料,查詢時間肯定有差別。如果資料量太小就不能反映真實情況下效能了。(可以把線上的資料匯入到測試環境,但是要注意把使用者比較隱私的資料都替換掉)
如果有可能的話,測試環境的資料要比生產環境多出20%,做一些效能上邊的冗餘,防止發生突然的效能尖峰。
3、了解需求,找出測試點
和產品、技術溝通需要做效能測試的業務;並了解相應的業務的效能指標,如頁面的響應時間,tps(事物處理)或者系統期望能承受多少併發等。
4、設計效能能測試用例
根據業務編寫相應的效能測試用例。
目的方法
採用loadrunner的錄製工具錄製乙個郵件傳送過程,然後對指令碼進行優化,加上事物點,檢查點等。過程中監視b端的響應,還有網路傳輸,web服務和資料庫伺服器的效能,並觀察伺服器相應服務的日誌,檢查mq的狀態,memcached伺服器的狀態和效能
預期結果
符合業務的預期,日誌木有異常等(不詳細列舉)
5、編寫並優化指令碼
根據測試用例錄製發帖的指令碼,加入事物點、檢查點、引數化,並回放,確保指令碼沒有問題,可以正常執行。
6、設計效能測試場景
設定乙個漸進的場景10-30-60-100-150-200,這麼做的目的防止一下子上去就是200個併發,出了問題,不知道系統最佳的併發是多少。
(上邊的漸進場景不一定合理,只做示意)
7、啟動監控,並開始跑效能測試場景
設定場景完畢後,開始在伺服器端啟動監控,然後開始啟動場景。
8、監控場景執行,監控伺服器的資源
loadrunner可以蒐集一些效能測試資料,事物的pass數,fail數,error數,都要做統計。
監控伺服器的資源,可以利用nmon,也可以是用linux自帶的命令top,vmstat等。
也要監控伺服器的日誌輸出,看是否有異常出現。例如:檢視mysql的慢日誌,nginx的日誌等。
9、蒐集結果資料,分析**
最後對效能測試蒐集的資料進行分析,找出效能測試的拐點。
10、對系統進行優化,並重複7-9步,直至測試結束
ps:效能測試不是乙個人的事情,中間設計了,開發,產品,運維,qa,dba,要大家共同協作,才能做好效能測試。
限於水平有限,用疏漏之處,多多包涵。
效能測試應該怎麼做?
比如路透的定義 99.9 的響應時間必需在1ms之內,平均響應時間在1ms以內,100 的請求成功。測試用的資料,需要有大中小各種尺寸的資料,並可以混合。最好使用生產線上的測試資料。然後收集cpu,記憶體,硬碟 網路io,等指標,檢視系統是否穩定,比如,cpu是平穩的,記憶體使用也是平穩的。那麼,這...
效能測試分析怎麼做
效能測試旨在確定系統的效能以衡量效能問題,驗證系統的效能質量屬性,例如在各種負載條件下的響應性,速度,可伸縮性,穩定性.在混合負載條件下對系統進行了測試,並檢查了系統在各種工作負載下響應所需的時間。軟體效能測試涉及對被測應用程式的測試,以確保應用程式在各種負載條件下都能按預期工作。效能測試的目標不僅...
如何做效能測試怎麼做的
做效能需求分析,挑選了使用者使用最頻繁的功能來做效能測試,比如 登陸,開啟系統首頁,搜尋,提交訂單,確定效能指標,比如 事務通過率為100 90 的事務響應時間不超過3秒,cpu和記憶體的使用率為70 以下。搭建效能測試環境,準備好效能測試資料。使用jmeter開發優化指令碼,包括 引數化,斷言,關...