Tufty
Tufty

Reputation: 535

Jmeter - What is the best extractor to use on a json message?

Currently testing system where the output is in the form of formatted json.

As part of my tests I need to extract and validate two values from the json record.

The values both have individual identifiers on them but don't appear in the same part of the record, so I can't just grab a single long string.

Loose format of the information in both cases:

"identifier1": [{"identifier2":"idname","values":["bit_I_want!]}]

In the case of the bit I want, this can either be a single quoted value (e.g. "12345") or multiple quoted values (e.g. "12345","23456","98765").

In both cases I'm only interested in validating the whole string of values, not individual values from the set.

Can anyone recommend which of the various extractors in Jmeter would be best to achieve this?

Many Thanks!

Upvotes: 1

Views: 384

Answers (2)

Dmitri T
Dmitri T

Reputation: 168052

The most obvious choicse seems to be JSON Path Assertion (available via JMeter Plugins), it allows not only executing arbitrary JSON queries but conditionally failing the sampler basing on actual and expected result match.

The recommended way of installing JMeter Plugins and keeping them up-to-date is using JMeter Plugins Manager

JSON Plugins JMeter Plugins Manager

Upvotes: 1

vins
vins

Reputation: 15370

JMeter 3.1 comes with JSON Extractor to parse JSON response. you could use this expression $.identifier1[0].values as the JSON Path to extract the values.

If your JSON response is going to simple always as shown in your question, you could use Regular Expression Extractor as well. Advantage is it is faster than JSON extractor. The regular expression would be "values":\[(.*?)\]

Reference: http://www.testautomationguru.com/jmeter-response-data-extractors-comparison/

Upvotes: 0

Related Questions