轉載
原文地址:https://blog.csdn.net/x83853684/article/details/80403190
性能測試專有名詞詳見:https://www.cnblogs.com/liyuanhong/articles/10382745.html
在網上收集了很多jmeter工具做性能測試,但還是不怎么了解去分析性能測試的結果,然后自己用現在做的項目做了一個簡單的的壓力測試,就是同一時間多個用戶進行並發訪問該頁面,然后對結果做了一些簡單的分析:
一、用百度的網頁測試200個用戶在10秒之內同時訪問百度的網頁,每個用戶只訪問一次:www.baidu.com
1、首先點擊測試計划,右鍵,添加線程組,如圖:

線程組頁面如圖:

線程數:就是模仿用戶並發的數量,Ramp-up:運行線程的總時間,單位是秒,循環次數:就是每個線程循環多少次。
我現在的線程數是200,就是相當於有200個用戶,運行線程的總時間是10秒。也就是說在這10秒中之內200個用戶同時訪問,一秒鍾有20個用戶同時訪問,每個用戶循環一次,也就是訪問一次。
2、點擊測試計划,右鍵添加HTTP請求的默認值:如圖

HTTP請求默認值界面:
協議:web的請求頭是什么就是什么,這里拿百度做參考,輸入https,服務器或IP:就輸入百度的地址就可以了
3、添加HTTP請求,鼠標右鍵點擊線程組,添加HTTP請求:

HTTP頁面:

協議和ip地址可以不用輸入,因為在HTTP的默認值我們已經添加了,這里只需要在路徑加/表示是在根目錄,不填寫IP地址就使用的默認的。
4、添加聚合報告,查看結果樹,用表格查看結果,右鍵點擊線程,添加監聽器,如圖:

下面就可以通過這三者進行分析:
查看結果樹:

通過察看結果樹,我們可以看到每個請求的結果,其中紅色的是出錯的請求,綠色的為通過。
Thread Name:線程組名稱
Sample Start: 啟動開始時間
Load time:加載時長
Latency:等待時長
Size in bytes:發送的數據總大小
Headers size in bytes:發送數據的其余部分大小
Sample Count:發送統計
Error Count:交互錯誤統計
Response code:返回碼
Response message:返回信息
Response headers:返回的頭部信息
這里綠色的就說明請求是通過的,返回值是200,如果出現紅色的×就說明請求失敗,這時候可以通過右邊的取樣器結果和響應數據來查看結果。
聚合報告分析:

這里可以看到很多數據,相關名詞解釋如下:
Sample:本次測試場景共運行多少線程;
Average:平均響應時間;
Median:統計意義上的響應時間中值;
90% line:所有線程中90%的線程響應時間都小於xx的值;
Min:響應最小時間;
Max:響應最大時間;
Error:出錯率;
Throughput - 吞吐量以“requests/second、requests /minute、 requests /hour”來衡量。 時間單位已經被選取為second,所以,顯示速率至少是1.0,即每秒1個請求。 當吞吐量被保存到CVS文件時,采用的是requests/second,所以30.0 requests/second 在CVS中被保存為0.5
Kb/sec - 以Kilobytes/seond來衡量的吞吐量
200個用戶在10秒中同時訪問百度的頁面,平均響應時間是85毫秒,最大的響應時間841毫秒,最小的響應時間是37毫秒,錯誤率為0,說明百度網頁 的性能還是不錯的,每個頁面都能很快的得到響應,不用1秒鍾。
用表格查看結果:

名詞解釋如下:
Sample:每個請求的序號
Start Time:每個請求開始時間
Thread Name:每個線程的名稱
Label:Http請求名稱
Sample Time:每個請求所花時間,單位毫秒
Status:請求狀態,如果為勾則表示成功,如果為叉表示失敗。
Bytes:請求的字節數
樣本數目:也就是上面所說的請求個數,成功的情況下等於你設定的並發數目乘以循環次數
平均:每個線程請求的平均時間
最新樣本:表示服務器響應最后一個請求的時間
偏離:服務器響應時間變化、離散程度測量值的大小,或者,換句話說,就是數據的分布。
在這里面可以看到,線程組名稱,每個線程響應時間,返回結果是否成功,字節數等。
如何只清楚部分數據:
點擊左邊要清楚的選項,比如,清楚上一次百度頁面測試的聚合報告,點擊聚合報,然后點擊工具欄的掃把圖標即可,這個只是清楚你選擇的內容。
如果要清楚整個線程的結果數據,就直接選擇該線程組,點擊有兩把掃把的圖標即可。
二、用淘寶的頁面來測試200個用戶在10秒鍾之內同時訪問該網址:www.taobao.com
可以重新走上面的步驟,在建一個線程組,也可以直接把聚合報告結果清楚掉,把IP地址更換成淘寶地址,然后運行即可。
200個用戶在10秒中同時訪問淘寶的網頁,得到的聚合報告結果如下:

平均的響應時間是283毫秒,最大的響應時間是547毫秒,最小的響應時間是246毫秒,錯誤率為0,比百度的網頁的響應時間要快點。
三、用公司目前做的項目做了一個壓力測試,同樣是200用戶在10秒中之內訪問該網頁,得到結果如下:

平均的響應時間是16754毫秒也就相當於是16秒,最大的響應時間是47秒,最小的響應時間是564毫秒。
從百度,淘寶,公司項目來做比較,我們公司項目的性能還是有待提高,同樣是200個用戶在10秒鍾之內訪問,雖然都得到了響應,但是等待的時間很長。
然后從這三者在增加線程數去做比較,增加到500個用戶10秒鍾之內同時訪問:

公司的項目最大響應時間是122秒,最小響應時間是542毫秒,且有百分之14.14的錯誤率,也就是說500個用戶是有用戶請求響應是失敗的,然后我們從查看結果樹可以看出響應數據:

看來,公司的項目性能有待提高呀。
百度,淘寶,等網址我就不測了,都是一樣的測法,然后根據聚合報告去分析。以上是個人總結的壓力測試,這只是簡單的一個同時訪問的網頁的性能。
