2017-09-15 142 views
0

我的测试计划:HTTP缓存管理器不缓存请求的内容

Test Plan 
+ User Defined Variables 
++ Thread Group 
+++ HTTP Cache Manager 
+++ Transaction Controller 
++++ Request 1 
+++ Transaction Controller 
++++ Request 2 

后在表查看结果发送的字节数是两个请求相同的运行测试我可以。 HTTP缓存管理器的功能是无效的这种行为? 以下是显示我的HTTP请求的图像,请注意,传输的字节与所有请求相同。 enter image description here

实际测试计划:

enter image description here

回答

1

缓存管理器附带了documentation上市条件很多,所以一定要检查他们:

  1. ,你有“群体的事实3“是正常的:

    每个虚拟用户线程都有自己的缓存。

    所以每个请求将被执行3次,每个用户都会有自己的缓存

  2. 这是每个URL。因此,如果项目1.1,2.1,3.1和4.1的URL甚至略有不同,每一个都将被缓存。在这种情况下,只有当你在同一个请求上循环时,或者在下一次迭代时,才会看到缓存在运行。

  3. 缓存管理器决策基于帮助中定义的特定算法。如果从算法您的要求有出入,它们将不缓存:

    如果样品是成功的(即具有响应代码2XX),那么Last-Modified和Etag的(和过期如果相关)值保存为URL。在执行下一个采样之前,采样器会检查高速缓存中是否有条目,如果是,则为请求设置If-Last-Modified和If-None-Match条件标头。

  4. 最后,存在是影响缓存头,例如:

    如果Cache-Control标题为“无缓存”,该响应将被存储在高速缓存中的预过期,所以会产生一个条件GET请求

    响应与Vary头部不被缓存。

+0

当然,我的测试不参加项目2,我的网址是不同的,他们共享一些文件(.js,.css和图像),但url是不同的每一个。 –

0

我通常把高速缓存管理器和cookie管理的最高水平。 同时检查是否请求“清除每次迭代缓存”标志。 这取决于应用程序要求(每次返回用户或新用户)。

是的,大多数时候只有静态项目被缓存(css,.js,图片),而html页面通常生成并且不能被缓存。