如何从以前的soap请求中提取值并传递给jmeter中的另一个新请求?

时间:2017-06-20 11:44:52

标签: web-services xpath soap jmeter

我想提取以前的肥皂响应值并将其传递给jmeter中的下一个请求,请提供更好的帮助,请找到我的肥皂请求。

肥皂要求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.clp.eks.com" xmlns:wsf="http://wsform.clp.eks.com">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:PB_GC_SaveTxn>
         <ser:inputForm>
            <wsf:carddiscount>1.00</wsf:carddiscount>
            <wsf:cardno>69699</wsf:cardno>
            <wsf:cashmemodt>03-06-2017</wsf:cashmemodt>
            <wsf:couponcode></wsf:couponcode>
            <wsf:mcdtls>1001@1.00@1000.00@0.00</wsf:mcdtls>
            <wsf:paymentCardno>CASH-CASH@1000.00</wsf:paymentCardno>
            <wsf:paymentmode>CASH@1000.00</wsf:paymentmode>
            <wsf:no>1</wsf:posno>
            <wsf:rpoint></wsf:rpoint>
            <wsf:code>727</wsf:sitecode>
            <wsf:txnno>31129</wsf:txnno>
         </ser:inputForm>
      </ser:PB_GC_SaveTxn>
   </soapenv:Body>
</soapenv:Envelope>

现在我需要提取Date,Card,Txn no,Store并传入下一个请求,即取消txn请求,请提供解决方法如何使用,我已经使用了xpath提取器,但它无法正常工作。

1 个答案:

答案 0 :(得分:0)

  1. 您的回复无效,即:

    <wsf:no>1</wsf:posno>`
         ^ it should be <wsf:posno>`
    <wsf:code>727</wsf:sitecode>
         ^ it should be <wsf:sitecode>
    

    如果存在复制粘贴问题,那么如果您的应用程序以这种方式响应,则这是一个错误。在这种情况下,您无法使用XPath Extractor,您需要切换到Regular Expression Extractor

  2. 鉴于您将能够获得正确的响应(有效的XML),请使用XPath查询,如:

    //wsf:cashmemodt | //wsf:cardno| //wsf:txnno 
    

    获取日期,卡和Txn。我不知道&#34; Store&#34;是

  3. 以下是来自View Results Tree监听器的XPath Tester模式的演示(有关故障排除方法的详情,请参阅How to Debug your Apache JMeter Script文章)

    JMeter Xpath Tester Demo