這篇文章想跟大家分享關於Web性能測試的一些知識點。在分享之前,先跟大家分享一組數據,關於為什么要做性能測試?具體如下:
71%用戶希望在手機上打開網頁能跟電腦一樣快;
5秒鍾被認為是用戶能忍受的最長響應時間,如果響應時間超過5秒,50%的移動用戶會放棄;
33%失望的用戶會使用競品替代;
用戶嘗試三次出現同樣性能問題,50%的人不會再使用該應用。
基於此,我們今天就一起來探討一下Web性能測試測試點。(寫的略粗糙,歡迎大家留言吐槽。)
1、什么是Web性能測試?注意事項有哪些?
性能測試,簡而言之就是模仿用戶對一個系統進行大批量的操作,得出系統各項性能指標和性能瓶頸,並從中發現存在的問題,通過多方協助調優的過程。而Web端的性能測試應該注意的指標有:用戶操作的響應時間、系統的吞吐量(TPS)、系統的硬件資源情況(CPU、硬盤、磁盤)、網絡資源占用情況等。
2、HTTP請求
1)關於性能測試中,HTTP請求類的性能指標都需要我們去關注些什么?
響應時間,這里的響應時間一定得是前端+后端的響應時間,我們慣性的思維都是只關注后端服務的響應時間,其實前端的響應時間也是須考慮在內的。
並發測試的相應數據,這部分也得考慮前端數據,這只是一個大概的補充,因為具體的系統需要的數據不一樣,其中也不乏包括響應時間。
2)前端的響應時間都涉及到哪些環節呢?
DNS解析
各種請求的連接
TLS的建立
字節流的發送
3)后端響應時間
等待(前端請求)
接收信息流
返回響應數據
這其實就是一個比較完整的Web端請求所需要的環節,而響應時間就是指的這個請求的過程所花費的時間。這部分時間就是一個用戶在操作的時候所等待的時間,所以用戶所能接受的時間范圍恰好是性能測試所關注的時間范圍。通常用戶所能接受的系統響應時間是3-5s,若大於這個時間節點,將會使用戶失去耐心,取消對系統的操作。
3、Web性能測試工具
(1)Jmeter
Jmeter屬於一個非常實用的測試工具,在性能測試當中也占有一個非常重要的位置。通常jmeter在性能測試過程中,涉及到的基本是直接對接的后端服務,針對前端的響應基本不會涉及,所以用jmeter來對一個Web系統進行性能測試時,很難去捕獲到前端的響應數據。但是后端響應數據獲取起來非常的便捷,其中就包括:並發數、平均響應時間、錯誤率、吞吐量等等,如下圖:
那么,關於前端的響應數據,我們該用什么方法去獲取呢?接下來講的一種方法,就是利用LR來進行。
(2)Loadrunner
Loadrunner則是屬於企業軟件,這就奠定了它功能繁多,用途廣泛的基礎。LR算是一個大型的性能測試工具了,但是平常使用也還是其基本的一些功能。
LR在用戶界面交互上進行了注重,也就是我們之前提到的前端的響應數據,利用LR能夠彌補jmeter無法涉及到的前端響應時間這部分,通過更接近用戶對界面的交互,得出前端發起請求到請求發送到后台服務這個過程的響應時間。所以,這前后端兩部分的響應時間之和,就是我們基本能夠判定一個系統真正響應時間的依據。
4、Web性能測試之響應時間
結合以上提及到的響應時間,它所涉及到的有兩個部分,一是前端,二是后端:
5、關於整體系統壓測策略
那提及到系統壓測的策略,其實是想提一下怎樣去利用單節點和集群這兩種方案。通常的壓測,都是采用的單節點來進行的,這樣“以小見大”的方法不為一個不可采取的方法,但是這其中還是會造成很多的誤差。還有就是,單節點的壓測容易壓低整個系統的性能指標,因為無法充分的利用系統資源。
而集群壓測,在環境部署上是一個復雜點,但是能夠充分利用系統已有資源,這樣得出的數據能夠更加真實有效。在有過量的時間時,可以講單節點和集群的壓測數據進行對比,這樣就能發現其中存在的差異。
6、關於性能測試日志
性能測試中,日志是非常能夠反應出測試工作中問題所在的一個環節,通過查看日志來定位問題是一個繁雜但是極為可靠的方式。
此類測試中,都會涉及到哪些日志呢?
Jmeter端日志
HTTP端打到Nginx端的日志,這層會涉及到來源IP、請求地址、響應時間等。
Tomcat層日志
Server層日志
7、關於OS層數據監控
CPU監控,通常的指標是CPU使用率不能超過80%,這樣給系統預留一個緩沖的范圍。這里提及一點,就是其中涉及到多核CPU的情況,嚴謹的人會去關注每核CPU的使用情況,因為很多時候多核CPU的利用並不是均衡的,整體的CPU使用情況不能反映出單核的使用情況,容易造成誤導。
JVM層監控,這主要是去監控線程,其中包含單線程、多線程,同步線程、異步線程。關於同步線程和異步線程,是一個系統中比較關注的點,假如:一個系統處理事務時,采用的是同步線程,很多事務會等待處理造成阻塞,那么這樣的系統處理速度就會受到很大的限制,會被視為一個不合格的系統。
原文作者:網絡
原出處:網絡
轉載聲明:以上內容與圖片均來源於網絡,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。本文僅作為交流使用,不涉及商用.