Jmeter系列(36)- Access Log Sampler
阅读原文时间:2023年07月09日阅读:1

简介

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" 200 91 "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:当前线程组中的每个线程都会获取一个完整的访问日志文件,并从头到尾处理其所有条目。不幸的是,当前的实现会在到达文件末尾时立即终止线程,从而防止线程循环遍历日志文件。有趣的是,如果指定过滤器,则不会发生这种情况。当想要模拟多个用户重复所有记录的操作时,此选项很有用