2012-10-10 3 views
0

확인을 위해 xpath 어설 션을 사용하려는 오류 메시지가 반환되었습니다. 문제는 트랜잭션 Id가 변경됨 (시스템 생성됨)이며 iongt : faultstring의 나머지 정보는 일정하게 유지된다는 것입니다.SOAPUI xpath 어설 션에서 태그 내에서 id가 변경되는 경우

이 어설 션을 수행하는 간단한 방법이 있습니까? 는 '*'가 작동하지 않습니다 사용

<iongt:retrieveSystemInformationFault xmlns:iongt="http://www.testing.com/xml/TestingIONGT"> 
     <iongt:faultcode>TestError012</iongt:faultcode> 
     <iongt:faultstring>Transaction Id: 8781991797: 
Testing error message here</iongt:faultstring> 
    </iongt:retrieveCustomerInformationFault> 

:

<iongt:retrieveSystemInformationFault xmlns:iongt="http://www.testing.com/xml/TestingIONGT"> 
     <iongt:faultcode>TestError012</iongt:faultcode> 
     <iongt:faultstring>Transaction Id: *: 
Testing error message here</iongt:faultstring> 
    </iongt:retrieveCustomerInformationFault> 
+0

시도한 XPath를 표시하십시오. 또한 "작동하지 않는다"고 설명하십시오. 실제로 무엇을 했는가? 그리고 그것은 당신이 예상했던 것과 어떻게 다른가? 셋째 : 내가 보여주는 XML이 XPath 어설 션을 실행하려고하는 오류 메시지라고 생각합니다. 그렇다면 별표를 넣기 위해 그것을 바꿀 시점을 이해하지 못합니다. – LarsH

+0

안녕하세요, 트랜잭션 ID가 (시스템 생성 번호) 변경 되었기 때문에 기록 된 내용이 수신 된 내용과 일치하지 않으므로 xpath 어설 션이 실패합니다. 나는 트랜잭션 ID에 대해 *와 와일드 카드를 사용하려고 시도했으나 xpath 어설 션이 "트랜잭션 ID : *" "여기에 테스트 오류 메시지"를 확인하려고 시도 할 때 작동하지 않습니다. 전체 태그에 와일드 카드를 사용하면 다음과 같이 작동합니다. * automationguy

+0

죄송 합니다만, 나는 아직 명확하지 않습니다. 게시 한 XML 비트는 무엇입니까? 일치하려는 XML 오류 메시지 또는 XPath 어설 션이 포함되어 있습니까? 그들은 이전처럼 보이지만, 그렇다면 우리에게 XPath를 보여주세요. – LarsH

답변

1

내가 SoapUI XPath를 매치 예상 결과의 와일드 카드가 전체 텍스트 노드, 하나의 일부가 일치 할 필요가 있다고 생각한다. 물론

, 당신은 당신의 예상 결과에서 전체 텍스트 콘텐츠를 별표 (*)를 사용하여, 덜 정확한 수준에서 주장 할 수있다 (당신이 언급 한 바와 같이 작동) :

<iongt:faultstring>*</iongt:faultstring> 

을하지만 당신은 필요한 경우 더 정확하게 말하면 다음과 같이 XPath 표현식을 수정할 수도 있습니다. 대신

//iongt:retrieveSystemInformationFault 

예를 들어, 당신이 XPath 표현식 수 :

<iongt:faultcode xmlns:iongt="http://www.testing.com/xml/TestingIONGT">TestError012</iongt:faultcode> 

의 예상 결과와 XPath 식을 가진 다른 주장과

//iongt:retrieveSystemInformationFault/iongt:faultcode 

//iongt:retrieveSystemInformationFault/iongt:faultstring[starts-with(., 'Transaction Id: ') and 
    contains(., 'Testing error message here')] 

XPath 1.0에 ends-with()이 없기 때문에 여기에 을 제안합니다. 정확히 대신에 정확하게 얻을 필요가 있다면 string-length()substring()을 사용하여 ends-with()을 대체 할 수 있지만 그 노력이 필요하지는 않습니다.

에 대한 예상 결과는 위의 단지

<iongt:faultstring xmlns:iongt="http://www.testing.com/xml/TestingIONGT">*</iongt:faultstring> 

것 아니면 하나 어설으로 두 가지를 결합 할 수 있습니다 ... 당신이의 예를보고 싶다면 알려주세요.

관련 문제