Jmeter 如何根据先前请求中提供的日/月/年值计算年龄?-开源

Jmeter 如何根据先前请求中提供的日/月/年值计算年龄?-开源,jmeter,Jmeter,日/月/年的值将在请求1中传递,如bday=${uuuu Random(1,30,bda)},bmmonth=${uuu Random(1,12,bmont)}&byear=${uuuu Random(19502000,byea)}。我将随机值存储在第三个参数中,并用于进一步的请求。现在,我需要计算2号请求中的年龄,并传递'Age'参数的值。只有当日期值大于9时,DOB格式才会是D/MM/YY和DD/MM/YY。有人能对此提出建议吗?提前感谢。因为您正在bmont byea的bda中存储日-月-

日/月/年的值将在请求1中传递,如
bday=${uuuu Random(1,30,bda)},bmmonth=${uuu Random(1,12,bmont)}&byear=${uuuu Random(19502000,byea)}。
我将随机值存储在第三个参数中,并用于进一步的请求。现在,我需要计算2号请求中的年龄,并传递'Age'参数的值。只有当日期值大于9时,DOB格式才会是
D/MM/YY
DD/MM/YY
。有人能对此提出建议吗?提前感谢。

因为您正在bmont byea的bda中存储日-月-年。。您可以在BeanShell中使用这些变量来计算年龄

  • 首先在生成随机DOB的1号请求中添加一个
  • 在后处理器中添加以下代码

    字符串年份=变量获取(“byea”)

    字符串月份=vars.get(“bmont”)

    String Day=vars.get(“bda”)

    字符串生日=年+“-”+月+“-”+日

    vars.put(“生日”,生日)

  • 在请求2中添加一个您希望通过年龄的位置,并添加以下代码

    导入java.text.simpleDataFormat
    字符串birthDate=vars.get(“birthDate”)

    SimpleDataFormat sdf=新SimpleDataFormat(“yyyy-mm-dd”)

    dateOfBirth=sdf.parse(出生日期)

    Calendar dob=Calendar.getInstance()

    出生日期设定时间(出生日期)

    Calendar today=Calendar.getInstance()

    int age=today.get(Calendar.YEAR)-dob.get(Calendar.YEAR)

    如果(今天获取(日历月) 年龄--

    }else if(今天.get(日历.MONTH)=dob.get(日历.MONTH)

    &&today.get(日历月日) 年龄--

    } 变量put(“age”,String.valueOf(age))

  • 如下图所示

    使用
    ${age}
    并在http请求中传递

    有关Beanshell的更多信息,请


    请让我知道这是否有帮助。

    因为您正在bda、bmont、byea中存储日-月-年。。您可以在BeanShell中使用这些变量来计算年龄

  • 首先在生成随机DOB的1号请求中添加一个
  • 在后处理器中添加以下代码

    字符串年份=变量获取(“byea”)

    字符串月份=vars.get(“bmont”)

    String Day=vars.get(“bda”)

    字符串生日=年+“-”+月+“-”+日

    vars.put(“生日”,生日)

  • 在请求2中添加一个您希望通过年龄的位置,并添加以下代码

    导入java.text.simpleDataFormat
    字符串birthDate=vars.get(“birthDate”)

    SimpleDataFormat sdf=新SimpleDataFormat(“yyyy-mm-dd”)

    dateOfBirth=sdf.parse(出生日期)

    Calendar dob=Calendar.getInstance()

    出生日期设定时间(出生日期)

    Calendar today=Calendar.getInstance()

    int age=today.get(Calendar.YEAR)-dob.get(Calendar.YEAR)

    如果(今天获取(日历月) 年龄--

    }else if(今天.get(日历.MONTH)=dob.get(日历.MONTH)

    &&today.get(日历月日) 年龄--

    } 变量put(“age”,String.valueOf(age))

  • 如下图所示

    使用
    ${age}
    并在http请求中传递

    有关Beanshell的更多信息,请


    如果有帮助,请告诉我。

    您可以使用以下示例语法计算两个日期之间的差异:

    ${__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),)}
    
    演示:


    更多信息:

    您可以使用以下示例语法计算两个日期之间的差异:

    ${__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),)}
    
    演示:


    更多信息:

    感谢您为此付出的巨大努力。如果这有助于你接受答案,请参阅“感谢你为此付出的巨大努力”。它非常有效。如果它有助于您接受答案,请参阅