В Artillery, как я могу захватить атрибут случайного индекса в массиве JSON, возвращенном из GET, чтобы мои последующие POST были равномерно распределены по ресурсам?
https://artillery.io/docs/http-reference/#extracting-and-reusing-parts-of-a-response-request-chaining
Я использую безсерверную артиллерию для запуска нагрузочного теста, который под капотом использует artillery.io.
Многие мои сценарии выглядят так:
-
get:
url: "/resource"
capture:
json: "$[0].id"
as: "resource_id"
-
post:
url: "/resource/{{ resource_id }}/subresource"
json:
body: "Example"
Получите список ресурсов, а затем отправьте POST на один из этих ресурсов.
Как видите,Я использую capture
для получения идентификатора из ответа JSON. Моя проблема заключается в том, что он всегда получает идентификатор из первого индекса массива.
Это будет означать, что в моем нагрузочном тесте я в конечном итоге просто бью один ресурс, а не ударю их равномерно, что будет более вероятнымсценарий.
Я хотел бы иметь возможность сделать что-то вроде:
capture:
json: "$[RANDOM].id
as: "resource_id"
, но мне не удалось найти в определении JSONPath ничего, что позволило бы мне сделать это.