首页 文章

如何根据loadrunner中的测试数据更改输入soap请求?

提问于
浏览
0

我正在处理需要传递的一个soap请求,一个参数中的单个数据和第二个迭代我们需要在同一输入请求中传递多个测试数据 . 请帮我如何根据测试数据更改输入soap请求,请查找低于soap请求单个和多个请求 .

单一请求:

<ReqDtls>
<vReqs>
  <amount>1.00</amount>
  <cardNo>8897654778999</cardNo>
</Reqs>
<cardType>caredit</cardType>
</ReqDtls>

多个请求:在相同的soap输入请求中,它正在从POS系统动态更改,但我想在loadrunner中执行 .

<ReqDtls>
<vReqs>
  <amount>1.00</amount>
  <cardNo>8897654778999</cardNo>
</Reqs>
<vReqs>
  <amount>2.00</amount>
  <cardNo>890897654778999</cardNo>
</Reqs>
<cardType>caredit</cardType>
</ReqDtls>

vugen中的任何代码都可以从excel文件中传递此类值以进行负载测试,请帮助您完成此操作

1 回答

  • 0

    这是您将在编程中使用您的基础技能以及web_custom_request()(可能)发送您自己的自定义字符串的地方 .

    注意这里重复的部分

    <vReqs>
      <amount>{amount_variable}</amount>
      <cardNo>{card_variable}</cardNo>
    </Reqs>
    

    您有一个已定义的 Headers

    <ReqDtls>
    

    一个明确的页脚

    <cardType>caredit</cardType>
    </ReqDtls>
    

    现在这变成了C中字符串连接的问题,并将变量转换为文字 . 考虑一个循环和低级sprintf()来完成这项任务 . 注意,变量声明不包含在代码片段中

    sprintf(mybigstring,"<ReqDtls>\r");
    for (myloopcounter=1;myloopcounter<=mylooplimit;myloopcounter++)
    {
         sprintf(mybigstring,
              "%s%s",
              mybigstring,
              lr_eval_string("<vReqs>\r<amount>{amount_variable}</amount>\r<cardNo>{card_variable}</cardNo>\r</Reqs>\r") );
         lr_advance_param("amount_variable");
         lr_advance_param("card_variable");
    }
    sprintf(mybigstring,"%s%s",mybigstring,"<cardType>caredit</cardType>\r</ReqDtls>");
    

    以上是直接从noggin到屏幕,所以如果摆弄它可能需要一点,但它应该给你一个路径的想法 .

    一旦有了字符串,就可以根据需要在任何请求中使用它 .

相关问题