JMeter 在预定义的分钟数后设置时间戳值

JMeter setting timestamp value after predefined amount of minutes

我们正在使用 JMeter 来测试一些简单 html 页面的负载(GET 请求总共约 1.5 小时)。为了测试服务器 ehcache 机制(强制缓存存储等),我们在页面的请求路径中使用名为 ts 的查询参数,如下所示:

路径:SERVER_NAME/page1?ts=${__time(Y-M-D-H-mm)}

这将为每个 minute/hour/ 等创建不同的请求 - (当然不同的线程可以使用相同的时间戳值 ts)。例如:

是否可以仅在预定义的分钟数后才允许时间戳值?例如。对于前面的例子,如果我们想要 5 分钟:

谢谢。

可能的解决方案之一是 pre-generating 时间戳并将它们写入 CSV 文件中 setUp Thread Group using JSR223 Sampler 中的某处,代码如下:

import groovy.time.TimeCategory

def now = new Date()
def numberOfLinesInCsv = 100

use(TimeCategory) {
    1.upto(numberOfLinesInCsv, {
        now = now + 5.minutes
        new File('ts.csv') << (now.format('Y-M-D-H-mm')) << System.getProperty('line.separator')
    })
}

完成后,您可以在主线程组中添加 CSV Data Set Config 并将其配置为读取 ts.csv 文件。