Jmeter case_ random startDate && random endDate

249 阅读1分钟

Jmeter case structure

image.png

Body Data example

{
    "universe": [
        {
            "instrumentType": "ForwardRateAgreement",
            "instrumentDefinition": {
                "startDate": "${__RandomDate(,2022-04-30,2023-04-30,,)}",
                "fixedRatePercent": 0.9,
                "endDate": "${__RandomDate(,2025-04-30,2027-08-30,,)}",
                "notionalCcy": "EUR",
                "indexName": "EURIBOR",
                "interestCalculationMethod": "Dcb_30_360",
                "indexTenor": "3M",
                "notionalAmount": ${__Random(1000000,9990000,)}
            }
        },
        {
            "instrumentType": "ForwardRateAgreement",
            "instrumentDefinition": {
                "startDate": "${__RandomDate(,2022-04-30,2023-04-30,,)}",
                "fixedRatePercent": 0.9,
                "endDate": "${__RandomDate(,2025-04-30,2027-08-30,,)}",
                "notionalCcy": "EUR",
                "indexName": "EURIBOR",
                "interestCalculationMethod": "Dcb_30_360",
                "indexTenor": "3M",
                "notionalAmount": ${__Random(1000000,9990000,)}
            }
        }
        {
            "instrumentType": "ForwardRateAgreement",
            "instrumentDefinition": {
                "startDate": "${__RandomDate(,2022-04-30,2023-04-30,,)}",
                "fixedRatePercent": 0.9,
                "endDate": "${__RandomDate(,2025-04-30,2027-08-30,,)}",
                "notionalCcy": "EUR",
                "indexName": "EURIBOR",
                "interestCalculationMethod": "Dcb_30_360",
                "indexTenor": "3M",
                "notionalAmount": ${__Random(1000000,9990000,)}
            }
        },
        {
            "instrumentType": "ForwardRateAgreement",
            "instrumentDefinition": {
                "startDate": "${__RandomDate(,2022-04-30,2023-04-30,,)}",
                "fixedRatePercent": 0.9,
                "endDate": "${__RandomDate(,2025-04-30,2027-08-30,,)}",
                "notionalCcy": "EUR",
                "indexName": "EURIBOR",
                "interestCalculationMethod": "Dcb_30_360",
                "indexTenor": "3M",
                "notionalAmount": ${__Random(1000000,9990000,)}
            }
        }
    ]
}

JSR233 PreProcessor

import java.text.SimpleDateFormat;
import java.util.Calendar;

calendar = Calendar.getInstance();
calendar.set(2019, 0, 1);
startTime = calendar.getTimeInMillis();
calendar.set(2020, 11, 31);
endTime = calendar.getTimeInMillis();
randomTime1 = startTime + (long)(Math.random()*(endTime-startTime));
randomTime2 = randomTime1 + (long)(180000000);

formatter = new SimpleDateFormat("yyyy-MM-dd");
calendar.setTimeInMillis(randomTime1);
vars.put("marketdataDate", formatter.format(calendar.getTime()));
log.info(formatter.format(calendar.getTime()));
calendar.setTimeInMillis(randomTime2);
vars.put("startDate", formatter.format(calendar.getTime()));
log.info(formatter.format(calendar.getTime()));