В моем плане тестирования JMeter есть сэмплер, который возвращает список авторов и их книги в формате JSON. Я хочу получить только id всех авторов. То есть, в этом случае я должен получить [1,2,3] в имени переменной, чтобы я мог использовать контроллер ForEach для запуска другого сэмплера для получения подробной информации о каждом авторе. Я знаю, что могу использовать экстрактор JSON, чтобы получить это, но я не получаю все данные, которые ищу.
[
{
"firstName": "William",
"lastName":"Shakespeare",
"Title": "Mr",
"id": "1",
"books": [
{
"id": "WS1",
"title": "King John",
"year":"1596"
},
{
"id": "WS2",
"title": "Julius Caesar",
"year": "1599"
},
{
"id": "WS3",
"title": "Romeo and Juliet",
"year": "1595"
}
],
"Nationality": "English"
},
{
"firstName": "Sidney",
"lastName":"Sheldon",
"Title": "Mr",
"id": "2",
"books": [
{
"id": "SS1",
"title": "The Naked Face",
"year":"1969"
},
{
"id": "SS2",
"title": "A Stranger in the Mirror",
"year": "1976"
},
{
"id": "SS3",
"title": "Bloodline",
"year": "1977"
}
],
"Nationality": "American"
},
{
"firstName": "Eiichiro",
"lastName":"Oda",
"Title": "Mr",
"id": "3",
"books": [
{
"id": "EO1",
"title": "Wanted",
"year":"1992"
},
{
"id": "EO2",
"title": "Ikki Yako",
"year": "1993"
},
{
"id": "EO3",
"title": "Monsters",
"year": "1994"
}
],
"Nationality": "Japanese"
}
]
Используя JSON Extractor Post processor, когда я использовал выражение JSON Path $ .. id, оно дает мне все идентификаторы, включая идентификаторы книг. Например, он возвращает [1, WS1, WS2, WS3,2, SS1, SS2, SS3,3, EO1, EO2, EO3]. Я думаю .. в JSON имеется в виду рекурсивный поиск, чего я не хочу. Мне нужны идентификаторы только с верхнего уровня. Можно ли этого достичь, используя встроенный JSON Extractor, или мне нужно использовать какой-то Groovy-скрипт.