【问题标题】:Increment time value for 2 fields for every Thread and loop in jmeter为jmeter中的每个线程和循环增加2个字段的时间值
【发布时间】:2021-03-10 13:15:45
【问题描述】:

我必须安排一次会议,在特定的帖子请求正文中,我必须不时提供。每次开始和结束时间都不相同,时间不应重叠。

对于这个要求,我使用JSR223 Sampler 尝试了下面的代码,但我在这里面临的问题是只有一次递增,并且对于每个线程和循环。值是相同的并且它不递增。每个线程的时间值都应该增加。请让我知道我是如何实现它的,因为下面的代码为每个线程返回相同的值

def now = new Date()
log.info('Before: ' + now.format('HH:mm'))
use(groovy.time.TimeCategory) {
    def nowPlus60Mins = now + 60.minutes
    def nowPlus15Mins = nowPlus60Mins + 15.minutes
    log.info('After: ' + nowPlus60Mins.format('HH:mm'))
    log.info('End: ' + nowPlus15Mins.format('HH:mm'))
vars.put("AfterTime",nowPlus60Mins.format('HH:mm'));
vars.put("EndTime",nowPlus15Mins.format('HH:mm'));

【问题讨论】:

    标签: jmeter jmeter-5.0 jsr223 jmeter-4.0 blazemeter


    【解决方案1】:

    如果你想影响所有线程,你必须使用 JMeter 属性,在脚本中表示为props:

    props.put("AfterTime",nowPlus60Mins.format('HH:mm'));
    props.put("EndTime",nowPlus15Mins.format('HH:mm'));
    

    使用__P函数作为${__P(AfterTime,)}在JSR223 Sampler之外获取属性值

    在 JSR223 中使用props.get("EndTime") 获取属性

    【讨论】:

      【解决方案2】:

      如果您在 1 分钟内运行超过 1 次迭代 - 绝对期望您将获得相同的生成偏移量,因为给定您的 SimpleDateFormat 设置,该值将每分钟更新一次。

      您也不需要任何脚本,您可以直接在请求正文中使用__timeShift() function 来实现相同的目的:

      • 加 60 分钟:${__timeShift(HH:mm,,PT60M,,)}
      • 加 15 分钟:${__timeShift(HH:mm,,PT15M,,)}

      更多信息:Creating Dates in JMeter Using the TimeShift Function

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-02
        • 1970-01-01
        相关资源
        最近更新 更多