使用JMeter過程當中的心得

JMeter介紹、安裝

  • Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟件作壓力測試,它最初被設計用於Web應用測試,但後來擴展到其餘測試領域。
  • 下載地址jmeter.apache.org/download_jm…
  • 解壓縮後打開bin目錄,雙擊jmeter.bat便可運行,軟件界面如圖所示

JMeter基本構成

  • 測試計劃:也就是描述咱們本次測試的全部功能啦,咱們能夠在計劃下添加多個線程組
  • 線程組:顧名思義,就是一組線程,其實也就是一個虛擬的用戶組了,咱們進行併發測試不就是模擬不少同窗同時在線對咱們網站發起請求嗎,這裏線程組就能夠想象成同時段全部用戶的集合,而每一個線程則是具體的某個虛擬用戶啦,注意這裏包含了三種線程組 thread group: 這個就是咱們一般添加運行的線程組啦 setUp Thread Group: 特殊類型線程組,能夠用於執行預測試操做,線程行爲徹底像是一個正常線程組件,不一樣的是這些類型的線程組在執行測試前進行按期線程組的執行,既測試開始前的初始化化工做 tearDown Thread Group: 特殊類型線程組,可用於執行測試後動做,這些線程在執行線程結束後執行按期的線程組
  • 取樣器:測試腳本的基礎單元,用它想服務器發送一個請求,採樣器會在超時前等待響應
  • 邏輯控制器: 控制測試腳本執行順序,讓測試安裝用戶指望的順序和邏輯執行
  • 前置處理器:在請求發送以前對即將發送的請求作一些處理
  • 後置處理器:對採樣器發出請求獲得的響應作處理
  • 斷言:用來驗證服務器返回值和咱們指望的值是否相同
  • 定時器:保存JMeter測試腳本時間相關信息
  • 配置元件:設置一些腳本信息,好比cookie, 請求頭之類的
  • 監聽器:顧名思義用來監聽收集測試結果信息的

使用JMeter測試http請求

這裏咱們將建立一個簡單的測試計劃,來模擬Web請求測試,在這裏咱們模擬10個用戶併發的訪問,具體步驟以下mysql

  • 添加線程組元件,並添加併發用戶,選中測試計劃,右鍵新建線程組 如圖:
    解釋一下線程組中各個參數的含義:線程數既線程組中須要併發的線程數;Ramp_Up時間既JMeter 啓動併發用戶的時間間隔,好比咱們這裏設置爲1那麼啓動10個線程的時間間隔爲0.1秒(1/10),也能夠理解爲在1秒內啓動10個併發線程,注意若是咱們將值設置爲0,那麼則表明10個線程一塊兒啓動; 循環次數:表明循環測試多少次,若是設置爲1就是測試一次就結束
  • 添加http請求默認值
    如圖根據你的需求填寫相應的值便可,此處再也不贅述
  • 添加http信息頭管理器
    有的網站可能會有反爬策略,或者須要特定的請求頭信息,咱們能夠經過添加頭信息管理器,來設置http請求頭
  • 添加Cookie支持 一般大部分網站都支持Cookie,要添加對Cookie的支持只須要添加一個Cookie管理器便可,如圖:
  • 添加Http請求
  • 添加監聽器查看測試結果
    我通常會添加聚合報告、圖形結果、查看結果樹三個監聽器,你能夠根據本身的需求添加 這樣一個簡單的http測試就完成了,咱們點擊運行便可
  • 聚合報告 聚合報告會爲測試中的每個不一樣採樣,在表格中建立一行進行統計,對於每個採樣它都會統計服務器響應信息,提供請求數、Average、Median、Min、Max、error等統計值,注意響應時長都根據毫秒爲單位。如圖所示咱們對每一個列進行分析
  • Lable:採樣標籤
  • Samples: 標籤名相同的採樣數
  • Average: 採樣響應的平均時間
  • Median: 採樣響應結果的中間值,也就意味着一半的採樣響應時間不會超過這個值,另外一半採樣響應時間不會比他少,我的認爲和平均響應時間差很少
  • 90 Line: 90%採樣響應時間,也就是90%的採樣時間不會超過該值,其餘響應時間不會比該值少
  • Min: 標籤相同的採樣,最小的響應時長
  • Max: 標籤相同的採樣,最長的響應時長
  • Error: 採樣發送錯誤比例
  • Throughput: 吞吐量在單位時間內經過的採樣數
  • KB/SEC: 以每秒KB來衡量吞吐量
  • 圖形結果 圖形結果將所收集的採樣信息繪製到了一個圖形中。如圖
    在底部有各項統計信息,黑色表明採樣響應時長,藍色表明響應平均時長,紅色表明當前採樣響應時長標準差,綠色表明當前吞吐量(單位毫秒)
  • 查看結果樹
    查看結果樹會以樹的形式來顯示全部的採樣結果,測試人員能夠用它來查看任何採樣結果,咱們還能夠看到獲取響應所耗費的時間以及響應碼

使用JMeter壓測數據庫

  • 添加測試計劃
    注意這裏我將測試須要的驅動添加到了ClassPath,本測試使用mysql
  • 新建線程組
  • 新建JDBC鏈接配置

Variable name Bound to pool:鏈接池的名稱,這個值應該在整個測試計劃惟一,以便JDBC採樣器區分不一樣的鏈接web

DataBase URL:數據庫驅動鏈接串sql

JDBC Driver class: 數據庫驅動名稱chrome

Username: 數據庫用戶名數據庫

Password: 數據庫密碼apache

  • 新建JDBC請求
    Variable name Bound to pool 填寫咱們設置的鏈接池名,添加SQL語句,你也能夠經過Query Type設置要執行的SQL類型
  • 添加監聽器查看結果

使用JMeter測試WebSocket請求

  • 添加WebSocket插件

JMeter不會原生支持WebSocket測試因此咱們須要添加插件來完成,咱們能夠在插件官網進行下載 jmeter-plugins.org/(國內訪問較慢) 服務器

將文件夾中以上幾個包放到JMeter安裝目錄下的bin目錄
將ext目錄下的包放到bin目錄下的ext目錄下

  • 添加線程組

  • 添加取樣器 websocket

  • 添加監聽器 因爲步驟和http測試雷同,這裏就不在贅述了,值得注意的是有的咱們websocket可能須要先創建鏈接,而後發送請求,因此咱們能夠添加多個取樣器,這樣就能夠依次執行了cookie

總結

總的來講JMeter測試簡單易學,可能會有同窗不清楚如何抓請求,咱們其實能夠經過chrome開發者模式查看,或者使用Badboy錄製工具來進行錄製,在使用JMeter過程當中出現不少錯誤,這時候不要急,咱們能夠經過查看結果樹中的取樣器結果查找失敗緣由,多試驗,多總結問題每每也會迎刃而解。併發

相關文章
相關標籤/搜索