Hvernig á að flokka JSON viðbrögð með JSON útdrætti JMeter

Frá og með JMeter 3.0 er miklu auðveldara að vinna úr gögnum úr JSON svörum með því að nota JSON breytuútdráttinn. JSON er afar einfalt gagnasnið sem hefur tekið yfir XML fyrir nokkrum árum.

Vaxandi fjöldi REST API og netþjóna notar JSON sem aðal gagnaskiptaform. Hér munum við nota JMeter til að flokka JSON viðbrögðin.

Ef þú ert ekki með JMeter uppsettan skaltu lesa þessa grein sem útskýrir hvernig á að setja upp JMeter á Mac OS .


Segjum að við höfum JSON svar sem hér segir:

{
'store': {
'book': [

{


'category': 'reference',


'author': 'Nigel Rees',


'title': 'Sayings of the Century',


'price': 8.95

},

{


'category': 'fiction',


'author': 'Evelyn Waugh',


'title': 'Sword of Honour',


'price': 12.99

}
],
'bicycle': {

'color': 'red',

'price': 19.95
}
},
'expensive': 10 }

Til að flokka ofangreindan JSON við JMeter þurfum við að bæta JSON útdráttarvélinni við prófunaráætlun okkar.


Hægri smelltu á prófunaráætlun -> Bæta við -> Eftirvinnsluaðilar -> JSON útdráttarvél



Nú ættum við að sjá eftirfarandi sýn:


Í JSON Path tjáningarreitnum getum við sett inn JSON slóð okkar til að flokka JSON svarið

Hér eru nokkur dæmi um Json Path tjáningu sem hægt er að nota til að vinna úr gögnum úr Json skjalinu sem er að ofan:

+---------------------------------------+--------------------------------------------------------------+ | JSONPath





| Result










| +---------------------------------------+--------------------------------------------------------------+ | $.store.book[*].author


| The authors of all books






| | $..author




| All authors









| | $.store.*




| All things, both books and bicycles




| | $.store..price



| The price of everything






| | $..book[0,1]




| The first two books







| | $..book[:2]




| All books from index 0 (inclusive) until index 2 (exclusive) | | $..book[2:]




| Book number two from tail






| | $..book[?(@.isbn)]



| All books with an ISBN number





| | $.store.book[?(@.price < 10)]
| All books in store cheaper than 10




| | $..book[?(@.price <= $[‘expensive’])] | All books in store that are not “expensive”


| | $..book[?(@.author =~ /.*REES/i)]
| All books matching regex (ignore case)



| | $..*





| Give me every thing







| | $..book.length()



| The number of books







| +---------------------------------------+--------------------------------------------------------------+