Jmeter - JSON Extractor - проблема с извлечением точного десятичного значения - PullRequest
1 голос
/ 19 февраля 2020

Я пишу тест, чтобы утверждать, что все значения суммы в json содержат 2 цифры после десятичной точки. Экстрактор JSON игнорирует ноль при чтении десятичных значений из Json. Так, например, 8,50 будет 8,5, и, следовательно, точные утверждения не удаются.

Образец Json, который я добавил к пробному пробоотборнику

{
    "shop": {
        "book": [
            {
                "author": "Author 1",
                "title": "Title 1",
                "price": 8.50
            },
        ],
        }
    },
}

Мое утверждение ответа для цена установлена ​​на 8.50

Результат подтверждения

В результатах я получаю ошибку, поскольку она указывает, что 8.5 было извлечено, а не 8.50

Есть ли какие-либо шаги, необходимые, чтобы заставить экстрактор прочитать значение в точности так, как оно отображается в json?

1 Ответ

0 голосов
/ 19 февраля 2020

JMeter's JSON Утверждение опирается на JayWay JsonPath , и эта базовая библиотека содержит ошибку внутри.

Возможно, вы захотите сообщить об этой проблеме на GitHub и, если / когда она будет решена - создать запрос на улучшение для JMeter , чтобы использовать эту более новую улучшенную библиотеку.

Тем временем вы можете использовать JSR223 Утверждение в качестве обходного пути, соответствующий код Groovy будет:

def expectedPrice = 8.50

def actualPrice = new groovy.json.JsonSlurper().parse(prev.getResponseData()).shop.book[0].price

if (expectedPrice != actualPrice) {
    AssertionResult.setFailure(true)
    AssertionResult.setFailureMessage('Price mismatch, expected: ' +  expectedPrice + ', got: ' + actualPrice)
}

Дополнительная информация:

...