FitNesse: можно ли извлечь информацию из ответа на шаг теста и использовать это значение на следующем шаге теста

Мне интересно, есть ли в FitNesse возможность при выполнении тестовых этапов получить значение из ответа тестового этапа и использовать это значение на следующем тестовом этапе.

Я использую веб-службы hsac-fitnesse-fixtures и SOAP.

Например, у нас есть 3 этапа тестирования, и значение из ответа первого этапа может автоматически передаваться на второй этап, чтобы получить ответ второго этапа.

При сравнении с SOAP UI у нас есть передача свойств.

Пример ниже:

У нас есть запрос XML:

!define POST_BODY_2 { {{{
    <ns1:ZIP>@{zip}</ns1:ZIP>
    </s11:Envelope>
}}} } 

Этап 1:

|check|xPath|//weather:City/text()|@{City}| 

И мы получаем ответный XML-код, содержащий название города, как "nofollow noreferrer">здесь.

Можно ли передать это название города в качестве значения второму этапу проверки?

То есть у нас есть другой XML-запрос публикации !define POST_BODY_3, и на этот запрос мы можем передать значение (значение города) и получить следующий XML-ответ.

Тест 2 этапа:

|check |response status|200|  

person botguide    schedule 11.03.2016    source источник


Ответы (1)


Если вы используете SLiM в качестве тестовой системы, вы можете использовать тонкий символ

$slimSymbol — это «переменная времени выполнения», используемая в тестовой системе SLiM. Они определяются с помощью символа $slimSymbol= в тестовом примере, и значение будет доступно только во время выполнения. Документация здесь


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

#some setup here

| send request |
| zip | City? | City? |
| 10007 | New York | $response1= |
| 94102 | San Francisco | $response2= |

А в более позднем тестовом примере вы можете ссылаться на названия городов, используя $response1 и $response2. Обратите внимание, что вокруг переменных нет {}.

person Xiawei Zhang    schedule 11.03.2016
comment
Правильно, поэтому ваш «первый этап» становится: |$city=|xPath |//weather:City/text()| вы можете использовать $city в качестве значения в сценарии или сценарии. - person Fried Hoeben; 11.03.2016
comment
Как я могу использовать переменную? Можете ли вы уточнить это на примере. Спасибо - person botguide; 11.03.2016
comment
@botguide смотрите мою правку. У меня сейчас нет под рукой фитнеса, дайте мне знать, как он работает для вас. - person Xiawei Zhang; 11.03.2016
comment
@ФридХобен . Я задал $city как значение в скрипте для этапа вложенного теста, как показано ниже !define POST_BODY_2 { ‹ns1:ZIP›@{city}‹/ns1:ZIP› ‹/s11:Envelope› }}} } и попытался |показать| ответ | Но я получаю сообщение об ошибке: Плохая таблица! DecisionTables должны иметь не менее трех строк. , поэтому я не могу проверить, было ли передано значение через $city. - person botguide; 14.03.2016
comment
@ФридХобен . Как я могу использовать переменную в скрипте или сценарии. Не могли бы вы привести пример здесь. Спасибо - person botguide; 14.03.2016
comment
@botguide просто присвойте ему значение, используя '| $вар= | некоторый метод фиксации |' или как синтаксис, который я разместил выше. и когда вам это нужно, обращайтесь к нему как к $var. - person Xiawei Zhang; 14.03.2016
comment
@XiaweiZhang. На самом деле я пытаюсь сделать то же самое без написания отдельных фикстур, так как использую hsac-fitnesse-fixture. Есть ли возможности. Спасибо. - person botguide; 15.03.2016
comment
@botguide пример показывает назначение переменной. Если бы у вас была переменная, содержащая название города, вы бы использовали ее вместо, например, «Нью-Йорк». Что вы ищете? - person Fried Hoeben; 15.03.2016
comment
@ФридХобен . На самом деле я хочу использовать значение $ city в следующем запросе xml (что я имею в виду на следующем текстовом этапе), чтобы получить предполагаемый ответ xml. Итак, если я укажу переменную $city в следующем запросе xml, я должен получить предполагаемый ответ xml, т.е. запрос xml может прочитать значение переменной $city из предыдущего запроса xml (первый этап). Спасибо. - person botguide; 16.03.2016
comment
@botguide Вы можете использовать $response1 в качестве значения для столбца zip в строке номер 4 в приведенном выше примере (вместо 94102)... - person Fried Hoeben; 16.03.2016