2017-05-10 1 views
0

부동산 전송의 "XPath는 선택"에 변수를 삽입하는 방법 : 포함 SoapUI 4.6.1 나는 TestCase에 있고, 작업 SoapUI

    1. 테스트 요청 (1)
    2. 그루비 스크립트 부동산 전송
    3. 테스트 요청 (2)

    내 목표는의 XPath EXPRES에 그루비 스크립트의 결과에서 변수를 전달하는 것입니다 재산 양도. 무엇 때문에?

    <...> 
    <...> 
        <...> 
        <scheme_list> 
        <scheme> 
        <node1> 
         ... 
        </node1> 
         ... 
        <nodeN> 
         ... 
        </nodeN> 
        </scheme> 
    
        <scheme> 
        <node1> 
         ... 
        </node1> 
         ... 
        <nodeN> 
         ... 
        </nodeN> 
        </scheme> 
    
        <scheme> 
        <node1> 
         ... 
        </node1> 
         ... 
        <nodeN> 
         ... 
        </nodeN> 
        </scheme> 
        </scheme_list> 
        </...> 
    </...> 
    </...> 
    

    그루비 스크립트 내 조건에 해당하는 모든 사람, 1 개 방식을 찾습니다 테스트 요청 (1) 응답에서

    는 계획의 목록이있다. - 스크립트의 결과는이 제도의 수 :

    ... 
    return i 
    

    에서 재산권 전송, 난 내가 요청 (2)을 테스트하는 것으로 계획의 모든 노드를 통과해야합니다. 그래서,이 스키마의 번호를 받아 Xpath 표현식에 전달하면됩니다.

    Source: //scheme_list/scheme[i] 
    Target: //scheme 
    

    또는 솔루션을 내가 인터넷에서 발견 :

    나는 쉽게 될 것이라고 생각

    Source: //scheme_list/scheme['+i+'] 
    Target: //scheme 
    

    그러나, 불행하게도, 그것은 작동하지 않습니다. My 변수 "i"는 Groovy Script에 위치하며 다른 테스트 단계 Property Transfer와 같이 어딘가에 전달 될 수 없습니다.

  • 답변

    1

    많은 Q & A를 통해 보았을 때, 나는 많은 다른 해결책을 시도했지만 내 자신을 발견했다.

    //scheme_list/scheme[${path#result}] 
    
    경로 스크립트 이름이

    결과는 결과이다.

    1 조건은 XPath는에 스크립트에서 변수를 전달할 수 있습니다, 당신은

    그래서 스크립트의 결과로 필요한 변수를 반환 할 것입니다.

    훨씬 간단한 해결책이 있다면 공유하십시오.

    +0

    당신이했던 것과 비슷하게 스크립트가 속성 값 (속성 단계에서)에 반환 값을 저장하게하십시오. 그런 다음 거기에서 부동산 이동을 가져 오십시오. 또는 당신은 단지 전체 속성 전송 단계를 무시하고 유사한 그루비 스크립트 코드를 사용하여 전송할 수 있습니다. ---- testRunner.testCase.testSteps [ "StepName을"] setPropertyValue ("PROPERTYNAME을"는 PropertyValue) – canpan14