[QA] Домашно Web Service testing


3

Здравейте,

В домашното за Web Service testing се изисква използването на Property Transfer функционалността в SoupUI. Самият Web Service за държавите връща отговорите си в XML, който съдържа втори XML:

Property Transfer обаче може да навигира единствено до границите на външния XML:

Това не позволява да се трансферира конкретна стойност от вътрешния XML, необходима за изпращането на друга заявка. Примерно, бих искал да взема само стойността на Currency (в случая Lev), която да ползвам за тестване на друго API.

Търсих отговор в документацията и в Stack Overflow, но безуспешно.

Някой успял ли е случайно да намери решение на този проблем?




Отговори



3

Привет,

Успях със скриптова стъпка и парсване в нея. Сигурен съм че има по-елегантно решение, примерно някой парсъс в груви скрипт, но не ми се ровеше повече снощи, а и това върши работа.  В гугъл търси groovy script ако искаш допълнителна информация.
Ето една примерна стъпка:

def response = testRunner.testCase.testSteps["GetCountryByCountryCode -GetCountryByCode" - това е името на тест стъпката(рекуеста)].testRequest.response.getResponseContent()

Парсването:

def first = response.split("<name>")
def second = first[1].split("</name>")
def countryName = second[0]

Запазваш в пропърти което има скоуп само теста, аз си ги създавах празни предварително:

testRunner.testCase.setPropertyValue( "CountryDynamic", countryName )
log.info("Country name from request is " + countryName)

След това вече си имаш стойността в пропъртито и го даваш на следващата стъпка.

Дано съм помогнал.

Поздрави!


от decho.D (120 точки)


3
След като прерових доста теми, най-накрая открих нещо, което отговаря на нашия случай. Мисля, че точно това трябва да използваме PropertyTransfer :) Обяснено е горе-долу разбираемо, но ако имаш затруднения, пиши, за да ти дам допълнителна информация :)

от loderunner (15 точки)