如何使jmeter根据访问日志行中存在的时间戳进行日志重放
我最近开始加载测试我的webapp.
我用apache访问日志采样器.我按照本教程. https://jmeter.apache.org/usermanual/jmeter_accesslog_sampler_step_by_step.pdf 我能够使它工作.但现在问题是我在不到10分钟的时间内重播了所有的请求. 我希望jmeter根据发布get请求的时间戳运行get请求. 我无法在线找到任何此类配置. 我可以编写脚本来卷曲特定时间戳的get请求.但我想用jmeter. 可能吗. 编辑 我创建了一个带有以下行的示例csv文件: 0,/myAPP/home 5000,/myAPP/home 首先我创建了一个线程组,如图所示: 在这里,我永远选择循环计数.如果未选中,则只有csv文件中的第一行正在运行.这些行没有运行. 现在我添加了csv数据集配置,如图所示: 现在我添加了常量计时器,如图所示: 现在我添加了HTTP请求,如图所示: 我添加了视图结果树监听器并点击了播放按钮. 当我看到每个样本的视图结果树中的示例开始时,延迟不是根据csv文件中存在的延迟.我究竟做错了什么. EDIT2 EDIT3 我遵循bean shell timre方法,当延迟大于之前的响应时间时,它工作正常.但是,当前一个响应时间大于延迟时,它无法正常工作. 我修改了csv文件如下(减少延迟到100毫秒) 0,/myAPP/home 100,/myAPP/home 我删除了常量计时器并添加了下面的bean shell计时器. 这是结果表: 这些是日志行: 解决方法
开箱即用的访问日志采样器不适用于您尝试执行的操作.
您有两种选择: 1 – 在Jmeter之外进行所有处理工作并创建一个包含两个字段的CSV文件:URL和Delay,然后使用CSV数据集配置. Youtube JMeter CSV教程: 2 – 在JMeter中进行处理.如果您是Java开发人员,则可以编写beanshell脚本来读取文件并解析URL和时间戳并计算延迟. 这是一个例子: 编辑1 在你的情况下(我四舍五入到最近的秒): 第二次请求在13:00:18 我想你想要的是下一个请求不会影响响应时间.另外,你需要创建${delay}的延迟 – ${responseTime} 编辑2 这是代码(把它放在beanshell计时器的脚本部分): rtime = Integer.parseInt(String.valueOf(prev.getTime())); // on first run will raise warning delay = Integer.parseInt(vars.get("delay")); Integer sleep = delay - rtime; log.info( "Sleep for " + sleep.toString() + " milli-seconds" ); return sleep; 编辑3 如果现有请求尚未完成,则只有一个线程无法发出额外请求.从技术上讲,当一个线程不足以保持确切的延迟时,应该可以让不同的线程开始发出请求,但这需要内部线程通信,这可能非常快速地变得非常混乱并且需要beanhell脚本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |