Chociaż JSONPath Extractor nie przewiduje hasSize
funkcji jest jeszcze można zrobić.
Biorąc przykład z odpowiedzi JSON przez PMD UBIK-INGENIERIE, można uzyskać numer mecze na book
tablicy przynajmniej na 2 sposoby:
1. Easiser (ale kruchy) sposób - za pomocą Regular Expression Extractor.
Jak widać, istnieją 4 wpisy dla category
jak:
{ "category": "reference",
{ \"category\": \"fiction\"
...
Jeśli dodać do wyrażenia regularnego Extractor skonfigurowane następująco:

To będzie przechwytywać wszystkie category
wpisy i wyniki zwracanych numerów są następujące:

Dzięki temu będziesz mógł użyć tej zmiennej ${matches_matchNr}
wszędzie tam, gdzie jest to wymagane.
To podejście jest proste i łatwe do wdrożenia, ale jest bardzo podatne na wszelkie zmiany w formacie odpowiedzi. Jeśli spodziewasz się, że dane JSON mogą ulec zmianie w przewidywalnej przyszłości, przejdź do następnej opcji.
2. Harder (ale bardziej stabilny) way - wywołanie metody JsonPath od Beanshell PostProcessor
JMeter ma BeanShell mechanizm wewnętrzny skryptowy, który ma dostęp do wszystkich zmiennych/właściwości w zakresie, jak również dostęp do podstawowej i 3 JMeter -zależności API od stron. W tym przypadku możesz zadzwonić pod bibliotekę JsonPath (która znajduje się pod wyciągiem JsonPath Extractor) bezpośrednio z Beanshell PostProcessor.
import com.jayway.jsonpath.Criteria;
import com.jayway.jsonpath.Filter;
import com.jayway.jsonpath.JsonPath;
Object json = new String(data);
List categories = new ArrayList();
categories.add("fiction");
categories.add("reference");
Filter filter = Filter.filter(Criteria.where("category").in(categories));
List books = JsonPath.read(json, "$.store.book[?]", new Filter[] {filter});
vars.put("JSON_ARRAY_SIZE", String.valueOf(books.size()));
Powyższy kod ocenia JSONPath ekspresji $.store.book[?]
przed odpowiedzią rodzic sampler, zlicza mecze numer i zapisuje go do ${JSON_ARRAY_SIZE}
JMeter Variable

które później mogą być ponownie wykorzystane w przypadku klauzula lub twierdzenie .
Referencje:
Sprawdź tę odpowiedź: http://stackoverflow.com/a/40926919/1306012 może wyglądać za to. Użyj "* _matchNr" swojej zmiennej. –