Прочитать ответ от утверждения JSR223 на код Java - PullRequest
0 голосов
/ 09 мая 2020

Я хочу прочитать обработанное значение из кода Java. У меня есть утверждение jsr233 в моем jmx, которое обрабатывает значения ({"timestamp": 23893865465, "diff": 34}). Я хочу прочитать это в моем java коде после вызова команды run () в моем экземпляре JMeterEngine.

Я пробовал использовать SamplerListner, но не работал. как я могу прочитать этот ответ.

Код утверждения JSR 233:

 mport groovy.json.JsonBuilder

String totalIDs = vars.get("assetIdCount_matchNr");
Integer result = Integer.valueOf(totalIDs);
Date currentDate = new Date();
if (result > 10){
    vars.put("SEARCH_SUCCESS_TIMESTAMP",currentDate.getTime().toString());
    log.info("ASSET_CREATION_TIMESTAMP:" + props.get("ASSET_CREATION_TIMESTAMP"));
    log.info("ASSET_CREATION_TIMESTAMPAfter:" + props.get("ASSET_CREATION_TIMESTAMP"));
    log.info("SEARCH_SUCCESS_TIMESTAMP:" + vars.get("SEARCH_SUCCESS_TIMESTAMP"));
    def diff = Long.valueOf(vars.get("SEARCH_SUCCESS_TIMESTAMP").toString()) - Long.valueOf(props.get("ASSET_CREATION_TIMESTAMP").toString());
    def timestamp = vars.get("SEARCH_SUCCESS_TIMESTAMP");
    vars.putObject("Diff", diff);
    log.info(String.valueOf(diff));

    def json = new JsonBuilder()
    def root = json timestamp: "5241234134134", diff: "345"

    def file  = new File(vars.get("file_location").toString())
    file.write('\n'+json.toString());
    sleep 10

    AssertionResult.setFailure(true);
}

Java код

 StandardJMeterEngine jmeterSecondary = configJmeter(jmxFileName, argumentObject, jmeter, jMeterAssetECListnerService); //get the jmeter to run by configuring it

                jmeterSecondary.run();
              // I want to get the timestamp and diff here
                jmeterSecondary.reset();
                jmeterSecondary.exit();

Заранее спасибо!

1 Ответ

0 голосов
/ 11 мая 2020

Самый простой вариант, который я могу придумать, - это использовать функцию System.setProperty () для записи значения в системное свойство Java в утверждении JSR223.

Системные свойства являются глобальными для всей JVM, поэтому вы сможете получить к ней доступ с помощью функции System.getProperty () после вызова jmeterSecondary.run();

Пример использования:

enter image description here

Дополнительная информация о различных типах свойств JMeter и способах работы с ними: Apache Руководство по настройке свойств JMeter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...