天天看點

【軟體測試基礎】性能測試

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

繼續閱讀