JMeter script 2: Cách extract data json

Giả sử bạn có 1 json từ response của 1 request nào đấy, giờ bạn muốn extract thông tin ở trong đó ra save nó lại vào biến.

{
    "firstName": "John",
    "lastName": "doe",
    "age": 26,
    "address": {
        "streetAddress": "naist street",
        "city": "Nara",
        "postalCode": "630-0192"
    },
    "phoneNumbers": [
        {
            "type": "iPhone",
            "number": "0123-4567-8888"
        },
        {
            "type": "home",
            "number": "0123-4567-8910"
        }
    ]
}

Ở đây, mình dùng Dummy Sampler để mô phỏng kết quả trả về và dùng JSR223 PostProcessor để viết script.

Step 1: Print cái response của request ra trước:

log.info(prev.getResponseDataAsString())

Ở đây mình dùng luôn cái biến prev để trỏ vào object SampleResult, rồi gọi method getResponseDataAsString() để lấy toàn bộ response dưới dạng String.

Sau khi đã xác định được đây chính là cái mình muốn thì bạn có thể comment bỏ dòng này.

Step 2: Dùng object JsonSuppler để parse từ String sang json object và access vào các thông tin trong json.

import groovy.json.JsonSlurper

//log.info(prev.getResponseDataAsString())

def slurper = new JsonSlurper()
def response = slurper.parseText(prev.getResponseDataAsString())

log.info("first name = {} ", response.firstName)

Lưu ý: cách lấy thông tin bằng JsonSlurper này sẽ khác hoàn toàn với cái JSON Extractor nhé, cú pháp của JSON Extractor ko dùng được ở đây.

Ví dụ: Để lấy tất cả các phone number:

log.info("All phone_number = {} ", response.phoneNumbers.number)

log.info("phone_number of Iphone = {} ", response.phoneNumbers.findAll {it.type == 'iPhone'}.number)

Về cơ chế của JsonSlurper mình đã giải thích ở bài này, các bạn có thể đọc để hiểu tường tận.

5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments