51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10446|回复: 22
打印 上一主题 下一主题

[求助] 【高手请进】请教下,用LR向服务器发送HTTP协议的XML格式文件字段问题

[复制链接]
  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    跳转到指定楼层
    1#
    发表于 2013-9-6 14:33:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 lunahaha527 于 2013-9-12 15:24 编辑

    具体的发送格式如下:
    Action()
    {
    lr_start_transaction("xxxxServiceReq");
         web_custom_request("xxxxHTTPRequest",
    "URL=http://192.168.1.115:8080/pay/getToken",
    "Method=POST",
    "Resource=0",
    "RecContentType=text/xml",
    "Referer=",
    "Mode=HTML",
    "EncType=text/xml; charset=utf-8",
    "Body=<?xml version=\"1.0\" encoding=\"utf-8\"?>"
                            "\n<getToken>"
                            "\n<appUser>jqf_bus_api1.126.com</appUser>"
                            "\n<appPwd>21232F297A57A5A743894A0E4A801FC3</appPwd>"
                            "\n<appSign>Vf01RfaV/RXtelr5TO6l+YtHz5cdxlB1YIDi0/NBTU0/sp0QJfWN68yjCr/S/2YmbueYq8J1DOFKarMqRG4GFg==</appSign>"
                            "\n<billId>888</billId>"
                            "\n<amt>100</amt>"
                            "\n<currencyCode>USD</currencyCode>"
                            "\n</getToken>",
    LAST);
    lr_end_transaction("xxxxgServiceReq", LR_AUTO);
    return 0;
    }

    查看服务器可以接收到此请求。但是LR日志中报:
    Action.c(5): 通知: 事务 "xxxxServiceReq" 已启动。
    Action.c(6): 警告 -26663: 缺少 Content-Length 值或该值无效          [MsgId: MWAR-26663]
    1)【请问这个Length怎么加到上述请求中】
    Action.c(6): web_custom_request("xxxxHTTPRequest") 最高严重级别为“warning”,135 个正文字节,209 个标头字节,11 个成块开销字节          [MsgId: MMSG-26387]
    Action.c(24): 错误: 无法结束事务 "xxxxgServiceReq" (按名称)。请检查是否进行了调用以启动事务操作。
    2)【剩下的三条action是否和第一个问题有关呢?还是脚本中还有其它问题???】
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2013-9-6 16:26:44 | 只看该作者
    应该是你请求前面少了点关于Content-Length 的声明
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    3#
     楼主| 发表于 2013-9-6 16:43:36 | 只看该作者
    回复 2# 云层


        就是不知道这个Content-Length加哪儿合适
    貌似加哪儿都提示这个。
    能告诉我这个字段应该放在哪边合适吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2013-9-6 16:48:01 | 只看该作者
    试试web_add_header
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    5#
     楼主| 发表于 2013-9-6 17:37:37 | 只看该作者
    回复 4# 云层


        请问云层,有关web_add_header在书里那部分有详细介绍啊?另外,对于新手初学脚本编写,有没有好的建议呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    6#
     楼主| 发表于 2013-9-6 17:39:00 | 只看该作者
    回复 4# 云层


        to 云层:
         请问web_add_header在书里哪个章节有介绍,另外,对于新人要学习LR脚本编程还想快速上手,有没有比较好的学习方法呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2013-9-8 21:35:00 | 只看该作者
    没有技巧
    1.学会沟通
    2.学会看帮助
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    8#
     楼主| 发表于 2013-9-10 14:19:41 | 只看该作者
    本帖最后由 lunahaha527 于 2013-9-10 14:23 编辑

    回复 7# 云层


        我现在加了:
    Action()
    {
    lr_start_transaction("ServiceReq");
    web_add_header("Content-Length","342");
    web_custom_request("HTTPRequest",
    "URL=http://192.168.1.160:8080/pay/getToken",
    "Method=POST",
    "Resource=0",
    "RecContentType=text/xml",
    "Referer=",
    "Mode=HTML",
    "EncType=text/xml; charset=utf-8",
    "Body=<?xml version=\"1.0\" encoding=\"utf-8\"?>"
                            "\n<getToken>"
                            "\n<appUser>jqf_bus_api1.126.com</appUser>"
                            "\n<appPwd>21232F297A57A5A743894A0E4A801FC3</appPwd>"
                            "\n<appSign>Vf01RfaV/RXtelr5TO6l+YtHz5cdxlB1YIDi0/NBTU0/sp0QJfWN68yjCr/S/2YmbueYq8J1DOFKarMqRG4GFg==</appSign>"
                            "\n<billId>888</billId>"
                            "\n<amt>100</amt>"
                            "\n<currencyCode>USD</currencyCode>"
                            "\n</getToken>",
    LAST);
    lr_end_transaction("ServiceReq", LR_AUTO);
    return 0;
    }
    日志显示为:
    Starting action Action.
    Action.c(8): Notify: Transaction "ServiceReq" started.
    Action.c(9): Warning -26593: The header being added may cause unpredictable results when applied to all ensuing URLs. It is added anyway          [MsgId: MWAR-26593]
    Action.c(9): web_add_header("Content-Length") highest severity level was "warning"          [MsgId: MMSG-26391]
    Action.c(10): Warning -26663: Content-Length value is missing or invalid          [MsgId: MWAR-26663]
    Action.c(10): web_custom_request("HTTPRequest") highest severity level was "warning", 73 body bytes, 209 header bytes, 11 chunking overhead bytes          [MsgId: MMSG-26387]
    Action.c(28): Notify: Transaction "ServiceReq" ended with "Pass" status (Duration: 20.7967 Wasted Time: 0.6646).
    问题:如上的日志是否我定义的长度有误???怎么计算这个长度呢?
    web_custom_request("HTTPRequest") highest severity level was "warning", 73 body bytes, 209 header bytes, 11 chunking overhead bytes
    这个错误又表明了什么呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-10-27 14:21
  • 签到天数: 306 天

    连续签到: 1 天

    [LV.8]测试军长

    9#
    发表于 2013-9-10 15:01:32 | 只看该作者
    用这个函数试试:web_add_auto_header ,它比web_add_header灵活
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    10#
     楼主| 发表于 2013-9-10 15:13:21 | 只看该作者
    回复 9# 地壳


        还是不行,错误依然存在
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    11#
     楼主| 发表于 2013-9-11 10:22:01 | 只看该作者
    有人知道这个问题怎么解决不??急啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    12#
     楼主| 发表于 2013-9-12 15:05:50 | 只看该作者
    高人请进一下,现在卡在这儿不能动了。一直提醒content-length不对。有谁知道怎么计算发送的长度不?
    或者可以自动获取???
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2013-9-12 15:39:16 | 只看该作者
    你要问问开发到底他们是为啥要验这个东西,还是说你的xml抛过去确实超长度了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    14#
     楼主| 发表于 2013-9-12 15:44:42 | 只看该作者
    回复 13# 云层


        问过开发了,没有对content-length做判断,我感觉停在这儿是LR工具检查有问题吧

    arning -26663: Content-Length value is missing or invalid          [MsgId: MWAR-26663]
    Action.c(63): web_custom_request("HTTPRequest") highest severity level was "warning", 73 body bytes, 209 header bytes, 11 chunking overhead bytes          [MsgId: MMSG-26387]
    Action.c(76): Notify: Transaction "ServiceReq2" ended with "Pass" status (Duration: 20.1163 Wasted Time: 0.0048).

    真不知道这个值是怎么计算才正确!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    15#
     楼主| 发表于 2013-9-12 15:50:24 | 只看该作者
    真搞不懂了,用其它的工具,能够计算出来的固定的length放到脚本里面还是提示这个。
    to 云层:
    如果存在warning是否会对整个性能有影响???
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    16#
     楼主| 发表于 2013-9-12 15:53:41 | 只看该作者
    本帖最后由 lunahaha527 于 2013-9-12 15:55 编辑

    回复 15# lunahaha527


        构造虚拟用户稍跑了下,就一堆fail。看来是有影响。这个问题很头疼啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    17#
     楼主| 发表于 2013-9-12 16:18:48 | 只看该作者
    回复 14# lunahaha527


        超长的可能性也不大吧,因为我的脚本并不是下载功能,只是发个请求过去,不会超过110字节
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    18#
     楼主| 发表于 2013-9-13 13:03:42 | 只看该作者
    高手们,哪位谁能够告诉我啊?
    现在就卡在这个地方了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2013-9-16 21:46:04 | 只看该作者
    回复 1# lunahaha527


        HTTP是在TCP层之上的,你可用一个HTTP+XML的工具发送一下,然后抓包,把数据报文拿下来,利用winsocket发送。

    content_length是一定要指定的,要不然server端怎么知道它有没有接收完呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-3-16 09:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    20#
     楼主| 发表于 2013-9-17 11:10:21 | 只看该作者
    本帖最后由 lunahaha527 于 2013-9-17 13:43 编辑

    回复 19# 筱卺厸


        高手,能否说详细点,用WINSOCK具体详细怎么获取呢?能否详细说下思路?
    现在我已经抓到HTTP的包了:
    POST /pay/authToken HTTP/1.1
    Host: 192.168.1.115:8080
    Content-Length: 92
    <?xml version="1.0" encoding="UTF-8"?>
    <authToken>
    <token>38KyBU7n</token>
    </authToken>

    我从网上down了个socket程序
    类似如下:

    ;WSRData 2 1
    send buf0 839"------请问这个值是否是真实抓包中获取到的发送请求的长度呢?目前我的脚本执行时,应该是这个值未给定造成的,怎么获取呢
    <?xml version=\"1.0\" encoding=\"UTF-8\"?>
    <Transaction>
      <Transaction_Header>
        <ext_attributes/>
        <processes/>
        <transaction_rollback/>
         </Transaction_Header>
    ·········
        </request>
        <response/>
        <Multi_Request/>
      </Transaction_Body>
    </Transaction>
    #"
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-22 13:38 , Processed in 0.099055 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表