Как захватить запрос и ответ в testSuite TearDown, используя groovy - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть testSuite с, скажем, 5 случаями, я запускаю эти случаи из моего testSuite.

В моем сценарии разрыва я хочу захватить все запросы и ответы всех тестовых случаев во всех testSteps.

Ниже приведен код, который я написал в tearDown TestSuite, проблема в context.expand возвращается пустым.Я предполагаю, что контекст testCase требуется, или не уверен, где я иду не так.

tc_list = testSuite.getTestCaseList()
tc_count = tc_list.size()
for(i=0;i<tc_list.size();i++){
    if(!tc_list[i].isDisabled()){

        ts_list =  tc_list[i].getTestStepList()

        for(j=0;j<ts_list.size();j++){
            req = testSuite.getPropertyValue("reportpath")+'/'+testSuite.getName()+'/'+tc_list[i].getName()+'/'+ts_list[j].getName()+'_RequestData.txt'
            res = testSuite.getPropertyValue("reportpath")+'/'+testSuite.getName()+'/'+tc_list[i].getName()+'/'+ts_list[j].getName()+'_ResponseData.txt'

            def request_expand = context.expand('${'+ts_list[j].getName()+'#Request}')
            log.info '${'+ts_list[j].getName()+'#Response}'+tc_list[i].getName()
               def response_expand = context.expand('${'+ts_list[j].getName()+'#Response}')
              log.info response_expand



             /* def req_file = new File(req)
               req_file.write(request_expand,"UTF-8")
               def res_file = new File(res)
               res_file.write(response_expand,"UTF-8") */



            }
        }


    }

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

@ Ragesh kr

Всякий раз, когда в любое время в Soap UI или Ready API вам нужно RawRequest или RawResponse

, вы можете просто заменить Запрос на Raw Запрос и ответ с Raw Ответ

Я только что сделал в вашем коде, и это сработало

        def request_expand = testSuite.getTestCaseByName(tc_list[i].getName()).getTestStepByName(ts_list[j].getName()).getPropertyValue("RawRequest")
        def response_expand = testSuite.getTestCaseByName(tc_list[i].getName()).getTestStepByName(ts_list[j].getName()).getPropertyValue("RawResponse")

Некоторые другие примеры, чтобы помочь всем

Когда нам просто нужен запрос и ответ в soapui, мы можем использовать ниже

enter image description here

Когда нам просто нужны RawRequest и RawResponse в soapui / ReadyaPIЧерез Groovy мы можем использовать ниже

 req=context.expand('${RequestStepName#RawRequest}')
 log.info req
 res=context.expand('${RequestStepName#RawResponse}')
 log.info res

enter image description here

0 голосов
/ 13 февраля 2019

Код ниже работает для меня.Но я все еще пытаюсь перехватить rawRequest и rawResponse, что все еще не достигнуто

tc_list = testSuite.getTestCaseList()
tc_count = tc_list.size()
for(i=0;i<tc_list.size();i++){
    if(!tc_list[i].isDisabled()){

        ts_list =  tc_list[i].getTestStepList()

        for(j=0;j<ts_list.size();j++){

            req = testSuite.getPropertyValue("reportpath")+'/'+testSuite.getName()+'/'+tc_list[i].getName()+'/'+ts_list[j].getName()+'_RequestData.txt'
            res = testSuite.getPropertyValue("reportpath")+'/'+testSuite.getName()+'/'+tc_list[i].getName()+'/'+ts_list[j].getName()+'_ResponseData.txt'

            def request_expand = testSuite.getTestCaseByName(tc_list[i].getName()).getTestStepByName(ts_list[j].getName()).getPropertyValue("Request")
            def response_expand = testSuite.getTestCaseByName(tc_list[i].getName()).getTestStepByName(ts_list[j].getName()).getPropertyValue("Response")
            def req_file = new File(req)
            def res_file = new File(res)
            log.info testSuite.getTestCaseByName(tc_list[i].getName()).getName()+' '+testSuite.getTestCaseByName(tc_list[i].getName()).getTestStepByName(ts_list[j].getName()).getName()+' '+response_expand
            if(request_expand!=null && response_expand!=null){

                 log.info testSuite.getTestCaseByName(tc_list[i].getName()).getName()+' '+testSuite.getTestCaseByName(tc_list[i].getName()).getTestStepByName(ts_list[j].getName()).getName()+' '+response_expand

               req_file.write(request_expand,"UTF-8")

               res_file.write(response_expand,"UTF-8")
                }

            }
        }


    }
...