jmeter icon indicating copy to clipboard operation
jmeter copied to clipboard

CacheManager suppresses necessary server calls in case of existing etags and CacheManager.useExpires is true

Open chrissber opened this issue 3 months ago • 0 comments

Expected behavior

In case of a HTTP GET request with an existing ETag in the server response http header I would expect:

  • that another HTTP GET request to the same URL and with identical parameters would be send to the server with a corresponding If-None-Match=eTag in the request http header.
  • in other words: that jmeter execute this sampler as it would do in the case that no HTTP CacheManager is active.

Actual behavior

if the CacheManager is configured with flag useExpires=true the second request is suppressed because the CacheEntry element

get a expiredDate System.currentTimeMillis() + ONE_YEAR_MS

cacheManagerUseExpires.log

Steps to reproduce the problem

copy the attached file etag.txt to file etag.jmx and open it in jmeter

  1. start the HTTP Mirror Server
  2. execute the script
  3. uncheck the checkbox Use Cache Control/Expires header when processing GET requests in HTTP CacheManager GUI
  4. execute the script again and check different behaviour between the two testruns

etag.txt

JMeter Version

5.6.3

Java Version

openjdk version "17.0.8" 2023-07-18 LTS

OS Version

Microsoft Windows [Version 10.0.22631.5909]

chrissber avatar Oct 01 '25 14:10 chrissber