【问题标题】:How to clear cache for a sampler in JMeter如何在 JMeter 中清除采样器的缓存
【发布时间】:2020-04-27 07:05:07
【问题描述】:

我有一个 jmeter 脚本,我需要在其中多次打开一个页面。因此,我将此操作保留在循环控制器下。我观察到的是每次迭代加载页面的响应时间都在减少。这可能是由于缓存。任何人都可以帮助我如何在每次迭代后清除此采样器的缓存(我指的是循环控制器迭代,而不是线程组一)。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    您的要求并没有多大意义,因为 well-behaved JMeter test should represent a real user using a real browser 和真正的浏览器 caching strategy 假设通过遵守 Cache-Control 标头来最小化下载资产的数量

    如果您知道这种良好做法,但仍想丢弃每次迭代的缓存:

    1. JSR223 PreProcessor 添加为您要清除的缓存的 HTTP 请求采样器的子项
    2. 将以下代码放入“脚本”区域:

      sampler.getCacheManager().clear() 
      

    【讨论】:

      【解决方案2】:

      您可以在 JMeter 中使用 HTTP 缓存管理器并选中此复选框以每次迭代清除缓存?。您可以关注page 了解更多信息。这适用于当前线程中的所有请求。我知道这不是你要找的,但 JMeter 只有这个选项作为 UI 设置。

      另一种方法可以是使用Beanshell PreProcessor来拦截请求并在运行时清除缓存。

      import org.apache.jmeter.protocol.http.control.CacheManager;
      
      CacheManager clearCache = ctx.getCurrentSampler().getProperty("HTTPSampler.cache_manager").getObjectValue();
      
      clearCache.clear();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-19
        相关资源
        最近更新 更多