2012-06-12 2 views
0

저는 XPath와 JMeter를 사용하는 초보자입니다. wddx 패킷을 포함하는 XML 파일이 있습니다. 다음은 샘플 파일입니다. 실제 데이터에는 한 번에 100 개의 레코드가 포함될 수 있습니다. 내가해야 할 일은jMeter를 사용하여 wddx 패킷의 정보를 추출하는 방법은 무엇입니까?

<wddxPacket version='1'> 
    <header/> 
    <data> 
     <recordset rowCount='2' fieldNames='FIELD1, FIELD2' type='coldfusion.sql.QueryTable'> 
      <field name='FIELD1'> 
       <string>MyValue1</string> 
       <string>MyValue2</string> 
      </field> 
      <field name='FIELD2'> 
       <string>MyValue3</string> 
       <string>MyValue4</string> 
      </field> 
     </recordset> 
    </data> 
</wddxPacket> 

recordset 태그에 지정된 다음 등 FIELD1, FIELD2에 문자열 값을 추출하고 (다른 WebService에에서 사용 카운트 행을 기반으로 XML 파일을 통해 루프입니다 SOAP) 샘플러. 그냥 값을 추출 할 수 있는지 확인하려면 JMeter 함수, XPath를 사용하고 있습니다. 는 XPath 호출은 다음과 같다

${__XPath(c:\test.xml, /wddxPacket/data/recordset/field[@name='FIELD1']/string)} 

그냥 부분을 읽는 파일이 올바른지 확인, 나는 FileToString() 기능을 사용하여 변수에 내용을 할당하기 위해, (나는 MyValue1를 얻기 위해 노력하고 있어요). 디버그 샘플러에서 무엇을 할 수 있는지에 따라 변수에 올바른 내용이 표시됩니다. 그러나 XPath에 대한 위의 함수 호출을 사용하여 결과를 변수에 할당하면 변수는 비어 있습니다. XML 파일의 값을 추출하는 것과 관련하여 내 질문이 있습니다. 잘못된 길로 가고 있습니까? 그렇다면 대신 무엇을해야합니까?

답변

1

나는 JMeter를 알고 있지만이 XPath를하지 않습니다 당신이 첫 번째하려면 문자열 값을 반환하지 않습니다

, 그것은 두 노드

<string>MyValue1</string> 
<string>MyValue2</string> 

를 포함하는 노드 집합을 반환

/wddxPacket/data/recordset/field[@name='FIELD1']/string 
노드이 XPath를 사용할 수 있습니다

/wddxPacket/data/recordset/field[@name='FIELD1']/string[1] 

을하고 방금 첫 번째 문자열 값을 원하는 경우 생을 시도 할 수 의 XPath는 :

string(/wddxPacket/data/recordset/field[@name='FIELD1']/string) 

마지막으로 적어도이 없습니다 : 당신이 확실 XML 파일이 어떤 네임 스페이스를 사용하지 않는거야? 왜냐하면 XPath에서 명시 적으로 지정해야하기 때문입니다.

+0

MiMo, 답장을 보내 주셔서 감사합니다. 불행히도, 그 제안은 나를 위해 작동하지 않습니다. 네, XML 파일이 네임 스페이스를 사용하고 있다고 확신합니다. –

+0

나는 XML 파일이 어떤 네임 스페이스를 사용하지 않는다는 것을 의미했다. 오타를 유감스럽게 생각합니다. –