2016-12-27 2 views
2

У меня есть проект мыла с 4 тестовыми пакетами, каждый тестовый комплект имеет несколько тестовых примеров, и каждый тестовый пример имеет несколько этапов тестирования [Soap Request, Groovy Script] I я в состоянии получить доступ ко всем свойства, используя упомянутый ниже код, ОДНАКО, код записывает пустой файл запроса/ответа в локальной системе **как написать весь запрос на мыло, доступный в проекте с использованием Soap UI Groovy

def Project = testRunner.testCase.testSuite.project; 
for(def i=0;i<Project.testSuiteCount;i++) 
{ 
log.info Project.getTestSuiteAt(i).name 
def Suite = Project.getTestSuiteAt(i) 
    for(def j=0;j<Suite.testCaseCount;j++) 
    { 
    log.info Suite.getTestCaseAt(j).name 
    def TCase = Suite.getTestCaseAt(j) 
    for(def k=0;k < TCase.testStepCount;k++) 
    { 
    def TStep= TCase.getTestStepAt(k) 
    def req = context.expand('${'+TStep.name+'#Request}') 
    new File("D:/Directory/"+Suite.name+"_"+TCase.name+"_"+TStep.name+"_"+k+".txt").write(req) 
    } 
    } 
} 

** плз помочь решить эту проблему, **

+0

Пожалуйста, выравнивать код правильно –

+0

@ Андрей Абрамов Done –

+0

@albciff могли бы вы помочь здесь, –

ответ

2

на самом деле это несколько подходов для достижения этого. Ниже приведен один из подходов.

Здесь Groovy Script, который пишет запросы и ответы.

Этот сценарий предполагает, что пользователь уже запускает тестовые пакеты, чтобы ответы были доступны для сохранения.

Создать новый набор тестов -> тест -> добавить Groovy Script пробный шаг и скопируйте приведенный ниже сценарий в нем.

Groovy Script:

/** 
* This groovy script saves the request and response 
* And this script will be able to write the responses 
* into files if and only if there is response available 
**/ 
import com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep 

//Change direcoty path if required 
def directoryToSave = 'D:/directory' 

//Not required to change the script beyond this point 

//date time is appended to the file name 
def dt = new Date().format('yyyyMMdd_HHmmss') 

//Closure to save the file 
def saveToFile(file, content) { 
    if (!file.parentFile.exists()) { 
     file.parentFile.mkdirs() 
     log.info "Directory did not exist, created" 
    } 
    if (content) { 
     log.info "Writing the content into file :${file.name}" 
    file.write(content) 
    assert file.exists(), "${file.name} not created" 
    } else { 
     log.warn "the content is empty, not writing the content into file" 
    } 
} 

//Get the project object 
def project = context.testCase.testSuite.project 

//Loop thru the project and save the request and responses 
project.testSuiteList.each { suite -> 
    suite.testCaseList.each { kase -> 
       kase.testStepList.each { step -> 
      if (step instanceof WsdlTestRequestStep) { 
       def reqFilePath = new File("${directoryToSave}/${suite.name}_${kase.name}_${step.name}_request${dt}.xml") 
       def resFilePath = new File("${directoryToSave}/${suite.name}_${kase.name}_${step.name}_response${dt}.xml") 
       saveToFile(reqFilePath, step.testRequest.requestContent) 
       saveToFile(resFilePath, step.testRequest.responseContent) 
saveToFile(step) 
      } else { 
       log.info "Ignoring as the step type is not Soap request" 
      } 
     } 
    } 
} 
+0

спасибо за быстрый ответ, но я могу написать только один req/res, используя этот ..Error groovy.lang.MissingMethodException: Нет сигнатуры метода: Script2.saveToFile() применим для типов аргументов: (com.eviware.soapui .impl.wsdl.teststeps.WsdlTestRequestStep): [[email protected]9] Возможные решения: saveToFile (java.lang.Object, java.lang.Object) ошибка в строке: 35 –

+0

как указано, должны быть ответы или тесты должны быть выполнены перед запуском указанного сценария. Если один запрос может быть написан, то для других тоже не должно быть проблем. – Rao

+0

Позвольте мне попробовать еще раз, но что делать, если в ответе есть время ожидания –

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