51Testing软件测试论坛

标题: loadrunner c/s脚本代码中须提取DATA.ws文件中的一个值 [打印本页]

作者: irisfly89    时间: 2012-3-29 14:29
标题: loadrunner c/s脚本代码中须提取DATA.ws文件中的一个值
本帖最后由 irisfly89 于 2012-3-30 19:09 编辑

小妹才学习不久 需要提取对应 data.ws中的属性值usResultCode 对应 3 提取出来
请各位帮助 发出脚本代码 感激万分

;WSRData 2 1

send  buf0 144
        "\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "n"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "{\"msgType\":5,\"name\":\"<username>\",\"pass\":\"<pd>\",\"caKey\":\"ke"
        "y\",\"clientVersion\":0,\"paraVersion\":0,\"uiLevel\":0}"

recv  buf1 156
        "\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "z"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "{\"uiPersonId\":120371,\"uiLevel\":3,\"caSession\":\"123\",\"usResultCode\""
        ":3,\"usResultDesc\":null,\"clientVersion\":1,\"paraVersion\":3}"
作者: irisfly89    时间: 2012-3-29 14:31
在线等待
作者: xiaoshi_2011    时间: 2012-3-29 14:52
你这个LR是什么版本的?我录制回放的时候也出现过类似这些代码,还有错误提示!苦恼啊
作者: irisfly89    时间: 2012-3-29 14:59
loadrunner11啊 脚本里的DATA
作者: aspstar    时间: 2012-3-29 15:07
\和"在c语言里需要转译,所以用下面的方法试试
lrs_save_searched_string("socket0",NULL,"session1","LB/BIN=usResultCode\\\"\"\":","RB/BIN=,",1,0,-1);
作者: irisfly89    时间: 2012-3-29 15:12
不行 啊 Action.c(13): 通知: 事务 "建立连接" 已启动。
Action.c(15): lrs_create_socket(socket0, TCP, ...)
Action.c(17): 通知: 事务 "建立连接" 以 "Pass" 状态结束 (持续时间: 0.0054)。
Action.c(22): lrs_create_socket(socket1, UDP, ...)
Action.c(24): lrs_create_socket(socket2, UDP, ...)
Action.c(26): lrs_create_socket(socket3, UDP, ...)
Action.c(35): lrs_send(socket0, buf0)
Action.c(37): lrs_receive(socket0, buf1)
Action.c(37): Mismatch in buffer's length (expected 156 bytes, 200 bytes actually received, difference in 44 bytes)
Action.c(38): lrs_save_searched_string(socket0, null, session1, LB/BIN=usResultCode\""":, RB/BIN=,, 1, 0, -1)
Action.c(38): fiCalcSearchedStringOffset: Left boundary occurs fewer times than ordinal
Action.c(38): 错误: 无法保存到参数 lrs_save_searched_string :。错误代码: 9015。
从操作调用了中止。
正在结束 Vuser...
正在开始操作 vuser_end。
作者: irisfly89    时间: 2012-3-29 15:13
我的 Action()
{
                 
        lr_start_transaction("建立连接");

    lrs_create_socket("socket0", "TCP", "RemoteHost=192.168.0.86:56782",  LrsLastArg);
   
        lr_end_transaction("建立连接", LR_AUTO);




    lrs_create_socket("socket1", "UDP", "LocalHost=8050", "RemoteHost=192.168.0.86:56782",  LrsLastArg);

    lrs_create_socket("socket2", "UDP", "LocalHost=8060", "RemoteHost=192.168.0.86:56782",  LrsLastArg);

    lrs_create_socket("socket3", "UDP", "LocalHost=8070", "RemoteHost=192.168.0.86:56782",  LrsLastArg);

    lr_think_time(13);

    lrs_send("socket0", "buf0", LrsLastArg);
   
        lrs_receive("socket0", "buf1", LrsLastArg);
  //  lrs_save_searched_string("socket0",NULL,"session1","LB/BIN=usResultCode\\\"\"\":","RB/BIN=,",1,0,-1);


   lrs_send("socket0", "buf2", LrsLastArg);
lrs_receive("socket0", "buf3", LrsLastArg);

lrs_close_socket("socket1");
lrs_close_socket("socket2");
lrs_close_socket("socket3");
return 0;
}
作者: aspstar    时间: 2012-3-29 16:11
左边界用这个试试usResultCode\":
lrs_save_searched_string("socket0",NULL,"session1","LB/BIN=usResultCode\":","RB/BIN=,",1,0,-1);
作者: irisfly89    时间: 2012-3-29 16:22
还是不对哈  报错 同时 usResultCode 可能有4个值 1,2,3,4
作者: irisfly89    时间: 2012-3-29 16:24
Action.c(13): 通知: 事务 "建立连接" 已启动。
Action.c(15): lrs_create_socket(socket0, TCP, ...)
Action.c(17): 通知: 事务 "建立连接" 以 "Pass" 状态结束 (持续时间: 0.0042)。
Action.c(22): lrs_create_socket(socket1, UDP, ...)
Action.c(24): lrs_create_socket(socket2, UDP, ...)
Action.c(26): lrs_create_socket(socket3, UDP, ...)
Action.c(30): lrs_send(socket0, buf0)
Action.c(32): lrs_receive(socket0, buf1)
Action.c(32): Mismatch in buffer's length (expected 156 bytes, 200 bytes actually received, difference in 44 bytes)
Action.c(35): lrs_save_searched_string(socket0, null, session1, LB/BIN=usResultCode":, RB/BIN=,, 1, 0, -1)
Action.c(37): lrs_send(socket0, buf2)
Action.c(38): lrs_receive(socket0, buf3)
Action.c(38): Mismatch in buffer's length (expected 20578 bytes, 20745 bytes actually received, difference in 167 bytes)
Action.c(40): lrs_close_socket(socket1)
Action.c(41): lrs_close_socket(socket2)
Action.c(42): lrs_close_socket(socket3)
正在结束操作 Action。
正在结束迭代 1。
正在结束 Vuser...
正在开始操作 vuser_end。
vuser_end.c(12): lrs_cleanup()
正在结束操作 vuser_end。
Vuser 已终止。  你看看把
作者: aspstar    时间: 2012-3-29 16:46
没有看到报错,日志不是显示脚本通过了吗?
作者: irisfly89    时间: 2012-3-29 16:52
恩 编译检查不到错误  但是我怎么把这个 usResultCode  值是几 看到呢 我还需要做一个判断 是1,2,3,4 不通
作者: aspstar    时间: 2012-3-29 17:00
看内容用这个
        lr_output_message("receive:%s",lr_eval_string("<session1>"));
比较用这个
        if (strcmp(lr_eval_string("<session1>"),"1")!=0) {
                lr_error_message("error:%s",lr_eval_string("<session1>"));
        }
作者: irisfly89    时间: 2012-3-29 17:48
这个 session1应该用data中的 caSession替代吧?
作者: 月华    时间: 2012-3-29 17:50
帮顶一下。。。
作者: irisfly89    时间: 2012-3-29 17:59
这个 session1
lrs_save_searched_string(socket0, null, session1, LB/BIN=usResultCode\""":, RB/BIN=,, 1, 0, -1)
中的参数的意思 代表的是啥呢
作者: 橄榄叶    时间: 2012-4-5 16:45
lrs_save_searched_string("socket0",buf1,"session1","LB/BIN=\"usResultCode\":
","RB/BIN=,\"usResultDesc",1,0,-1);
作者: yxd2006    时间: 2012-6-10 16:59
学习中……




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