XPath JMeter Утверждение: ошибка «префикс должен разрешаться в пространство имен» - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь использовать JMeter XPath Assertion для значения тега, как показано ниже, с командой подтверждения XPath:

//m:CurrencyNameResul/text() = Pounds

Ответ Webservice:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <m:CurrencyNameResponse xmlns:m="http://www.oorsprong.org/websamples.countryinfo">
      <m:CurrencyNameResult>Pounds</m:CurrencyNameResult>
    </m:CurrencyNameResponse>
  </soap:Body>
</soap:Envelope>

Я получаю ошибку

Префикс должен разрешаться в пространство имен

и после обращения к руководству JMeter ниже:

NAMESPACES As a work-round for namespace limitations of the Xalan XPath parser implementation on which JMeter is based, you can provide a Properties file which contains mappings for the namespace prefixes:
prefix1=Full Namespace 1
prefix2=Full Namespace 2
…
You reference this file in jmeter.properties file using the property:
xpath.namespace.config

Я не понимаю, поэтому мои вопросы:

  • каким должно быть содержимое файла свойств?
  • где поставить свой путь?

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Вы можете изменить свой запрос XPath, чтобы использовать функцию name () , например:

(//*[name() = 'm:CurrencyNameResult'])/text()

, и вам не придется вносить изменения в свойства, перезапускать JMeter и т. Д.

JMeter Xpath Name

Более того, если вместо этого вы перейдете к функции local-name () , вам не нужно будет включать префикс пространства имен в ваш запрос:

(//*[local-name() = 'CurrencyNameResult'])/text()

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

0 голосов
/ 10 сентября 2018

Вот как это сделать:

Создайте в папке jmeter / bin файл namespaces.properties, содержащий:

m = http://www.oorsprong.org/websamples.countryinfo

Inuser.properties set:

xpath.namespace.config = namespaces.properties

Наконец исправьте ваше утверждение, чтобы оно содержало:

//m: CurrencyNameResult = 'Pounds'

И отметьте "Использовать пространства имен"

В итоге:

XPath Assertion configuration

...