日/月/年的值将在请求号1中传递,如bday=${__Random(1,30, bda)}, bmonth=${__Random(1,12, bmont)} & byear=${__Random(1950,2000, byea)}.
我将随机值存储在第3个参数中,并将其用于进一步的请求。现在,我需要在请求no.2中计算Age,并传递'Age'参数的值。只有当日期值超过9时,DOB格式才会是D/MM/YY
和DD/MM/YY
。任何人都可以建议吗?提前谢谢。
答案 0 :(得分:1)
当您在bda,bmont,byea中存储Day Month Year时,您可以在bean shell中使用这些变量来计算年龄
添加以下代码
String year = vars.get(" byea");
String Month = vars.get(" bmont");
String Day = vars.get(" bda");
String birthDate = year +" - " + Month +" - " + Day;
vars.put("生日",出生日期);
在您要传递年龄的请求2中添加beanshell preprocessor并添加以下代码
import java.text.SimpleDateFormat;
String birthDate = vars.get(" birthDate");
SimpleDateFormat sdf = new SimpleDateFormat(" yyyy-mm-dd");
日期dateOfBirth = sdf.parse(birthDate);
日历dob = Calendar.getInstance();
dob.setTime(DATEOFBIRTH);
今天的日历= Calendar.getInstance();
int age = today.get(Calendar.YEAR) - dob.get(Calendar.YEAR);
if(today.get(Calendar.MONTH)< dob.get(Calendar.MONTH)){
年龄 - ;
} else if(today.get(Calendar.MONTH)== dob.get(Calendar.MONTH)
&安培;&安培; today.get(Calendar.DAY_OF_MONTH)< dob.get(Calendar.DAY_OF_MONTH)){
年龄 - ;
} vars.put("年龄",将String.valueOf(年龄));
使用${age}
并传递http请求传递..
有关Beanshell的更多信息,请follow this link...
请告诉我它是否有帮助..
答案 1 :(得分:0)
您可以使用__groovy() function计算2个日期之间的差异,示例语法如下:
${__groovy((groovy.time.TimeCategory.minus(new Date()\, Date.parse('dd-MM-yyyy'\,String.format('%02d'\, vars.get('bda') as int) + '-' + String.format('%02d'\, vars.get('bmont') as int) + '-' + vars.get('byea'))).days / 365).setScale(0\, java.math.RoundingMode.DOWN),)}
演示: