1.定義
一般來說,所謂性能測試,其實就是驗證軟體系統的性能可以滿足需求規格給定的名額要求。
性能測試其實是一個比較大的範疇,還可以進一步延伸出負載測試、壓力測試、穩定性測試這樣一些延伸的概念。
負載測試:
指的是在測試過程中來逐漸地增加負載,并且記下被測系統相應的一個性能表現,最終确定出我們系統在正常的名額範圍下的一個最大的負載。
壓力測試:
測試系統在極限情況下的壓力情況,也就是要确定系統在什麼樣的負載壓力下會導緻系統的失效,不能夠正常運作,确定出系統所能承受的一個最大的極限。
穩定性測試:
一般是以稍大于正常業務量的負載,對系統進行持續的,長時間的測試,比如24x5,連續5天對系統施加壓力,以确定系統在較長運作時間内系統的穩定性的情況。
2.性能測試名額
在做性能測試時,都是通過判斷一些性能名額來判斷測試結果。
特别是對于web應用來說,主要的參考名額一般有:
并發使用者數VU:同一時間有多少個使用者同時對系統進行通路,或者并發的請求數
每秒事務數TPS:每秒鐘系統能夠處理多少業務,對業務處理能力的名額
系統的響應時間:一個請求過來,系統處理完所耗費的時間
裝置性能:運作系統的伺服器,它的相關的一些資源的性能,比如CPU,記憶體的使用,磁盤I/O的情況,網絡I/O的情況。
這些都是非常重要的性能名額。測試過程中,對這些名額的判斷和分析是非常重要的,這也正是做性能測試的一個難點。通過性能名額來判斷出系統的性能問題,不同的性能名額資料所反映出的系統狀況,都需要相當的知識積累和測試經驗。
3.性能測試工具
人工測試是無法完成性能測試的。
常用的性能測試工具如下:
LoadRunner:國内普及率很高的一個性能測試工具,也是Mercury公司的一個強大産品,和QTP是一個公司的産品。
Silkperformer:Boraland公司的性能測試工具。
Jmeter:基于Java,開源的,優秀的性能測試工具。
WebLoad:
Apache Bench:Apache提供的一個非常小巧的負載生成工具,一般我們的nulix系統都是自帶的。
LoadUI:針對http類接口類的性能測試。比如webservice,soap消息,rest接口。
性能測試,除了一般意義上的基于負載的測試之外,針對web類應用,特别是面向大衆使用者的web應用,因為web頁面的通路性能,直接影響到使用者的體驗,是以有一個測試的重點,就是頁面的靜态性能評估。
是以靜态性能評估也是一種靜态測試的方法。它是通過分析頁面的代碼來評估出頁面的性能情況。
業界主要有YSlow和PageSpeed這兩種評估的标準。
YSlow:Yahoo公司提出的
PageSpeed:Google的
他們評估的标準和實作的内容是比較相似的。都是浏覽器的插件,通過浏覽器就可以比較友善地進行測試。
以Chrome浏覽器為例,打開Chrome浏覽器,在Chrome的擴充程式中,安裝YSlow和PageSpeed。
使用方法如下:
比如,通路百度首頁,在頁面右上角可以看到安裝的插件,點選YSlow。
點選“Run Test”按鈕。就會對網站的頁面進行靜态的分析,并對網站給出一個評估的分數和級别。
級别一般會分為A、B、C、D、E、F共六級,那麼可以看到YSlow對百度的評級是B級,得分是90分。
評估标準總共有23條。
- 盡量減少http的請求。如果頁面上http請求比較多,會導緻性能差。
- 使用CDN。頁面有沒有使用CDN内容分發網絡,對頁面的性能也是有很大的影響。
- 避免空的src和href的編碼。因為這個在浏覽器渲染的時候,會影響頁面通路的性能。
- 為檔案頭指定過期标簽。
- 有沒有使用gzip對檔案進行壓縮。
- 将CCS這種代碼盡量放在頁面代碼的頂部。
- 将JS這種腳本盡量放在頁面的底部。
- 在使用CSS樣式表時,盡量的避免使用CSS表達式的使用。
- 在使用JS和CSS樣式表時,盡量地使用外部檔案。這樣就可以進行緩存。
- 減少DNS的查找次數。
- 精簡JS和CSS樣式表。
- 避免URL的跳轉。特别是對于'\',url會進行一個轉義,這樣都會消耗性能。
- 删除重複的JS和CSS的腳本。
- 配置ETags。用ETag可以比較好地提升性能。
- 使AJAX有緩存,可以加快響應。
- 使用GET方式來完成AJAX請求。
- 減少DOM元素的數量。
- 避免404錯誤。不僅影響使用者體驗,還浪費伺服器資源。
- 減少cookie大小。
- 使用沒有cookie的域。
- 避免濾鍵的使用。在低版本的IE浏覽器中,會導緻比較大的性能問題。
- 在HTML中,不要使用縮放圖檔這樣的方式來處理我們的圖檔。
- 浏覽器上的小圖示,盡量地使它的檔案大小變小,而且檔案要是可以緩存的。
這是YSLOW針對頁面靜态優化的23條實踐。
YSLOW 把它以插件的形式,作為一個工具給發出來,進而能夠很友善地對頁面進行性能評估。
Pagespeed:
Chrome中安裝好之後,在更多工具>開發者工具中,在工具欄中有一個pagespeed的選項,點選“START ANALYSING”,會對頁面進行相應的分析,并給出相應的名額和具體的說明。
4.應用性能管理(APM)
做性能測試,或者運作外部産品的時候,還有一個和性能相關的概念,APM。
來作為産品營運時的一個參考,這些性能監控的名額,對于做性能測試,是很重要的參考。國内來說,像聽雲,OneAPM推出的APM産品都是比較好的。
轉載自:https://www.cnblogs.com/sophia194910/p/6434595.html