SOAP UI - Установите значение узла во всех запросах шага теста для всех тестов в наборах тестов. - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь установить значение узла во всех запросах шага теста xml для всех тестов в наборе тестов.

Groovy-скрипт находится в первом тестовом примере, и я получаю сообщение об ошибке (XmlException: Неожиданный элемент: CDATA), как только скрипт пытается отредактировать тот же тег во втором тестовом примере.

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def AlltestCases = testRunner.testCase.testSuite.project.testSuites[testRunner.testCase.testSuite.name] 

0.upto(AlltestCases.getTestCaseCount()) {
     AlltestCases.getTestCaseList().each{ 
     it.getTestStepList().each{ if(it.getClass()==com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep){ 
     if(it.getName().toLowerCase().contains("verify")){ 

     step = groovyUtils.getXmlHolder("${it.getName()}"+"#Request") 
     step.setNodeValue("//*:Name/text()", "\$"+"{#TestSuite#NAME_ID}") 
     step.updateProperty() 

             } 
          } 
       } 
    } 
  }

1 Ответ

1 голос
/ 17 июня 2019

Если я правильно понимаю ваш вопрос, вы хотите "ввести" значение в число запросов?

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

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

Кроме того, вы также получите больше гибкости. Если несколько запросов в какой-то момент изменят путь или имя сущности, которую вы хотите изменить, вам нужно, чтобы приведенный выше код обрабатывал такую ​​ситуацию. Не так, если вы просто используете переменную в каждом из ваших запросов.

...