Jmeter與壓測相關概念

相關概念

RT(response time)

什麼是RT? RT就是指系統在接收到請求和做出相應這段時間跨度

但是值得一提的是RT的值越高,並不真的就能說明我們的系統的吞吐量就很高, 比如說,如果存在數據在網絡中傳輸時出現了丟包的現象,傳輸的數據少了,速度就會增加, 但是這是事故,不是說我們的系統吞吐量高

此外,對不同的系統來說衡量的標準也不一樣,對一個遊戲軟件來說,響應時間也就是常說的延遲. 在100ms以內,遊戲體驗感會很好,飆升到幾秒鐘,乾脆就不要玩了, 但是對一個編譯系統來說,編譯一套源代碼可能好幾十分鐘,人們也願意等

java應用程序中的GC也會導致系統的總體RT飆升

Throughput 吞吐量

什麼是吐吞量呢? 百度百科: 廣義的吞吐量是: 單位時間內成功的傳輸數據的數量, 在我們進行壓力測試得出的結果中, 可以將吞吐量理解成系統在單位時間內成功處理的請求的數量

一個系統的吞吐量和request對CPU的消耗,外部的接口以及IO等因素緊密相關,

比如一個web應用代碼寫的再漂亮,但是每次請求都會去查詢數據庫,併發數上來后,數據庫就會佔用大量的CPU負載,系統的IO飆升,甚至可能導致其他軟件不得不等待mysql先執行完才能搶到CPU的時間分片. 系統的瓶頸積壓到mysql這裏,這個web應用的吞吐量一定不會很高

此外,一般我們都是這樣描述吞吐量: 在併發數為xxx時,系統的吐吞量為yyy

併發用戶數

它指的是系統可以承載的, 可以同時正常使用網站的用戶數量, 這個指標似乎看起來可以比吞吐量更加直觀反應系統的性能, 但是往往系統中的用戶又有不同的行為, 比如未註冊的, 在線的, 同時發送請求的等等, 簡而言之, 可以考慮用在線的用戶和同時發送請求的用戶數作為性能指標, 把在線的用戶當成性能指標更直觀, 把同時發送請求的用戶數量當成性能指標更準確

QPS (query per seconds)

每秒的查詢率, 用來權衡服務器在規定的時間內處理的流量數

計算公式: QPS = req / sec , 即平均每秒的請求量

TPS (transition per seconds)

TPS (transaction per second)代表每秒執行的事務數量,可基於測試周期內完成的事務數量計算得出。例如,用戶每分鐘執行6個事務,TPS為6 / 60s = 0.10 TPS。同時我們會知道事務的響應時間(或節拍),以此例,60秒完成6個事務也同時代表每個事務的響應時間或節拍為10秒

PV和UV

PV訪問量 (Page View) 每打開一次頁面或者刷新一次頁面 pv+1, 它反應的的網站的頁面被訪問的次數

UV訪問數(Unique Visitor) 即, 獨立訪客的訪問數, 換句話就是一台電腦算一個訪客,

  • 通過QPS估算PV

公式1 : pv = QPS*3600*6

公式2: pv = QPS*3600*8

  • 根據QPS,PV估算服務器的數量

服務器的數量= 每天的總PV / 單台服務器的PV

原理: 每天80%的訪問集中在了當前的20%的時間段, 這20%的時間就叫做峰值時間

峰值時間段 QPS = 總pv數*0.8 / 每天的秒數*0.2

Jmeter

jmeter能做什麼?

Jmeter也是apache的頂級項目, 通過jmeter我們可以測試靜態和動態資源,web動態應用程序的性能, 還可以用來模擬服務器,服務器中,網絡或者對象上的高負載, 測試他們的強度,以及不同負載下的總體性能

使用環境: Windows

使用的思路: 在jmeter提供的可視化頁面中,添加一個一個的指定的模塊. 對我們的web項目中指定的接口進行壓力測試,當然它不僅僅使用於發送http請求測試web項目的資源接口

添加什麼模塊呢?

  • 線程組: 也就是啟動多少條線程對系統壓測, 線程是否併發的啟動
  • http的默認參數: 比如protocol host port 等等
  • 添加請求的參數/請求體/cookie等信息
  • 添加監聽器來显示壓測結果

實例:

添加線程組,每輪同時啟動1000條線程對系統進行壓測,重複1輪

添加默認使用的請求參數, 這個默認的請求參數並不要求強制添加,只是為了以後在具體的某個http請求壓測模塊不寫請求參數時,使用這裏面的默認參數

配置信息如下:

添加一個sample, 這個sample其實就是http請求, 一個具體的http請求, 用大白話說 ,我們想壓測系統中的登錄方法,就添加一個登錄sample, 想壓測系統中拉取個人信息的方法, 就添加一個 個人信息sample

sample詳細配置

可以看到上圖中我們可以添加request Param request body, 上傳文件, 甚至可以添加一個模塊添加請求的cookie模塊

添加Listenner, 選擇聚合報告 ,開始壓測得到下面的結果,我們關注圖中的吞吐量

支持使用配置文件中的數據當成壓測的參數, 使用場景: 通過這個配置文件的配置,我們可以模擬出多用戶併發訪問系統的場景,下面配置中的每一行都是一個用戶的信息,jmeter會自動讀取這個配置文件中的每一行,使用這裏面的信息進行壓力測試,直到達到了用戶指定的請求量才結束

編寫配置文件

導入配置文件

使用配置文件,詳細的配置細節我都標在了圖片中

發送請求

使用環境: linux

第一步: 在window上錄好 XXX.jmx 文件

第二步: 啟動

sh jmeter.sh -n -t XXX.jmx -l result.jtl

第三步:將result.jtl導回到window上的jmeter中在可視化頁面中查看結果

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

您可能也會喜歡…