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

How to change input soap request as per test data in loadrunner?

我正在处理一个 soap 请求,我们需要在其中传递一个参数中的单个数据,在第二次迭代中,我们需要在同一输入中传递多个测试数据request.Please 帮助我如何更改输入 soap 请求根据测试数据,请在下面找到单个和多个请求的 soap 请求。

单个请求:

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

多个 Requests:In 相同的 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 文件中传递此类值以进行负载测试,请帮助如何执行此操作

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

注意这里重复的部分

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

您已定义 header

<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 到屏幕的,因此可能需要一点时间,但它应该可以让您了解路径。

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