2017-09-13 20 views
0

我有一個HTTP請求返回下面的XML如何存儲從XPath的提取單個結果

<?xml version="1.0" encoding="UTF-8"?> 
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
     <soapenv:Body> 
      <NS1:obterAtividadesResponse xmlns:NS1="http://www.multiplan.com.br/APL/CLIE/SN/BPM/v1"> 
      <atividades> 
       <atividade> 
        <instancia> 
         <idInstancia>2024</idInstancia> 
        </instancia> 
        <idAtividade>12887</idAtividade> 
        <nomeProcesso>Nota Fiscal ao Pagamento - Resumido</nomeProcesso> 
        <nomeAtividade>Aprovar Pagamento</nomeAtividade> 
        <statusAtividade>Received</statusAtividade> 
        <statusInstancia>Active</statusInstancia> 
        <dataLimite>2017-09-13T16:08:44.994+00:00</dataLimite> 
        <snapshot>76</snapshot> 
        <dadosNegocio> 
         <name>pedido</name> 
         <value>4500529987</value> 
        </dadosNegocio> 
       </atividade> 
      </atividades> 
      </NS1:obterAtividadesResponse> 
     </soapenv:Body> 
    </soapenv:Envelope> 

我試圖提取idAtividade內容使用XPath提取並保存在atividadeId變量的結果,但它的節約是對atividadeId_1值,你可以在下面的調試採樣結果可以看出:

atividadeId= 
atividadeId_1=12887 
atividadeId_matchNr=1 

我用下面的XPath查詢:

//atividades/atividade/idAtividade/text() 

enter image description here

有沒有辦法讓它工作,因爲我需要它?

感謝

回答

1

您應該檢查Return entire XPath fragment instead of text content?複選框。

這將他們採取唯一的文字使用您的表達。見manual

還考慮使用正則表達式提取器。

+0

我已經得到了相同的結果(數組)insted的只有一個值的。任何其他的事情要嘗試? –

0

我的錯誤,我的測試有一個BeanShell預處理器設置atividadeId變量的值爲空,我不知道它是在每個採樣器後執行。

1

如果您在迴應有一個以上的atividade例如,您可以使用下面的XPath表達式率先拿到賽:

//atividades/atividade[1]/idAtividade/text() 

或者你也可以選擇idAtividade節點值,其中nomeAtividade等於Aprovar Pagamento喜歡的東西:

//atividades/atividade[nomeAtividade/text()='Aprovar Pagamento']/idAtividade 

但是給你的只有一個atividade比如你表達應該可以正常工作,您可以用測試。

JMeter Xpath Tester

參見XPath語法的綜合信息XPath TutorialXPath Language Reference,斧頭,函數等