本文介绍的是jmeter的获取日志采样器 (jmeter access log sampler).
想象一下,如果你创建一个测试脚本时, 每一个link(url 请求) 你都要单独创建一个http sampler采样器, 如果当url请求特别多时,你知道, 这简直是一场噩梦. 但如果我们使用access log sampler (获取日志采样器), 这样我们只需要拿到日志, 日志格式是标准的格式, 那么我们只要使用一个获取日志采样器,便可以模拟该日志里的所有http请求. 怎么样, 这样是不是方便多了.
其实日志采样器的原理就是, 读取你的日志,并对应的生成http请求. 日志如何获取? 通常日志是你服务器记录的一些用户的访问记录. 但如果你没有服务器的管理权限, 你拿不到服务器的用户访问日志, 那么你也不担心. 我们可以通过一些其他的工具, 在你自己访问服务器的时候, 把访问的请求记录下来, 我们自己整理一个日志文件即可. 我这里就简单介绍一下, 我使用Xenu's Link Sleuth 这个工具.
Xenu's Link Sleuth 是一个三方工具. 他其实就是记录你的访问某个 web页面时,把所有的http请求内容都抓取下来而已. 但是对于复杂的企业级的软件, 可能这时并不是一个好的方法. 不管怎么说, 问题应该具体分析. 这里我们继续讲解.
首先,我们下载下来软件. 按下 "ctr+n" , 然后输入我们要访问的url.
之后, 我们按下"ok". 这时候它就开始抓取http的链接了. 你可以看到下面的图.

我们看到了图2. 抓取到的很多链接. (不幸的是, 访问日志采样器,不能自动生成关于https的请求, 新的jmeter版本, 请大家尝试下, 有没有问题请反馈和交流)
xenu这个工具完成抓取所有链接后, 我们进入"File" - "Export to tab 分割的file" , 或者直接按下 ctrl+t , 然后把输出到一个*.txt格式的文件即可. 这个文件就是我们要的日志拉.

好吧,我们把一些重复的link(请求) 要去掉. 重复的内容肯定是没有任何意义的.

我们保存的那个*.txt文件的格式, 并不是标准的日志格式. 所以我们稍微调整一下.
把 «https://prior.by» 换成 «"GET » 所以 .txt 的文件就变成了如下的内容.
"GET /
"GET /App_Themes/RaiffeisenSkin/CSS/Breadcrumb.css
"GET /App_Themes/RaiffeisenSkin/CSS/Buttons.css
"GET /App_Themes/RaiffeisenSkin/CSS/Content.css
"GET /App_Themes/RaiffeisenSkin/CSS/CurratesTabs.css
“GET /App_Themes/RaiffeisenSkin/CSS/Breadcrumb.css
然后我们再保存下该文件. 这下, 日志文件,我们终于制作成功了. (通常我们如果有服务器的权限, 是可以从服务器获取,而且日志的格式一般都是标准, 不需要太大的调整. post请求的日志, 关于post数据如果都存到日志,可能存在安全风险, 需要根据具体问题分析)

好了. 我们在jmeter中, 添加 获取日志采样器了.
- 同时我们也加上 聚合报告, 结果树等 lisnter

Server: 就是输入我们要测试的服务器了.
Port: 端口.默认是80
Parse images: False;
Parser: org.apache.jmeter.protocol.util.accesslog.TCLogParser 是默认的.
Filter: 设置为 “Undefined”;
Log file: log日志这里就是我们自己制作好的那个日志文件. 写上路径.
好, 然后我们开始吧.
