Loadrunner脚本读取XML案例

上一篇 / 下一篇  2016-05-27 17:04:58 / 个人分类:loadrunner

测试需求:第一次访问 XX——互动接口时,会在返回的XML中有一个SessionToken的参数,之后每次访问都要带上SessionToken。

(图1  左边为WebService请求,右边为访问后的返回值)

以下是Loadrunner  web_service_call代码,用来访问Webservice接口:

    web_service_call( "StepName=INFICreateInterfactive_101",

        "SOAPMethod=INFI_spcInterfactive_spcInfo_spcPoint|INFIInterfactiveInfoPoint|INFICreateInterfactive",

        "ResponseParam=response",

        "Service=INFI_spcInterfactive_spcInfo_spcPoint",

        "ExpectedResponse=SoapResult",

        "Snapshot=t1453862681.inf",

        BEGIN_ARGUMENTS,

        "Comments=测试",

        "PointsType=1",

        "InteractiveTime=01/14/2016  19:43:00",

        "Points=100",

        "WhetherCalPoints=1",

        "SourceSystem={ra_SourceSystem}",

        "RecordId={rand2}",

        "InteractiveType=BCWG01",

        "LoymemName=220017322",

        "SourceSystemId={ra_SourceSystem}{rand2}",

        "LoymemId=220017322",

        "xml:UsernameToken="

            "<UsernameToken>"

                "<Text>"

                    "<string>INFI</string>"

                "</Text>"

            "</UsernameToken>",

        "xml:PasswordText="

            "<PasswordText>"

                "<Text>"

                    "<string>INFI</string>"

                "</Text>"

            "</PasswordText>",

        "xml:SessionType="

            "<SessionType>"

                "<Text>"

                    "<string>Stateless</string>"

                "</Text>"

            "</SessionType>",

 

        END_ARGUMENTS,

        BEGIN_RESULT,

        END_RESULT,

        LAST);

web_service_call之后有这个response的参数,用来存放返回值的内容(图1 右边内容)

得到response下一部就要把response中的SessionToken拿出来。

 

Loadrunner有自带解析XML文件函数:lr_xml_get_values

调用之前我们要查清楚SessionToken是在XML的哪个节目下的。

看图1右边内容,SessionToken的节点是:/SOAP-ENV:Envelope/SOAP-ENV:Header/siebel-header:SessionToken

 

所以应该这样子获取内容:

int NumOfReadbuf_1=0;

    NumOfReadbuf_1== lr_xml_get_values("XML={response}",

      "ValueParam=SessionToken",      //使用SessionToken变量来存放SessionToken的值

      "Query=/SOAP-ENV:Envelope/SOAP-ENV:Header/siebel-header:SessionToken",     //要获取的SessionToken对应在哪个节点

      "SelectAll=yes",

    LAST);

   lr_output_message("%s",lr_eval_string("{SessionToken_1}"));     //日志中输出SessionToken第一个参数的值,如果XML中有多个SessionToken对应值可以SessionToken_2、SessionToken_3 获取。

 


TAG:

 

评分:0

我来说两句

日历

« 2024-03-27  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 65287
  • 日志数: 24
  • 建立时间: 2016-05-27
  • 更新时间: 2016-07-29

RSS订阅

Open Toolbar