【发布时间】:2019-12-12 16:32:21
【问题描述】:
我正在尝试每天创建 24 个约会,在创建第 24 个约会后,我希望我的脚本切换到第二天,然后继续每小时添加约会等等。
1 次预约 = 1 小时
我在请求中使用以下 BeanShell PreProcessor 代码进行小时和日迭代:
cal.add(Calendar.DAY_OF_YEAR,1);
cal.add(Calendar.HOUR_OF_DAY,1);
我使用用户定义的变量以以下格式设置初始小时和日期 (HH:mm) (MM/dd/yyyy)
脚本正在运行,但它每天只添加 1 个约会,然后切换到第二天。
我也可以使用循环控制器并将 +1 小时 BeanShell PreProcessor 请求放在循环控制器下,但是在达到循环控制器的 24 个循环后的第二天,我不知道如何切换。 有没有办法在每个线程执行时从用户定义的变量中将天数迭代 1?
这是我在添加预约请求中的 BeanShell 中使用的代码:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Date date1 = sdf.parse(vars.get("HOUR"));
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
cal.add(Calendar.HOUR_OF_DAY,1);
date1 = cal.getTime();
vars.put("HOUR",sdf.format(date1));
log.info("HOUR=" + vars.get("HOUR"));
主要是,我有一个包含 3 个请求的线程组,它们一起代表一个流: 登录 -> 创建患者 -> 为上述患者添加预约
添加约会是一个带有一堆参数的 POST 请求。 我对迭代感兴趣的是:Appointment.StartDateDay 和 Appointment.StartTime。
请帮忙^^
【问题讨论】:
-
您实际上不需要切换日期,如果您继续添加小时数,日期会自动切换。所以删除
cal.add(Calendar.DAY_OF_YEAR,1);应该可以解决问题。 -
感谢您的回复帕思!我已经尝试过您刚才提到的内容,但问题是我的添加预约请求同时包含 HOUR 和 DAY 参数。因此,如果我在同一个线程上循环我的请求 48 次,它仍然会在同一天添加 48 个约会
-
请您将您的代码完整代码粘贴到您的问题中吗?它应该给我更好的背景。
-
当然可以。希望对你有帮助