2017-11-22 1 views
0

SOAP UI Free를 사용합니다.이전 요청의 결과에 따라 특정 테스트 단계의 조건부 실행

이전 응답이 number (id)를 반환하고 특정 테스트 단계를 조건부로 실행하는지 확인하고 싶습니다. 내 의사 코드. Groovy를 사용하여 어떻게이 작업을 수행 할 수 있습니까?

응답을 받고 번호가 포함되어 있는지 확인하고 200을 반환하는 방법은 무엇입니까?

어떻게이 번호를 추출하고

가 어떻게 응답에 해당하는 경우 비교할 수

다음 요청에 매개 변수로 사용할 수 있습니까?

응답하여 샘플 (200)

523455 

응답하여 샘플 (404)

{ 
    "category": "BUSINESS", 
    "code": "NOT_FOUND", 
    "description":"Account not found", 
    "httpStatus": 404 
} 

얻을 1.step 계정 아이디

2.step GROOVY

,210
+0

, 칵를, 당신이 얘기 응답을 보여 줄래 - 다른 경우에 사용합니다.? – Rao

+0

물론 getAccount는 숫자 만 반환합니다. 예 : 89766 또는 9001 중괄호가없는 숫자입니다. – Kac

+0

질문을 편집하고 응답 샘플을 제공하십시오. – Rao

답변

0

1 - 속성 전송 단계를 사용

  • 대상 진정한
  • 에 "소스 누락에 널 (null) 설정"
  • 세트 ("$의 .ID"같은 것을해야한다) JSONPath를 사용하여 ID를 테스트 케이스의 사용자 정의 속성에 저장하십시오 (예 : "curId")는 HTTP 상태 코드를 원하는 경우

또한,이 같은 것을 사용하여 다른 사용자 정의 변수에 그루비 스크립트를 저장해야합니다 :

curHeaders = testRunner.testCase.testSteps["Get token"].testRequest.response.getResponseHeaders() 

testRunner.testCase.setPropertyValue("http status", curHeaders["#status#"][0]) 

2 - 그루비 스크립트 사용을 단계 :

curId = testRunner.testCase.getPropertyValue("curId") 
curHttpStatus = testRunner.testCase.getPropertyValue("http status") 

테스트 사실이 변수 및 실행 테스트 단계 "removeAccount"경우 :

위의 변수를 검색
if(curId && (curHttpStatus == 'HTTP/1.1 200 OK')) 
{ 
    removeActionTestStep = testRunner.testSteps["removeAccount"] 
    removeActionTestStep.run(null, false) 

} 

참고 : removeAccount 테스트 단계는 curId 맞춤 변수 (예 : 응답이 동일 진실 할 곳이 ID를 가진 "을 사용하여 $ {# TestCase에 # curId}) 그래서 실행하는

당신은 jsonSlurper

를 사용하여 제거 후의 createAccount 부분을 추가 할 수 있습니다
removeActionResultJSON = context.expand('${removeAccount#Response}') 
removeActionResultJSONSlurper = new groovy.json.JsonSlurper().parseText(removeActionResultJSON) 

그런 다음, 대상 아래와 같이 실행 문이 도움이

희망,

토마스

관련 문제