Я использую jmeter json extractor Мой ответ JSON выглядит следующим образом -
{ "data":
[
{
".auths":
[
{
"asf":
{
"__t": "aaaaa",
"vs": 1,
"v":
[ {
"__id": "1",
".state": 1,
".version": 275,
"authorizedSubFlight": { "v": "SUB1" },
"purchaseOrderNumber":
{ "__t": "0000", "vs": 1, "v": "9999", "vl": "PO1" } },
{
"__t": "bbbbb",
"vs": 1,
"v": [
{
"__id": "2",
".state": 1,
".version": 275,
"authorizedSubFlight": { "v": "SUB2" },
"purchaseOrderNumber":
{ "__t": "0000", "vs": 1, "v": null, } },
{
"__t": "ccccc",
"vs": 1,
"v": [
{
"__id": "3",
".state": 1,
".version": 275,
"authorizedSubFlight": { "v": "SUB3" },
"purchaseOrderNumber": null },
и т. Д. *
Мне нужно извлечь значения authorizedSubFlight & purchaseOrderNumber как показано ниже -
var_sb_1 = SUB1, var_po_1 = PO1
var_sb_2 = SUB2, var_po_2 = NULL
var_sb_3 = SUB3, var_po_3 = NULL
Затем я использую эти значения в запросе jdbc , который находится в цикле while для каждого значения var_sb
,поэтому я хотел бы, чтобы для SUB1
, var_po
читалось всегда, читайте первое значение var_po_1
, которое является PO1 и т. д.
Моя проблема заключается в извлечении var_po
значений.Я использую экстрактор JSON как -
json path expression: $..data[*].[".auths"][*].purchaseOrderNumber.vl
match no: -1
default value: null
Я ожидаю var_po_2 = null
& var_po_3 = null
, но все, что я получаю, это var_po = null
и, следовательно, мои дальнейшие проверки не пройдены.
Это может быть связано с тем, что я извлекаю значение vl в выражении пути json, и у меня нет vl для второго и третьего случая.
Есть ли способ обработки такого случая в экстракторе json?