2017-11-28 20 views
0

SoapUI 5.2.1 및 Groovy 사용. TestCase에 2 테스트 단계가 있습니다Groovy에서 switch with contains 사용 방법

1) SOAP 요청은 그루비 스크립트

목표는 정확한 단어가 응답에 있는지 찾는 것이 었습니다)

2 "를 만드는". 예를 들어, 응답에 "yes"라는 단어가 포함되어 있으면 스크립트에 메시지가 표시되어야합니다.

간단한 if-else로 달성했습니다. & .contains() 스위치에 대해 생각하고 나서 어떻게 이런 식으로 할 수 있을까요?

여기에서 오래된 해결책을 찾았습니다. Can switch use String.contains? 하지만 나에게는 적합하지 않습니다. 나는 항상 에 속한다.

나는 걸렸다. 목표는 스위치를 사용하여 응답에 정확한 단어가 있는지 찾아내는 것입니다. 앞으로는 많은 경우가 많기 때문입니다.

SOAP "create"는 응답을 가지고 있으며 스크립트는 정확하게 body를 추출하기 때문에이 응답의 Body 부분에 관심이 있습니다.

<env:Body> 
<data ...> 
    <transactions> 
    <next_step>yes</next> 
    <message>that word</message> 
    </transactions> 
</data> 
</env:Body> 

그리고 그루비 스크립트

response = context.expand('$create#Response#://env:Body}') 

switch (response) 
{ 
case ~/.*word.*/: 
    log.info "found" 
    break 
case ~/.*damn.*/: 
    log.info "found that shouldn't be found" 
    break 
default: 
    log.info "doesn't work" 
} 

response.toClass() 여기 java.lang.String

+1

'contains'는'. * word. *'regex보다 잘 작동해야합니다. –

+0

해결책이 도움이되는지 확인해 주시겠습니까? – Rao

+0

해결책을 시도 할 기회가 있습니까? – Rao

답변

1

당신이 예상되는 내용은 응답 여부에 존재하는지 확인하려면 가장 좋은 방법의 하나입니다. 추가 그루비 스크립트 테스트 단계를 필요로하지 않습니다이 방법

  • .

  • 예상되는 내용과 다른 문자열을 확인할 수 있습니다. 어설 "포함"을 추가, SOAP 요청 테스트 단계에 대한

    1. :

은 다음 단계입니다.

  • 값을 ${#TestCase#EXPECTED_CONTENT}으로 설정하십시오.
  • 테스트 사례 수준에서 사용자 지정 속성 EXPECTED_CONTENT을 추가하고 현재 테스트 사례에 필요한 문자열 값을 제공하십시오. 마찬가지로 다른 테스트에서 예상되는 값으로 다른 문자열을 가질 수 있습니다.
  • 좋은 부분은 테스트 케이스 레벨 속성 값을 변경하기 만하면 어설 션을 수정할 필요가 없다는 것입니다. 간단하지 않아?