Jmeter系列(36)- Access Log Sampler
阿新 • • 發佈:2021-08-24
簡介
Access Log Sampler 是個非常有用的工具,可以收集和分析真實使用者操作的資料,並可用於流量分析。常見的就是我們的nginx的access.log 日誌
使用
access.log
192.168.242.13 - - [10/Jun/2021:16:21:15 +0800] "GET /static/service-test/redbar.gif HTTP/1.1" 200 91 "http://192.168.242.13:3025/jacoco/static/b2b2c-mall-service-test/index.html" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" "-" 192.168.242.13 - - [09/Jun/2021:10:54:43 +0800] "POST /static/generate/ HTTP/1.1" 200 45 "http://localhost:9527/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" "-" 192.168.242.13 - - [10/Jun/2021:16:21:15 +0800] "GET /static/service-test/greenbar.gif HTTP/1.1" 20091 "http://192.168.242.13:3025/static/service-test/index.html" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" "-"
執行緒組迴圈次數設定未N次,則獲取access log 前N條資料。一般會將Access Log Sampler放在迴圈控制器裡面
然後配置你獲取access log 後要請求的伺服器url跟port
注意:Access Log 實際上只獲取請求協議跟url 以及埠號;其他的都被摒棄,如請求的具體路徑,請求的方法get還是post等,都不需要
Parser有三個選項
- SharedTCLogParser : 每個(隨機)執行緒將從日誌檔案中獲取以下未處理的行。第一個未處理的行將被第一個執行緒佔用,它完成處理其當前請求。然後,另一個執行緒將跟隨。此解析器允許迴圈遍歷日誌檔案,當想要模擬多個使用者以半隨機順序執行記錄的操作時非常有用
- OrderPreservingLogParser :基本上是 SharedTCLogParser
- TCLogParser:當前執行緒組中的每個執行緒都會獲取一個完整的訪問日誌檔案,並從頭到尾處理其所有條目。不幸的是,當前的實現會在到達檔案末尾時立即終止執行緒,從而防止執行緒迴圈遍歷日誌檔案。有趣的是,如果指定過濾器,則不會發生這種情況。當想要模擬多個使用者重複所有記錄的操作時,此選項很有用