51Testing软件测试论坛

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

作者: lunahaha527    时间: 2013-9-6 14:33
标题: 【高手请进】请教下,用LR向服务器发送HTTP协议的XML格式文件字段问题
本帖最后由 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是否和第一个问题有关呢?还是脚本中还有其它问题???】
作者: 云层    时间: 2013-9-6 16:26
应该是你请求前面少了点关于Content-Length 的声明
作者: lunahaha527    时间: 2013-9-6 16:43
回复 2# 云层


    就是不知道这个Content-Length加哪儿合适
貌似加哪儿都提示这个。
能告诉我这个字段应该放在哪边合适吗?
作者: 云层    时间: 2013-9-6 16:48
试试web_add_header
作者: lunahaha527    时间: 2013-9-6 17:37
回复 4# 云层


    请问云层,有关web_add_header在书里那部分有详细介绍啊?另外,对于新手初学脚本编写,有没有好的建议呢
作者: lunahaha527    时间: 2013-9-6 17:39
回复 4# 云层


    to 云层:
     请问web_add_header在书里哪个章节有介绍,另外,对于新人要学习LR脚本编程还想快速上手,有没有比较好的学习方法呢?
作者: 云层    时间: 2013-9-8 21:35
没有技巧
1.学会沟通
2.学会看帮助
作者: lunahaha527    时间: 2013-9-10 14:19
本帖最后由 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
这个错误又表明了什么呢
作者: 地壳    时间: 2013-9-10 15:01
用这个函数试试:web_add_auto_header ,它比web_add_header灵活
作者: lunahaha527    时间: 2013-9-10 15:13
回复 9# 地壳


    还是不行,错误依然存在
作者: lunahaha527    时间: 2013-9-11 10:22
有人知道这个问题怎么解决不??急啊
作者: lunahaha527    时间: 2013-9-12 15:05
高人请进一下,现在卡在这儿不能动了。一直提醒content-length不对。有谁知道怎么计算发送的长度不?
或者可以自动获取???
作者: 云层    时间: 2013-9-12 15:39
你要问问开发到底他们是为啥要验这个东西,还是说你的xml抛过去确实超长度了
作者: lunahaha527    时间: 2013-9-12 15:44
回复 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).

真不知道这个值是怎么计算才正确!
作者: lunahaha527    时间: 2013-9-12 15:50
真搞不懂了,用其它的工具,能够计算出来的固定的length放到脚本里面还是提示这个。
to 云层:
如果存在warning是否会对整个性能有影响???
作者: lunahaha527    时间: 2013-9-12 15:53
本帖最后由 lunahaha527 于 2013-9-12 15:55 编辑

回复 15# lunahaha527


    构造虚拟用户稍跑了下,就一堆fail。看来是有影响。这个问题很头疼啊
作者: lunahaha527    时间: 2013-9-12 16:18
回复 14# lunahaha527


    超长的可能性也不大吧,因为我的脚本并不是下载功能,只是发个请求过去,不会超过110字节
作者: lunahaha527    时间: 2013-9-13 13:03
高手们,哪位谁能够告诉我啊?
现在就卡在这个地方了
作者: 筱卺厸    时间: 2013-9-16 21:46
回复 1# lunahaha527


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

content_length是一定要指定的,要不然server端怎么知道它有没有接收完呢?
作者: lunahaha527    时间: 2013-9-17 11:10
本帖最后由 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>
#"
作者: lunahaha527    时间: 2013-9-17 14:26
高手在哪里呀,这个问题困扰好久了
作者: ylhkaixin    时间: 2016-6-16 18:21
请问解决了吗?





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