当前位置: 首页 > 知识库问答 >
问题:

Jmeter-如何通过缓存由多个用户加载测试ajax web应用程序

束研
2023-03-14

我一直在使用Jmeter对我的web应用程序进行性能测试。我已经通过排除js、css和其他静态内容文件来记录jmeter脚本。在运行脚本时,Jmeter不执行javascript文件,因此不会发送ajax XHR请求。为了克服这一点,我记录了包含js、css和其他静态内容的脚本,它也记录了所有的Ajax xhr请求。但性能结果似乎与浏览器加载时间不同。此外,我需要使用缓存在我的性能测试

下面是我的测试计划的样子,

  1. 包括检索HTTP请求管理器中的所有嵌入资源。
  2. 并发池大小为6
  3. 我已添加HTTP cookie管理器和缓存管理器。
  4. 我添加了一个循环控制器(这是用于缓存的,jmeter将在第一次迭代时缓存文件,然后使用缓存的文件)

我面临的问题是rest调用所花费的时间是单用户浏览器控制台显示的时间的两倍。我已经尝试了所有其他的组合,但我总是比浏览器控制台获得更高的时间。

提前道谢。

共有1个答案

贡威
2023-03-14
  1. 您不应该像记录一样记录对嵌入资源(图像、脚本、样式、字体等)的调用--它们将按顺序执行,而真正的浏览器是并行执行的。因此,删除对嵌入资源的记录请求,并使用HTTP请求默认值“通知”JMeter下载它们(并并行执行)
  2. 您应该记录AJAX请求,但实际浏览器是并行执行这些请求的,而JMeter是按顺序运行这些请求的。为了使JMeter的行为更接近于真实的浏览器,您需要将这些AJAX调用放在并行控制器

您可以使用JMeter插件管理器安装并行控制器扩展

 类似资料:
  • 我们正在使用web应用程序上的JMeter对1500个用户进行负载测试。我们正在分批进行。第一批100个用户,爬坡期300秒,我们循环15次。此方法是否适用于负载测试? 应用程序在负载测试时响应太慢?给我宝贵的建议?

  • 我正在使用Jmeter对应用程序进行负载测试。否:线程数为100。 第一个HTTP请求是主页。第二个HTTP请求是进行实际登录的登录页面。有n个API。 我想要实现的是: 前100个线程同时出现在主页上。然后100个线程同时进入登录页面。然后100个线程同时运行第n个API。

  • 我创建了一个测试计划 我已经通过执行所需的步骤/过程保存了测试计划,即使用一个用户下载不同的文档。记录的脚本有1个用户,而我正在使用jmeter-n-t d:\jmeter\downloadfinal21sept.jmx-l d:\jmeter\reportlog\result21septpdfinal.csv-e-o d:\jmeter\htmlreport\report21septpdfina

  • 我有一台linux机器(比如m1)[一台openStack机器]来运行我的jmeter测试。我的典型过程是将最新的jmx文件放在这台机器上,并在以下命令下触发:nohup/path/to/jmeter/bin/jmeter-n-t/path/to/script/test。jmx-l/path/to/resultsFolder/results。jtl 现在,我想通过jenkins作业触发相同的测试,

  • 我试图在jmeter中运行一个包含3000个用户和50个循环的负载测试,但它显示了这个错误。 我还尝试使用-来增加堆大小 但同样的OutOfMemory问题依然存在。笔记本电脑的RAM-8GB感谢帮助

  • 假设我想为类编写一个,它可以是,因此我需要加载。 我的测试有注释和main方法 当然,我有这样一些基准: 现在的问题是如何注入? 可能的解决办法