简介:
Access Log Sampler 是个非常有用的工具,可以收集和分析真实用户操作的数据,并可用于流量分析。常见的就是我们的nginx的access.log 日志
使用
access.log demo
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" "-"
创建线程组后添加Access Log Sampler 取样器
线程组循环次数设置未N次,则获取access log 前N条数据。所以此处我们设置为永远
然后配置你获取access log 后要请求的服务器url跟port:
注意:Access Log 实际上只获取你的 请求方式跟url ,其他的都被摒弃
如: GET /static/service-test/redbar.gif
有三个可用的日志解析器类。它们之间的区别在于它们如何在线程之间分配解析的请求:
- TCLogParser - 当前线程组中的每个线程都会获取一个完整的访问日志文件,并从头到尾处理其所有条目。不幸的是,当前的实现会在到达文件末尾时立即终止线程,从而防止线程循环遍历日志文件。有趣的是,如果您指定过滤器,则不会发生这种情况。当您想要模拟多个用户重复所有记录的操作时,此选项很有用。
- SharedTCLogParser - 每个(随机)线程将从日志文件中获取以下未处理的行。第一个未处理的行将被第一个线程占用,它完成处理其当前请求。然后,另一个线程将跟随。此解析器允许循环遍历日志文件,当您想要模拟多个用户以半随机顺序执行记录的操作时非常有用。
- OrderPreservingLogParser - 基本上是 SharedTCLogParser。
不足
如果需要获取状态码为200的接口,或者屏蔽".gif" 等不需要的url的话,则需要改源码。