2014-09-25 2 views
0

Я разработал некоторые случаи SoapUI, которые устанавливают свойство в начале каждого тестового примера, читая свойства из файла. Это прекрасно работает, я могу получить доступ к каждому свойству (скажем propertyA) по синтаксису ${propertyA} на каждом этапе запроса теста.soapui transfer test suite свойство для тестового примера с использованием сценария

Теперь я понял, что одно из свойств одинаково для каждого тестового примера, поэтому я решил создать свойство testuite для этой цели и удалить определение свойства из файлов свойств тестового случая. Вначале мои тестовые сценарии все провалились, теперь «propertyA» уже не известно, но я понял, что (согласно http://www.soapui.org/Scripting-Properties/property-expansion.html) одним из решений является замена каждой ссылки на propertyA на #testSuite#propertyA.

Это немного утомительно, поэтому я подумал о создании строчного скрипта в начале каждого тестового примера, который создает свойство тестового случая из свойства тестового набора. По http://www.soapui.org/Scripting-Properties/tips-a-tricks.html я думал, что сценарий, как

def testSuiteProperty = testRunner.testCase.testSuite.getPropertyValue("propertyA") 
testRunner.testCase.setPropertyValue("propertyA", testSuiteProperty) 

должен делать эту работу. И если I log.info значение testSuiteProperty дает действительно желаемое значение, а также, если я присваиваю свойству testCase некоторую переменную и log.info, оно показывает правильное значение.

Однако на следующем этапе тестирования propertyA не известен. Просто чтобы убедиться, что я пытался использовать ${#testCase#propertyA}, но это также неизвестно. Что я здесь не так понял?

ответ

0

Я думаю, что ваша проблема в том, что t из testCase в ${#testCase#propertyA} должен быть прописным. ${#TestCase#propertyA}. Если добавить заводной шаг теста с кодом:

def testSuiteProperty = testRunner.testCase.testSuite.getPropertyValue("propertyA") 
testRunner.testCase.setPropertyValue("propertyA", testSuiteProperty) 

И затем я добавляю шаг теста SOAP с последующей XML:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:open="http://www.openuri.org/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <open:procesa> 
     <open:selector>${#TestCase#propertyA}</open:selector> 
     </open:procesa> 
    </soapenv:Body> 
</soapenv:Envelope> 

Это правильно работает, однако, если я использую ${#testCase#propertyA} свойство имеет значение не найдено.

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

Надеюсь, что это поможет,

Смежные вопросы