(六)簡單編寫性能腳本

HTTP 是通過 Socket 來使用 TCP 的,Socket 做爲套接層 API,它本身不是協議,只規定了 API。

通常在JMeter 中寫 TCP 腳本,就是直接調用 Socket 層的 API。TCP 腳本和 HTTP 腳本最大的區別就是,TCP腳本中發送和接收的內容完全取決於 Socket server 是怎麼處理的,並沒有通用的規則。

在這裏插入圖片描述

一.編寫Jmeter腳本

  • 創建線程組
    在這裏插入圖片描述

    • Number of Threads(users):我們都知道這是 JMeter 中的線程數,也可以稱之爲用戶數
    • Ramp-up Period(in seconds):遞增時間,以秒爲單位。指的就是上面配置的線程數將在多長時間內會全部遞增完。如果我們配置了 100 線程,這裏配置爲 10 秒,那麼就是 100/(10s*1000ms)=1 線程 /100ms;需要注意的是,在 10 線程啓動的這個階段中,對服務器的壓力是一樣的。如圖:
      在這裏插入圖片描述
    • Loop Count :這個值指的是一個線程中腳本迭代的次數
    • Delay Thread creation until needed:這裏有一個默認的知識點,那就是 JMeter 所有的線程是一開始就創建完成的,只是遞增的時候會按照上面的規則遞增。如果選擇了這個選項,則不會在一開始創建所有線程,只有在需要時纔會創建。 如果不選擇,在啓動場景時,JMeter 會用更多的 CPU 來創建線程,它會影響前面的一些請求的響應時間。 如果選擇了的話,就會在使用時再創建,CPU 消耗會平均一些,但是這時會有另一個隱患,就是會稍微影響正在跑的線程。這個選項,選擇與否,取決於壓力機在執行過程中,它能產生多大的影響。如果你的線程數很多,一旦啓動,壓力機的 CPU 都被消耗在創建線程上了,那就可以考慮選擇它,否則,可以不選擇。
    • Scheduler Configuration:舉例來說,如果設置了 Loop Count 爲 100,而響應時間是 0.1 秒,那麼 Loop Count * iteration duration(這個就是響應時間) = 100 * 0.1 = 10秒。 即便設置了 Scheduler 的 Duration 爲 100 秒,線程仍然會以 10 秒爲結束點。 如果沒有設置 Scheduler 的 Duration,那麼你會看到,在 JMeter 運行到 10 秒時,控制檯中會出現如下信息:
        INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-10
  • 創建HTTP Sampler
    在這裏插入圖片描述
  • 可以通過Method選擇方法類型
  • 手工編寫 HTTP 腳本時,要注意以下幾點:
    • 要知道請求的類型,我們選擇的類型和後端接口的實現類型要是一致的
    • 業務的成功要有明確的業務判斷
    • 判斷問題時,請求的邏輯路徑要清晰
  • 編寫TCP腳本

    • 創建TCP Sampler
      在這裏插入圖片描述
    • 輸入配置和要發送的消息
      在這裏插入圖片描述
  • 相應斷言

    • 定義: 斷言指的就是服務器端有一個業務成功的標識,會傳遞給客戶端,客戶端判斷是否正常接收到了這個標識的過程。
      在這裏插入圖片描述
  • 長短鏈接

    • 長短連接的選擇取決於業務的需要,如果必須用短鏈接,那可能就需要更多的 CPU 來支撐;要是長連接,就需要更多的內存來支撐(用以保存 TCP 連接)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章