Akamai和Jmeter缓存管理器

时间:2017-01-21 05:47:53

标签: caching jmeter akamai cachemanager

过去几周我一直在使用Jmeter。我的Jmeter测试中没有端到端的用例(例如登录>>转到个人资料页面>>注销)。我只是直接点击我的应用程序的几个重要页面。例如注册页面,主页,关于我们等。

如何提供这些页面:

场景1:用户>> Akamai>>服务器>> Akamai>>用户

场景2:用户>> Akamai>>用户(即在Akamai中缓存的所有页面之后)

当我运行Jmeter测试时,有99%的机会从Akamai(即场景2)获得服务。

问题:

  1. 我是否需要场景2的HTTP缓存管理器?我的意思是为什么我需要在Akamai上同时在我的机器RAM上缓存两次页面?
  2. 仅当对#1的答案为是时:这是否必须使用缓存管理器和cookie管理器?
  3. 仅当对#1的答案为是时:我的脚本编写为:Test Plan >> Thread group >> Throughput Controller >> 80+ HTTP Request Sampler (actually pages)。那么在吞吐量控制器级别或每个HTTP请求采样器内部是否需要HTTP缓存管理器? enter image description here

2 个答案:

答案 0 :(得分:0)

当您进行负载测试时,必须尽可能接近真实用户,否则您的负载测试没有意义。关于你的问题:

  1. 是的,您需要将HTTP Cache Manager添加到测试计划中。此外,您需要“告诉”所有HTTP请求采样器

    • “检索所有嵌入资源”
    • 并为此
    • 使用“Parallel Downloads”

    将此配置应用于所有HTTP请求采样器的最佳方法是使用HTTP Request Defaults

  2. HTTP缓存管理器和HTTP Cookie管理器是不同的野兽,但鉴于您正在构建Web测试计划,您需要add a cookie support

  3. 您需要为每个Thread Group配置HTTP缓存管理器/ Cookie管理器。有关详细信息,请参阅Scoping Rules用户手册章节。
  4. 另外,请不要忘记使用HTTP Header Managers来表示浏览器标头。

答案 1 :(得分:-1)

根据您的问题,我了解Akamai是一个提供静态网页的CDN。

记住这一点,我的回答如下:

  1. 我是否需要场景2的HTTP缓存管理器?我的意思是为什么我需要在Akamai上同时在我的机器RAM上缓存两次页面?
  2. 是或否取决于您想要实现的配置。您必须了解Akamai(CDN缓存)所服务的黑白页面与用户计算机上本地存储的页面不同。

    本地缓存 - 检索页面的最快方法。 (由Cach-Control实现:max-age指令)。如果指定,则无需甚至点击Akamai服务器。浏览器从本地缓存本身获取页面。如果max-age已过期,则浏览器会发送重新验证请求以检查其是否具有最新副本。 CDN / Server验证它,如果副本是最新的,则发送304(未修改)。否则,使用新max-age服务的页面的最新副本(max-age仅在实施时发送)。

    所以,关键是服务器如何配置来处理Cache。如果使用Expires / Cache-Control实现本地缓存,则必须将HTTP Cache Manager添加到测试计划中。

    <强> 2。只有当答案#1为是时:这是否必须使用缓存管理器和cookie管理器? 通常,Cache独立于用户。 Cookie管理器是通过发送Cookie使用户真实。缓存管理器可在加载页面时减少网络延迟(往返)。如果登录的Vs匿名用户的缓存机制实现不同,那么您必须同时考虑这两种情况。否则,不需要Cookie管理器。

    第3。只有当答案#1为是时:我的脚本写成:测试计划&gt;&gt;线程组&gt;&gt;吞吐量控制器&gt;&gt; 80+ HTTP请求采样器(实际是页面)。那么我是否需要吞吐量控制器级别或每个HTTP请求采样器内部的HTTP缓存管理器?

    通常,您在层次结构的顶部添加HTTP Cache Manager(在“测试计划”或“线程组”下),因此它将适用于所有采样器(子项)。

    注意:我强烈建议您使用Browser -> F12 -> Network tab了解HTTP级别(JMeter的工作原理)中的应用程序行为。这会发送每个HTTP请求以加载浏览器,并从本地缓存或CDN或服务器等检索resposne。

    请仔细阅读以下标题以完全理解行为:

    1. Cache-Control标头(max-age指令)
    2. ETag标题
    3. Last-Modified标头
    4. 到期
    5. 以下是开头的参考:

      1. http://dev.mobify.com/blog/beginners-guide-to-http-cache-headers/
      2. https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching
      3. https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html