再次系統的整理一下深入一下性能測試
一,查看結果樹
二,聚合報告
Label:
就是請求名稱
Samples:
總線程數,值 = 線程數 * 循環次數
Average:
單個請求的平均響應時間,單位是毫秒,值 = 總運行時間 / 發送到服務器的總請求數,
比如運行一次,時間4毫秒,就是4/1 = 4
Median、90%line、95%line、99%line
分別代表50%的用戶響應時間、90%的用戶響應時間、95%的用戶響應時間、99%的用戶響應時間,也就是有百分之多少的請求小於這個值。其中,90%line是性能測試中比較重要的一個衡量指標。
Min,Max,Error%:
Min:最小響應時間,單位是毫秒
Max:最大響應時間,單位是毫秒
Error%:錯誤率,發生錯誤的請求 / 總請求數
Throughput:
吞吐量,表示每秒完成的請求數。這是一個重點
比如這是5個線程跑的結果,
含義
這個重點理解一下,比如192/s
就是說按照這個性能,一秒可以處理192個請求,
計算
是怎么算出來的:是使用1000/平均值*線程數,
- 第一步,我們知道了平均值是25毫秒,
- 第二步:那么一秒之內可以處理多少個呢,就是1000/平均值,這就是一秒可以處理這樣的請求多少個,
為什么是1000,因為我們平均值是毫秒, - 第三步:我們是5個線程運行的,所以是1000/25*5 = 200
注意
- 1,吞吐量差不多,但是統計有差異,因為jmeter的取樣是有時間延遲的,不是最新的,
- 2,注意這個吞吐量,我們再實際測試的時候,不能使用圖形化界面,因為這個界面也會消耗一些資源的,
測試計划就是xml格式的文件,
/jmeter .sh -n -t 文件名.jmx -l 文件名.jtl
這種方式會30秒刷新一次報告,就是聚合報告的幾個字段,
並發和tps的關系
並發增加,tps是上升的,但是並發一直增加到一個臨界值,tps就不會變大了,如果並發再大,就還是有error了,所以是一個先上升,然后不變,然后報錯的關系,
比如一個場景:
你啟動python服務,然后用5個並發執行,吞吐量是200/s
當你加並發數到6的時候,會出現error,所以並發5個就是一個臨界點了,超過這個就會報錯了,tps是200,就是一秒
對比性能
可以使用python啟動一個服務,
然后使用docker 運行一個Nginx啟動一個服務,然后看看性能是否有提升,可以訪問Nginx的靜態網頁,
nginx可用來做:靜態HTTP服務器、反向代理服務器、負載均衡、虛擬主機、郵件代理服務器。
這樣就可以看到Nginx部署之后的性能提升情況,
經過測試很明顯,Nginx的處理性能,比純python的要好多了,因為Nginx是一個專業的靜態資源web服務器