过去几周我一直在使用Jmeter。我的Jmeter测试中没有端到端的用例(例如登录>>转到个人资料页面>>注销)。我只是直接点击我的应用程序的几个重要页面。例如注册页面,主页,关于我们等。
如何提供这些页面:
场景1:用户>> Akamai>>服务器>> Akamai>>用户
场景2:用户>> Akamai>>用户(即在Akamai中缓存的所有页面之后)
当我运行Jmeter测试时,有99%的机会从Akamai(即场景2)获得服务。
问题:
答案 0 :(得分:0)
当您进行负载测试时,必须尽可能接近真实用户,否则您的负载测试没有意义。关于你的问题:
是的,您需要将HTTP Cache Manager添加到测试计划中。此外,您需要“告诉”所有HTTP请求采样器
将此配置应用于所有HTTP请求采样器的最佳方法是使用HTTP Request Defaults
HTTP缓存管理器和HTTP Cookie管理器是不同的野兽,但鉴于您正在构建Web测试计划,您需要add a cookie support。
另外,请不要忘记使用HTTP Header Managers来表示浏览器标头。
答案 1 :(得分:-1)
根据您的问题,我了解Akamai是一个提供静态网页的CDN。
记住这一点,我的回答如下:
是或否取决于您想要实现的配置。您必须了解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。
请仔细阅读以下标题以完全理解行为:
以下是开头的参考: