0

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

单个请求:

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

多个请求:在相同的肥皂输入请求中,它从 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文件中传递这种类型的值以进行负载测试,请帮助如何做到这一点

4

1 回答 1

1

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

注意这里重复的部分

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

你有一个定义的标题

<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>");

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

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

于 2017-01-12T13:30:56.893 回答