В JMeter, как мне проверить значение, возвращаемое в json, по значению, вычисленному из двух переменных jmeter? - PullRequest
0 голосов
/ 29 марта 2019

Я извлекаю $ .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 Ответ

0 голосов
/ 29 марта 2019
Value expected to match regexp '5 ', but it did not match: '5'

there is a space after 5  here --^

Уберите это место как-нибудь, и ваше утверждение должно начать работать.

Имейте в виду, что начиная с JMeter 3.1 вы должны рассмотреть возможность перехода на __ groovy () как:

  1. Groovy совместим с современными функциями Java, а Beanshell использует синтаксис Java 5
  2. Groovy предоставляет "синтаксический сахар" поверх Java SDK
  3. Производительность Groovy намного лучше по сравнению с Beanshell .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...