51Testing软件测试论坛

标题: LR 如何发送xml 格式的数据到 severlet。 [打印本页]

作者: mars    时间: 2012-4-17 11:28
标题: LR 如何发送xml 格式的数据到 severlet。
以前都是用Jmeter的xml-rpc  request 方式做性能测试,最近想用LR来做做,查到网上说使用web_custom_request来发送请求,照着写了一下代码如下:

  1. char c_myxml[2000];
  2. char myxml[]="";
  3. strcat(myxml," <soap11:Envelope xmlns=\"http://www.derbysoft.com/dswitch/ari\" xmlns:soap11=\"http://schemas.xmlsoap.org/soap/envelope/\">");
  4. strcat(myxml,"<soap11:Body>");
  5. strcat(myxml,"<GetChangeRequest Token=\" \">");
  6. strcat(myxml,"<Contract ChannelCode=\"Bookingcom\" SupplierCode=\"IHG\"/>");
  7. strcat(myxml,"<RetrieveChangeCriterion>");
  8. strcat(myxml,"<RetrieveChangeCriteria HotelCode=\"DSIHG109802\" Since=\"2012-04-11T00:00:00\" Type=\"Change\">");
  9. strcat(myxml,"<DateSpan Start=\"2012-03-01\" End=\"2012-06-01\"/>");
  10. strcat(myxml,"</RetrieveChangeCriteria>");
  11. strcat(myxml,"</RetrieveChangeCriterion>");
  12. strcat(myxml,"</GetChangeRequest>");
  13. strcat(myxml,"</soap11:Body>");
  14. strcat(myxml,"</soap11:Envelope>");
  15. web_custom_request("ihgplugin",
  16. "Method=POST",
  17. "RecContentType=text/xml",
  18. "EncType=text/xml; charset=utf-8",
  19. "url=http://IP/test/retrieve",
  20. myxml,
  21. 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   [MsgId: MERR-27226]

如果吧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>"

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

请问我最上面的写法哪里不对导致的[MsgId: MERR-27226] 错误,该怎么修改,谢谢。
作者: 云层    时间: 2012-4-17 12:28
首先你应该把xml字符串放在参数里面,然后你可以参考lr_xml_系列函数来更新
作者: mars    时间: 2012-4-17 17:22
云层,这个不可行。有可用的例子一贴便可,除非是你写的书的镇书之宝,要花钱。
作者: 云层    时间: 2012-4-17 17:33
认真看了一下你开始myxml 就拼错了,先要有body=开始的,而且注意引号
作者: mars    时间: 2012-4-17 17:46
对了。我还想过这个Body是不是少了,但看了看网上别人的例子,好像没有写body,不过是人家写了,我没看到。浪费我1天时间鼓捣这玩意儿。鄙视自己。
谢谢,云层。
作者: mars    时间: 2012-4-17 17:48
对了。我还想过这个Body是不是少了,但看了看网上别人的例子,好像没有写body,不过是人家写了,我没看到。浪费我1天时间鼓捣这玩意儿。鄙视自己。
谢谢,云层。
作者: mars    时间: 2012-4-18 09:43
咋给分呢?没找到按钮呀
作者: 云层    时间: 2012-4-18 12:36
不用给分了,这东西没啥用
作者: lsekfe    时间: 2012-4-19 09:28
回复 8# 云层


    分多的人就这样说了!
作者: mars    时间: 2012-4-19 11:06
回复 9# lsekfe


    你也很多铭牌呀
作者: edisonzhang    时间: 2012-4-20 10:57
有没有个 可以测试的实例啊,我也想学习下




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2