mars 发表于 2012-4-17 11:28:36

LR 如何发送xml 格式的数据到 severlet。

以前都是用Jmeter的xml-rpcrequest 方式做性能测试,最近想用LR来做做,查到网上说使用web_custom_request来发送请求,照着写了一下代码如下:

char c_myxml;
char myxml[]="";
strcat(myxml," <soap11:Envelope xmlns=\"http://www.derbysoft.com/dswitch/ari\" xmlns:soap11=\"http://schemas.xmlsoap.org/soap/envelope/\">");
strcat(myxml,"<soap11:Body>");
strcat(myxml,"<GetChangeRequest Token=\" \">");
strcat(myxml,"<Contract ChannelCode=\"Bookingcom\" SupplierCode=\"IHG\"/>");
strcat(myxml,"<RetrieveChangeCriterion>");
strcat(myxml,"<RetrieveChangeCriteria HotelCode=\"DSIHG109802\" Since=\"2012-04-11T00:00:00\" Type=\"Change\">");
strcat(myxml,"<DateSpan Start=\"2012-03-01\" End=\"2012-06-01\"/>");
strcat(myxml,"</RetrieveChangeCriteria>");
strcat(myxml,"</RetrieveChangeCriterion>");
strcat(myxml,"</GetChangeRequest>");
strcat(myxml,"</soap11:Body>");
strcat(myxml,"</soap11:Envelope>");
web_custom_request("ihgplugin",
"Method=POST",
"RecContentType=text/xml",
"EncType=text/xml; charset=utf-8",
"url=http://IP/test/retrieve",
myxml,
LAST);

在运行时总是提示如下错误:
Action.c(16): Error -27226: The
"<soap11:Envelope xmlns="http://www.derbysoft.com/dswitch/ari" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"><soap11:Body><GetChangeRequest Token="ec24db7b-474d-4467-afc8-88e8273be4dc"><Contract ChannelCode="Bookingcom" SupplierCode="IHG"/><RetrieveChangeCriterion><RetrieveChangeCriteria HotelCode="DSIHG109802" Since="2012-04-11T00:00:00" Type="Change"><DateSpan Start="2012-03-01" End="2012-06-01"/></RetrieveChangeCriteria></RetrieveChangeCriterion></GetChangeRequest></soap11:Body></soap11:Envelope>"
argument (number 6) is unrecognized or misplaced   

如果吧myxml 换成如下填写
      "Body=<soap11:Envelope xmlns=\"http://www.derbysoft.com/dswitch/ari\" xmlns:soap11=\"http://schemas.xmlsoap.org/soap/envelope/\">"
"<soap11:Body>"
"<GetChangeRequest Token=\"ec24db7b-474d-4467-afc8-88e8273be4dc\">"
"<Contract ChannelCode=\"Bookingcom\" SupplierCode=\"IHG\"/>"
"<RetrieveChangeCriterion>"
"<RetrieveChangeCriteria HotelCode=\"DSIHG109802\" Since=\"2012-04-11T00:00:00\" Type=\"Change\">"
"<DateSpan Start=\"2012-03-01\" End=\"2012-06-01\"/>"
"</RetrieveChangeCriteria>"
"</RetrieveChangeCriterion>"
"</GetChangeRequest>"
"</soap11:Body>"
"</soap11:Envelope>"

是能正常工作的,但是我希望把请求的数据放在外面,这样可以重复利用,便于管理。

请问我最上面的写法哪里不对导致的 错误,该怎么修改,谢谢。

云层 发表于 2012-4-17 12:28:53

首先你应该把xml字符串放在参数里面,然后你可以参考lr_xml_系列函数来更新

mars 发表于 2012-4-17 17:22:02

云层,这个不可行。有可用的例子一贴便可,除非是你写的书的镇书之宝,要花钱。

云层 发表于 2012-4-17 17:33:20

认真看了一下你开始myxml 就拼错了,先要有body=开始的,而且注意引号

mars 发表于 2012-4-17 17:46:56

对了。我还想过这个Body是不是少了,但看了看网上别人的例子,好像没有写body,不过是人家写了,我没看到。浪费我1天时间鼓捣这玩意儿。鄙视自己。
谢谢,云层。

mars 发表于 2012-4-17 17:48:18

对了。我还想过这个Body是不是少了,但看了看网上别人的例子,好像没有写body,不过是人家写了,我没看到。浪费我1天时间鼓捣这玩意儿。鄙视自己。
谢谢,云层。

mars 发表于 2012-4-18 09:43:11

咋给分呢?没找到按钮呀

云层 发表于 2012-4-18 12:36:44

不用给分了,这东西没啥用

lsekfe 发表于 2012-4-19 09:28:01

回复 8# 云层


    分多的人就这样说了!:L

mars 发表于 2012-4-19 11:06:05

回复 9# lsekfe


    你也很多铭牌呀

edisonzhang 发表于 2012-4-20 10:57:26

有没有个 可以测试的实例啊,我也想学习下
页: [1]
查看完整版本: LR 如何发送xml 格式的数据到 severlet。