日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JMeter压测笔记

發布時間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JMeter压测笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

每個資深測試工程師,必須掌握的測試工具,熟練使用Jmeter能大大提高工作效率。熟練使用Jmeter后, 能用Jmeter搞定的事情,你就不會使用LoadRunner了。Jmeter 是一款使用Java開發的,開源免費的,測試工具, 主要用來做功能測試和性能測試(壓力測試/負載測試). 而且用Jmeter 來測試 Restful API, 非常好用。

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? From?Jmeter中文官網

本文是Jmeter操作筆記,

本文是Jmeter操作筆記,

本文是Jmeter操作筆記。

【前文從理論角度對比了lock鎖(Monitor)與讀寫鎖(ReadWriteLockSlim)的差異和使用場景,嘗試用Jmeter對lock、ReadWriteLockSlim壓測】

啟動Jmeter

通過點擊jmeter解壓目錄.\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin\jmeter.bat 啟動jmeter,

上圖有一個默認的測試計劃,沒有任何內容。

線程組

線程組元件是任何測試計劃的開始點,可以配置要模擬的用戶數,所有的任務都是基于線程組。

右鍵單擊(Test Plan)>Add> Threads(Users)>Thread Group, 將添加線程組。

區域一:在采樣失敗后怎么處理?

  • Continue:繼續執行接下來的操作;

  • Start Next Thread Loop:開始下一次循環;

  • Stop Thread:停止線程,退出該線程(不再執行此線程的操作);

  • Stop Test:等待當前執行的采樣器結束后,結束整個測試;

  • Stop Test Now:馬上停止測試;

  • 區域二:線程屬性

  • Number of Threads(users): 線程數,相當于模擬的用戶數量;

  • Ramp-up Period(in seconds): 達到指定線程需要的時間,如果線程數是10, 時間設定為1s, 就是1s內嘗試加載10個線程;

  • 未指定ramp-up period ,也就是說ramp-up period為0,JMeter 將立即建立所有線程。

  • Loop Count:循環次數,如果選擇[Forever]則一直執行下去,直到手動停止。

  • 旁白: ?在某R周期內啟動了N個線程數, 進行了L次這樣的周期測試。
    請求次數= 線程數 * 循環次數

  • Duration:整個壓測的時長

  • 添加采樣器

    此次我們主要測試 [多讀少寫]的場景,故我們添加http請求采樣器。

    在特定線程組右鍵>Add>Sampler>Http Request:

    基本使用方式,一點就通。

    添加偵聽器

    通過偵聽器 監聽采樣結果:線程組右鍵>Add>Listener>[****],

    這里添加幾個有效常見的偵聽器:View Results Tree、Summary Report、Aggregate Report、Aggregate Graph

    壓測過程

    在一個線程組內的線程是依次執行的,我們建立兩個線程組分別測試

    (讀寫比1:1)
    壓測時長:4分鐘每秒嘗試啟動300線程不斷循環
    http://localhost:5000/rwlock?key=aa&value=ss1
    http://localhost:5000/rwlock?key=aa&value=ssss1
    http://localhost:5000/monitorlock?key=aa&value=ss1
    http://localhost:5000/monitorlock?key=aa&value=ssss1


    (讀寫比10:1)

    Label :各個模擬測試的名稱
    Samples :各個測試的樣本總數
    Average :每個請求的平均響應時間
    Median :中值,即50%請求的平均響應時間
    90%Line :90%請求的響應時間
    Min :最小響應時間
    Max :最大的響應時間
    Error% :錯誤響應的概率,即無法響應的概率
    ThroughPut :吞吐量 – 默認情況下表示每秒完成的請求數(Request per Second)。
    KB/Sec :每秒從服務器端接收到的數據量。

    貌似性能基本沒差異,====》 到Stack Overflow走一圈,? ? 類似問題

    https://stackoverflow.com/questions/4217398/when-is-readerwriterlockslim-better-than-a-simple-lock

    There's no contention in this program. The Get and Add methods execute in a few nanoseconds. The odds that multiple threads hit those methods at the exact time are vanishingly small.

    這個壓測中沒有爭用,_dict.TryGetValue 是o(1)的復雜度,速度很塊,多個線程在某時刻命中這個方法的概率極小,整個api代碼塊耗時幾納秒,壓測結果12ms,絕大部分都是在網絡上,?貌似要寫代碼測試了。

    真是一個悲傷的故事,本文最終淪落為#JMeter操作筆記#。

    筒靴們有其他意見或者想法,請留言賜教。??

    源碼地址?https://github.com/zaozaoniao/RWLOCKTest

    ?性感豹紋

    ??多線程環境下,程序真是危機四伏

    ??面試官:平時開發中你用過讀寫鎖嗎?

    ??你管這叫"線程安全"?

    ?面試官:實現一個帶值變更通知能力的Dictionary

    ??如何主動清空.NET數據庫連接池?

    ??.Net線程同步技術解讀

    “贊”“在看”

    體現態度很有必要!

    總結

    以上是生活随笔為你收集整理的JMeter压测笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。