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

如何在JMeter中模拟每分钟的动态请求,其中每分钟的数字来自文件

王高邈
2023-03-14

在成功地使用JMeter评测我们平台的性能之后,我得到了一个请求,根据从去年的日志中提取的逐分钟事务数据模拟24小时负载。

在这一点上,我想知道,在jmetm中创建线程的静态特性是否很容易实现。我研究了通常的插件与那些在jmeter-plugins.org,但我仍然找不到一个直接的方法来做这种塑造。

我正在寻找另一种方法来编写一个动态馈送吞吐量整形计时器的漂亮脚本,但我不确定这是否是正确的方法。

有什么建议吗?

更新:我尝试了以下组合(正如Alon和Dan所建议的):一个线程组,一个循环线程和一个60秒延迟计时器;此线程每分钟从csv读取下一分钟的请求数,并将其传递给下一个线程组(使用groovy脚本和全局道具)-第二个线程组具有固定数量的线程和恒定吞吐量计时器,第一个线程组每分钟更新一次。

它可以部分工作,但这里的限制是load/min被分配给所有活动线程,因此即使加载请求同时更改,部分线程仍将等待执行。我认为为了有一个正确的模拟,应该有一种方法,所有没有在一分钟内执行的线程都会被中断并重新启动。

因此,举一个具体的例子:我在第一分钟有100个请求,在第二分钟有5000个请求(这是变化很大的真实数据),在第一分钟已经启动了300个线程(这是我接受的最大并发连接数),但是,由于它们执行速度非常快,为了满足计算的吞吐量,它们将延迟一分钟以上,因此下一分钟的5000个请求没有机会执行,因为许多线程仍在Hibernate。

因此,我正在寻找一种在需要更多吞吐量时中断Hibernate线程的方法。可能来自Groovy或通过修改一些JMeter代码。

谢谢,迪克兰

共有2个答案

谷梁裕
2023-03-14

使用JSR 223 Groovy编写脚本
您有很多选项可以使用JMeter编写脚本:

  1. 比恩希尔酒店
  2. BSF和所有支持的语言Javascript、Scala、Groovy、Java
  3. JSR223和所有支持的语言Javascript、Scala、Groovy、Java

尽管你可能会懒惰,选择你所懂的语言,但忘掉它吧
使用最有效的选项,即JSR223 Groovy Caching(从外部脚本中的JMeter 2.8开始支持,下一代的JMeter 2.9也支持嵌入式脚本)。

使用Groovy就像添加Groovy版本一样简单。jarin

但是当然要确保你的脚本是必要的和有效的编写,不要写得太多在这里查看更多-http://blazemeter.com/blog/jmeter-performance-and-tuning-tips

葛桐
2023-03-14

为此,应该使用JMeter的恒定吞吐量计时器。结合包含所有值的CSV文件,它应该可以完美地工作。请参阅以下链接:http://jmeter.apache.org/usermanual/component_reference.html#Constant_Throughput_Timer http://jmeter.apache.org/usermanual/component_reference.html#CSV_Data_Set_Config

最好的,阿隆。

 类似资料:
  • 我有一个Web服务器,它只支持一个非常简单的API -计算在最后一小时,每分钟和每秒收到的请求数。该服务器在世界上非常受欢迎,每秒接收数千个请求。 目标是找到如何准确地将这3个值返回到每个请求? 请求一直在到来,因此每个请求的一小时、一分钟和一秒的窗口是不同的。如何管理每个请求的不同窗口,以便每个请求的计数都是正确的?

  • 问题内容: 如何在特定时间段内调用Ajax请求?我应该使用Timer插件还是jQuery为此提供插件? 问题答案: 您可以使用内置的javascript setInterval。 或者如果您是更简洁的类型…

  • 我有一个Spring boot应用程序,使用测微计抛出开放的公制统计数据。 对于我的每个HTTPendpoint,我可以看到以下指标,我相信它跟踪给定endpoint的请求数: http\U server\u requests\u seconds\u count 我的问题是,如何在Grafana查询中使用它来表示每分钟调用我的endpoint的请求数? 我试过了 http\u client\u r

  • 我正在用Log4j 2.6.2测试Log4j RollingFileAppender。 我希望每分钟旋转一次日志,因此我有一个log4j2.xml,与这里的一个示例https://logging.apache.org/log4j/2.x/manual/appenders.html#rollingfileappender非常相似。这是我的log4j2.xml 这是一个我每秒钟写一个日志的应用程序。

  • 问题内容: 我想在Java中编写一个会启动并运行的循环,如下所示: 我要这样做,以免占用系统资源。代码中实际发生的事情是,它进入一个网站并检查是否已完成某件事,如果未完成,则应等待一分钟,直到再次检查为止,然后再继续检查。反正他们在Java中执行此操作吗? 问题答案: 使用。 根据系统计时器和调度程序的精度和准确性,使当前正在执行的线程进入休眠状态(暂时停止执行)达指定的毫秒数。该线程不会失去任何

  • 我正在尝试获取每分钟出现数据的次数。日期看起来是这样的。第一个数字是一个整数,表示自Unix纪元以来的秒数,我将其转换为ISO 8601时间。第二个数字是双精度的。以“00”结尾的时间代表第0分钟,以“60”结尾的时间代表第1分钟。 代码: 我的输出是这样的: 但我正在寻找类似下面的东西(忽略新的分钟找到的文本) 我如何调整它,以便我跟踪当前分钟并添加到计数器,而不会过早地打印出计数器?