有没有办法让 __timeShift 仅 select 一周中的特定几天?
Is there a way to make __timeShift only select certain days of the week?
JMeter 脚本中当前使用的函数是
${__timeShift(dd/MM/yyyy,${__time(dd/MM/yyyy)},-P31D,,)}
指定 31 天前的审核日期。
我现在了解到该项目要求审查日期总是在星期一。有什么方法可以确保执行 timeShift 只选择星期一吗?
恐怕 __timeShift() function is not flexible enough, you can consider using __groovy() 函数改为执行以下算法:
- 获取当前日期
- 减去 31 天
- 如果当前星期几是星期一 - return 过去的日期
- 否则加上 1 天,直到过去的日期变成星期一
示例函数代码:
${__groovy(def now = new Date(); def monthAgo = now.minus(31); while (monthAgo[Calendar.DAY_OF_WEEK] != Calendar.MONDAY) { monthAgo = monthAgo.plus(1)}; return monthAgo.format('dd/MM/yyyy'),)}
演示:
JMeter 脚本中当前使用的函数是
${__timeShift(dd/MM/yyyy,${__time(dd/MM/yyyy)},-P31D,,)}
指定 31 天前的审核日期。
我现在了解到该项目要求审查日期总是在星期一。有什么方法可以确保执行 timeShift 只选择星期一吗?
恐怕 __timeShift() function is not flexible enough, you can consider using __groovy() 函数改为执行以下算法:
- 获取当前日期
- 减去 31 天
- 如果当前星期几是星期一 - return 过去的日期
- 否则加上 1 天,直到过去的日期变成星期一
示例函数代码:
${__groovy(def now = new Date(); def monthAgo = now.minus(31); while (monthAgo[Calendar.DAY_OF_WEEK] != Calendar.MONDAY) { monthAgo = monthAgo.plus(1)}; return monthAgo.format('dd/MM/yyyy'),)}
演示: