Jmeter缓存管理器使用情况
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter缓存管理器使用情况相关的知识,希望对你有一定的参考价值。
我正在使用Jmeter进行负载测试。当使用缓存存储一些用户信息时,我得到了stackoverflow异常。我在线程组中设置了HTTP缓存管理器,我认为它将作为浏览器缓存。但是当我只将用户信息存储在服务器缓存中时,我仍然得到了异常? (我确保代码将信息存储在服务器端缓存中)。
有人对这个问题有所了解吗?或者任何人都可以在Jmeter测试计划中提供有关服务器端/浏览器端缓存的一些信息? (我已经检查了一些网站,但仍然无法弄清楚它的概念)谢谢。
附:我正在研究ASP.net Web应用程序
更新:我检查了问题是由服务器端的缓存引起的。禁用缓存后不会出现异常。还有一些信息,我使用set方法更新缓存的缓存。我仍然无法发现StackOverflow异常的解决方案或原因。
由于Stackoverflow发生在服务器端,因此您应该调查一个错误。
它可能是由jmeter脚本上缺少的参数引起的,该参数是从可以在浏览器端缓存的页面中提取的。由于JMeter缓存不缓存页面内容(只有页面在缓存中的事实),因此在JMeter中它将为空,因此如果您有一个提取,它将给出一个空值。
现在关于缓存管理器,它旨在模拟浏览器缓存。
您可以阅读参考文档:
- https://jmeter.apache.org/usermanual/component_reference.html#HTTP_Cache_Manager和这个博客:
- https://flood.io/blog/understanding-the-jmeter-cache/The HTTP缓存管理器用于向其范围内的HTTP请求添加缓存功能,以模拟浏览器缓存功能。每个虚拟用户线程都有自己的缓存。默认情况下,缓存管理器将使用LRU算法在每个虚拟用户线程的缓存中存储多达5000个项目。使用属性“maxSize”修改此值。请注意,增加此值越多,HTTP缓存管理器将消耗更多内存,因此请务必相应地调整-Xmx JVM选项。
如果样本成功(即响应代码为2xx),则为URL保存Last-Modified和Etag(以及相关时过期)值。在执行下一个样本之前,采样器会检查缓存中是否有条目,如果是,则为请求设置If-Last-Modified和If-None-Match条件标头。
此外,如果选择“使用Cache-Control / Expires标头”选项,则会根据当前时间检查Cache-Control / Expires值。如果请求是GET请求,并且时间戳是将来的,则采样器立即返回,而不从远程服务器请求URL。这旨在模拟浏览器行为。请注意,如果Cache-Control标头为“no-cache”,则响应将作为预过期存储在缓存中,因此将生成条件GET请求。如果Cache-Control具有任何其他值,则处理“max-age”到期选项以计算条目生存期,如果丢失则将使用expire头,如果还缺少条目将按照RFC 2616第13.2.4节中的规定进行缓存。使用Last-Modified时间和响应日期。
以上是关于Jmeter缓存管理器使用情况的主要内容,如果未能解决你的问题,请参考以下文章
如何在spring cache java中配置多个缓存管理器