#jmeter
#jmeter
Вопрос:
Я извлекаю $.matching_results из этого json:
{
"matching_results": 5,
"enrichments": {
"keywords": [
{
"text": "shore of Mobile Bay",
"relevance": 0.809978
}
],
"concepts": [
{
"text": "Mobile, Alabama",
"relevance": 0.972324
},
{
"text": "Birmingham, Alabama",
"relevance": 0.954301
}
]
},
"session_token": "1_e7R7s9QIt28pN8p3_TzjR8acCX"
}
и я хочу сравнить его с произведением двух переменных
${__BeanShell(${__evalVar(numAssetThreads)}*${__evalVar(numAssetLoops)})}
Я попробовал приведенное выше выражение и это выражение ${__BeanShell(String.valueOf(${__evalVar(numAssetThreads)}*${__evalVar(numAssetLoops)}))}
и я пробовал это с Match as a regular expression
указанием и без него.
Я также пытался ${__BeanShell(${__V(numAssetThreads)}*${__V(numAssetLoops)})}
Во всех случаях я получаю сообщение об ошибке, подобное этому:
Assertion failure: true
Assertion failure message: Value expected to match regexp '5 ', but it did not match: '5'
или
Assertion error: false
Assertion failure: true
Assertion failure message: Value expected to be '2 ', but found '2'
Как я могу заставить это работать?
Ответ №1:
Value expected to match regexp '5 ', but it did not match: '5'
there is a space after 5 here --^
Каким-то образом удалите это пространство, и ваше утверждение должно начать работать.
Имейте в виду, что начиная с JMeter 3.1 вам следует рассмотреть возможность перехода на функцию __groovy() как:
- Groovy совместим с современными функциями Java, в то время как Beanshell застрял на синтаксисе Java 5
- Groovy предоставляет «синтаксический сахар» поверх Java SDK
- Производительность Groovy намного лучше по сравнению с Beanshell.