天天看點

大話JMeter(一),帶你了解JMter的基礎用法

性能測試

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

所謂的性能測試要在功能測試之後。

  • 功能測試:關注能不能用
  • 性能測試:關注好不好用

常見的性能關注點有:

  • 接口響應時間:50毫秒 ~ 1000毫秒
  • 吞吐量:1000萬每天,2000萬每天 ......10億每天
  • TPS:Transaction Per Second 事務處理能力,每秒處理事物數(打開頁面、登入、選擇商品、加入購物車、下單、付款)

注意:“日活”每日活躍使用者數,是個營運資料,跟性能沒有必然關聯性

Jemter是什麼?

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

用更準确的話說,壓力測試包括:

  • Spike testing:短時間的極端負載測試
  • Extreme testing:在過量使用者下的負載測試
  • Hammer testing:連續執行所有能做的操作
    大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

開源免費隻是衆多優點之一,jmeter有以下幾個優點:

  • 開源免費,基于Java編寫,可內建到其他系統可拓展各個功能插件
  • 支援接口測試,壓力測試等多種功能,支援錄制回放,入門簡單
  • 相較于自己編寫架構或其他開源工具,有較為完善的UI界面,便于接口調試
  • 多平台支援,可在Linux,Windows,Mac上運作

官網:

https://jmeter.apache.org/

下載下傳:binary可運作檔案包

大話JMeter(一),帶你了解JMter的基礎用法

->貼心提醒:

->官網下載下傳規律:

->首頁 -> Download -> 版本号 -> binaries,因為binaries代表已經編譯完,source是還未編譯的源碼。

JMeter包含哪些功能子產品

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

主要功能子產品

  • 取樣器:進行腳本邏輯控制。
  • 線程組:壓測場景控制。
  • 螢幕:監控壓測運作,擷取性能名額。

錄制

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

步驟一:

  • 打開 JMeter
  • 添加 “HTTP(S) Test Script Recorder”
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

步驟二:

添加“Thread Group”

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

步驟三:

在 Thread Group中添加“Recording Controller”

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

在jmeter中設定端口,你可以打開 HTTP(S) Test Script Recorder:比如設定 Port = 8088與此同時,你也可以指定錄制儲存到哪個controller 比如設定 Target Controller = Test Plan > Tread Group > Recording Controller

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

設定浏覽器端口,你要打開浏覽器,将浏覽器的代理伺服器位址指向

http://localhost:8088
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

開始錄制:單擊HTTP(S) Test Script Recorder中的Start按鈕,打開代理

單擊彈框中的确定按鈕

JMeter的錄制代理将會開啟

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

Test Script Recoder下找到Requests Filtering 添加“include”與 “Exclude”URL 正則比對表達式

Include:..(baidu.com).

Exclude:..(js|css|PNG|jpg|ico|png|gif).3233d7.png)

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

當我們錄制完畢,你可以添加result tree看請求和響應的細節:添加 View Results Tree

大話JMeter(一),帶你了解JMter的基礎用法

如果你想對錄制進行回放,點選左上角的綠色三角:

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

在壓測過程,要例證請求/響應的正确性

斷言的實際值與設定值相符 -> 成功

斷言的實際值與設定值不相符 -> 失敗

右鍵單擊對應的 HTTP Request,添加 Response Assertion

大話JMeter(一),帶你了解JMter的基礎用法

将校驗條件添加到響應斷言中比如:響應文本内容是否包含某個字元串或者http響應碼是不是200

大話JMeter(一),帶你了解JMter的基礎用法

你可以在 View Results Tree 中檢視結果,結果如果錯誤(設定響應碼為2001),會報以下的錯誤

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

比如設定:

  • 并發數:10
  • 持續時間:30秒
    大話JMeter(一),帶你了解JMter的基礎用法

當一切都設定完畢,點選運作,我們發現結果井然有序。

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

添加聚合壓測報告 – Aggregate Report

大話JMeter(一),帶你了解JMter的基礎用法

以下是聚合報告的結果

大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法
大話JMeter(一),帶你了解JMter的基礎用法

Average:單個請求的平均響應時間

Median:中位數,也就是50%使用者的響應時間

90%Line:90%使用者的響應時間

95%Line:95%使用者的響應時間

99%Line:99%使用者的響應時間

Min:最小的請求響應時間

Max:最大的請求響應時間

Error%:錯誤率

Throughput:吞吐量

Received KB/sec:每秒從伺服器端接收到的資料量

Sent KB/sec:每秒從用戶端發送的請求的數量

大話JMeter(一),帶你了解JMter的基礎用法

寫在最後

本文使用漫畫形式向大家展示了jmeter的基礎用法:錄制回放功能,斷言,聚合報告。

我想你已經擷取到了這些資訊,李政道教授談論學習方法,他表明我們可以擷取很多資訊但是,資訊到了解還有一段路,隻有親手練了才能變成了解,能擷取資訊不代表自己了解。

繼續閱讀