2017-10-17 13 views
1

testCase 실행에 이상한 점이 있습니다.올바른 테스트 사례 실행으로 '실패'상태가 발생합니다.

Setup script: 

    set session_id = 0 

    set session_index = 0 

    store custom properties in an external file 

및 테스트 케이스 본체

Test Case: 

    data source 

    SOAP - authentication on components (gives session_id for each component) 

    groovy - recover useful data (store session_id in custom prop session_id_<session_index>) 

    source loop 

    SOAP - start asynchronous service on component 1 

    SOAP - check status on component 1 

    goto 'check status' while status = Pending 

    SOAP - check status on component 2 

    goto 'disconnect terminals' is session_id = 0 

    SOAP disconnect 

    groovy disconnect terminal : loop for each session_index: set session_id = session_id_<session_index> and use it in the SOAP disconnect step (I use run test step) 

분해 스크립트 :

나는 다음과 같은 구조의 테스트 케이스를 가지고있는 사용자 지정 속성이 단계의 모든과 실행

복원 성공, 나는 어떤 오류도 기록하지 않았지만 전반적인 시험은 FAILED 상태이다.

문제점이 goto 단계에서 발생한다는 것을 깨달았습니다. 반환 된 상태가 '보류 중'으로 설정되어있는 동안 상태를 확인하기 위해 SOAP 요청으로 되돌아갑니다. 그래서 요청이 '보류 중'을 반환 할 때마다 실패하고 다시 확인 요청을 보냅니다. 상태가 마침내 '성공'이면 testStep은 녹색 (OK)이되고 testCase는 계속됩니다.

전체 결과에서 '반복'마다 여러 번 재생되는 testStep이 한 번 저장되고 마지막 결과 만 OK이므로 전체 테스트 상태는 FAILED입니다.

답변

1

이 문제에 대한 해결 방법은 :

내가 테스트 결과를 확인하고 확인이 testRunner.results 실패로 간주 내 테스트 단계 중 일부. 이렇게하려면, 나는

for (testStep in testRunner.getResults()){ 
    log.info "status " + testStep.getTestStep().getName() + " : " + testStep.getStatus() 
} 

이 단계는 사람이하는 내가 '보류'에서 다른 상태를 기다리고, 반복 된 한 내 분해 스크립트 탭에 다음과 같은 코드를 설정합니다. 테스트가 끝날 때 상태가 마침내 '성공'이었으므로 testStep의 여러 번 발생이 '실패'(혼란 스럽지만) 인 경우에도 testCase에서 단계가 OK로 설정되었습니다 (혼동 스럽습니다)

for (results in testRunner.results){ 
// implement a selection condition 
    results.status = "OK" 
} 

난 그냥에만 관심을 testSteps에 적용 확인해야 :

그래서 나는 내가 당해 단계는 다음을 수행하는 상태를 업데이트 할 수 있습니다 발견했다.

그러나

는 말에 전반적인 상태는 여전히 내 분해 스크립트에서 여전히 실패한다 : 내 단계와 결과의 확신 경우에는 다음과 같이

log.info "TEST RUNNER STATUS after update" + testRunner.getStatus() 

, 나는 그것을 덮어 쓸 수 있습니다 :

testRunner.status = "FINISHED" 
log.info "TEST RUNNER STATUS after update" + testRunner.getStatus 

그리고 내 전체 테스트는 나는 그것이 조금 까다로운 건 알지만만큼 내가 그 매개 변수를 갱신하는 적절한 조건을 설정, 나는 진짜 실패를 숨길 수 없습니다 확신합니다 (녹색 표시 줄)

괜찮습니다.

누군가 더 깨끗한 방법을 사용하면 감사하겠습니다.