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)。例如:
- ts=2022-3-89-21-36
- ts=2022-3-89-21-37
- ts=2022-3-89-21-38
是否可以仅在预定义的分钟数后才允许时间戳值?例如。对于前面的例子,如果我们想要 5 分钟:
- ts=2022-3-89-21-36
- ts=2022-3-89-21-41
- ts=2022-3-89-21-46
谢谢。
可能的解决方案之一是 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
文件。
我们正在使用 JMeter 来测试一些简单 html 页面的负载(GET 请求总共约 1.5 小时)。为了测试服务器 ehcache 机制(强制缓存存储等),我们在页面的请求路径中使用名为 ts 的查询参数,如下所示:
路径:SERVER_NAME/page1?ts=${__time(Y-M-D-H-mm)}
这将为每个 minute/hour/ 等创建不同的请求 - (当然不同的线程可以使用相同的时间戳值 ts)。例如:
- ts=2022-3-89-21-36
- ts=2022-3-89-21-37
- ts=2022-3-89-21-38
是否可以仅在预定义的分钟数后才允许时间戳值?例如。对于前面的例子,如果我们想要 5 分钟:
- ts=2022-3-89-21-36
- ts=2022-3-89-21-41
- ts=2022-3-89-21-46
谢谢。
可能的解决方案之一是 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
文件。