哪些文件存储jmeter缓存和cookie?

时间:2015-01-13 16:15:26

标签: file caching cookies jmeter

我的测试计划中有cookie和缓存管理器。出于某种原因,我的jmeter脚本使用相同的会话ID超过一​​周,而在浏览器中手动测试时,每次用户登录时都会给出新的会话ID。

我要求的这个会话值不在我要求的任何参数的测试计划中。该值必须存储在某处。我可以看到它随每次登录而改变的cookie会话,但不是我的会话ID。

有谁知道我如何在我的文件夹中追踪这个值,所以我知道它是我的缓存还是存储它的cookie。

我尝试过astrogrep和其他文本字符串搜索工具,但却没有提出任何建议。

非常感谢任何建议/指导。

1 个答案:

答案 0 :(得分:0)

如果您正在寻找将Cookie存储为JMeter变量的方法,可以将CookieManager.save.cookies=true行添加到 user.properties 文件中(它位于JMeter安装的/ bin文件夹下)

需要JMeter重启才能获取此属性。

设置后,它会将所有Cookie存储为前缀为COOKIE_的JMeter变量。即如果您有Cookie SESSIONID,则可以在需要时将其引用为${COOKIE_SESSIONID}

您还可以配置JMeter以将cookie保存在.jtl结果文件中。为此,请将下一行添加到 user.properties 文件中:

sample_variables=COOKIE_SESSIONID

再次需要JMeter重启。

如果查看.jtl结果文件,您会在最后一列中看到SESSIONID cookie值。它允许您在结果分析期间跟踪用户会话。

这些值也可以作为命令行参数传递,而不是将user.properties文件编辑为

jmeter -JCookieManager.save.cookies=true -Jsample_variables=COOKIE_SESSIONID -n -t /path/to/testplan.jmx -l /path/to/testresults.jtl

对于HTTP缓存管理器,由于结构相当复杂,因此无法在结果文件中存储缓存条目。但是,您可以按如下方式在缓存管理器上启用调试日志记录:

jmeter -Ljmeter.protocol.http.control.CacheManager=DEBUG

因此,您将能够看到如下输出:

2015/01/14 12:57:16 DEBUG - jmeter.protocol.http.control.CacheManager: GET(OAH) http://google.com/ null 
2015/01/14 12:57:16 DEBUG - jmeter.protocol.http.control.CacheManager: inCache http://google.com/ null 
2015/01/14 12:57:16 DEBUG - jmeter.protocol.http.control.CacheManager: GET(OAH) http://www.google.by/?gws_rd=cr&ei=fD22VJarBovXygO57IDoCg null 
2015/01/14 12:57:16 DEBUG - jmeter.protocol.http.control.CacheManager: inCache http://www.google.by/?gws_rd=cr&ei=fD22VJarBovXygO57IDoCg null 
2015/01/14 12:57:16 DEBUG - jmeter.protocol.http.control.CacheManager: setCache(null,private, max-age=0,-1,null,http://www.google.by/?gws_rd=cr&ei=fD22VJarBovXygO57IDoCg,Wed, 14 Jan 2015 09:57:16 GMT) 

参考文献: