我一直在使用Jmeter来测试我的Web应用程序。我通过排除js,css和其他静态内容文件来记录jmeter脚本。 在运行脚本时,Jmeter不执行javascript文件,因此不会发送ajax XHR请求。为了克服这个问题,我用js,css和其他静态内容记录了脚本,并记录了所有Ajax xhr请求。但是性能结果似乎与浏览器加载时间不同。我还需要在性能测试期间使用缓存。
以下是我的测试计划的样子,
我面临的问题是,休息呼叫所花费的时间是单个用户的浏览器控制台中显示的时间的两倍。我已经尝试了所有其他组合,但总是比浏览器控制台的时间更长。
我曾尝试使用Selenium webdriver插件来模拟浏览器行为,但它似乎并没有使用缓存。 (https://www.blazemeter.com/blog/how-load-test-ajaxxhr-enabled-sites-jmeter)
还有其他方法可以解决这个问题吗? 我想采用带缓存的指标,所以请建议我必须包含缓存的任何解决方案。或者是否有任何其他类似于jmeter的工具可以解决此问题。我的目标是为'n'个用户提供缓存的网页加载时间。
PS:我甚至有兴趣在jmeter中编写任何脚本,但脚本不应该超过jmeter的性能。
提前致谢。
答案 0 :(得分:2)
您可以使用Parallel Controller
安装JMeter Plugins Manager扩展程序答案 1 :(得分:1)
Jmeter和缓存是无关的 - 数据通过网络后发生的一切都超出了设计范围。您应该只模拟您希望不被缓存的请求。所以这是可行的部分:删除您希望浏览器从Jmeter脚本缓存的所有请求(或将它们移出循环外)。在XHR的加载时间:浏览器肯定会使用HTTP keepAlive。结果是除了第一个请求之外的所有请求都跳过TCP套接字的设置和拆除阶段并且速度更快 - 尤其是。当请求本身小而快。您也可以通过选中KeepAlive选项 AND 选择http commons作为实现来在JMeter中进行模拟。您可以在此处的文档中阅读相关内容:http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request