Как присвоить значение NULL переменной, когда нет соответствующего значения в JSON Extractor - PullRequest
0 голосов
/ 21 февраля 2020

у меня ниже JSON. Данные errorMessage присваиваются переменной pError, если она существует. В противном случае они должны присваивать нулевые или не найденные данные.

{"data": {"devTransactions": [{"actionId ":" ae6deb12c356 "," status ":" Failed "," details ": {" value ": 427," error ": {" stage ":" MANAGE "," errorCode ":" ERR021001 "," errorMessage ":" Failed to start "}, "hcigId": "28fccffdf291", "deviceId": "571a71b05c50"}, "cancelledBy": ""}, {"actionId ":" 9f486bc9b111 "," status ":" COMPLETED "," details ": {" empid " : "1000", "deptId": "230"}, "cancelledBy": ""}]}, "success": true, "statusCode": 200}

Позже я хочу назначить pError для массив строк и выборка значений. Мой размер массива фиксирован, скажем, 50. Я получаю ошибку сейчас, когда извлекаю его с помощью al oop, потому что данные не существуют в этом конкретном индексе массива.

Как назначить ноль или не найдены данные для переменной pError, если данные или элемент json не найдены?

String strError = "$ {pError_ALL}"; String [] error = strError.split (",");

enter image description here

1 Ответ

0 голосов
/ 24 февраля 2020

Я не совсем понимаю, чего вы пытаетесь достичь, но очевидно одно: ваше выражение Json Path не будет соответствовать ни одному из значений атрибута или errorMessage, поскольку ваше devTransactions является JSON Array

enter image description here

Чтобы получить значения сообщений об ошибках, необходимо изменить выражение так, чтобы оно выглядело так:

$.data.devTransactions[*].details.error.errorMessage

enter image description here

Прежде чем писать какой-либо код (кстати, неправильно ссылающийся на переменные JMeter, вы должны изменить его, чтобы использовать сокращение vars для класса JMeterVariables экземпляр как String strError = vars.get("pError_ALL");) Я бы рекомендовал дважды проверить значение переменной pError_ALL, используя Debug Sampler .

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