51Testing软件测试论坛

标题: 急求:使用winsocket编写脚本时,如何在data.ws 中使用变量或参数?? [打印本页]

作者: 地铁和人海    时间: 2013-5-22 17:05
标题: 急求:使用winsocket编写脚本时,如何在data.ws 中使用变量或参数??
要求是这样的:
在action中发送一堆数据,之后会接收到服务器返回的数据,我想要把返回数据的一部分存起来,在下次发送数据时,存起来的那部分数据做为新数据的一部分再发送给服务器。
弄了一个下午都没解决。
跪等。。。。。。。。。
作者: omg    时间: 2013-5-22 22:06
我没有用过winsocket,但是看你的需求就有点“关联”的概念吧,应该winsocket里也能做关联吧。
作者: 地铁和人海    时间: 2013-5-23 09:25
回复 2# omg


   我不能成功录制脚本,是手工写的代码,这样有办法用关联吗?
作者: omg    时间: 2013-5-23 12:04
应该可以是winsock手动建立关联的,在user guide里面到看到有一篇讲这个。
作者: 西瓜xlb    时间: 2013-5-23 14:08
回复 1# 地铁和人海

使用lrs_set_send_buffer试试,自定义buf可以,希望有用

            lr_start_transaction("socket_test");
        lrs_send("socket1","buf0", LrsLastArg);
        lrs_receive("socket1","buf1",LrsLastArg);
        lrs_get_last_received_buffer("socket1", &ActualBuffer, &NumberOfBytes);
//        lr_output_message("*********获取msg1返回结果***********==:%x",ActualBuffer);
    lr_save_var(ActualBuffer+0,3,0,"key1");
        lr_save_var(ActualBuffer+0,3,0,"key1");
        if ((strstr(lr_eval_string("<key1>"),"hey"))) {
                lr_end_transaction("socket_test",LR_PASS);
        }else{
                lr_end_transaction("socket_test",LR_FAIL);
        }

       
        lr_start_transaction("test1");

        lrs_set_send_buffer("socket1",ActualBuffer,9);//actualBuffer为真实发送内容,可以从上次的返回中获得
        lrs_send("socket1","buf2",LrsLastArg);//发送

        lrs_free_buffer(ActualBuffer);//释放内存
        lrs_receive_ex("socket1","buf20",LrsLastArg);//"NumberOfBytesToRecv=4",
    lrs_get_last_received_buffer("socket1",&BufVal, &intGetLen);
        lr_save_var(BufVal+0,3,0,"key1");
        if ((strstr(lr_eval_string("<key1>"),"hey"))) {
                lr_end_transaction("test1",LR_PASS);
        }else{
                lr_end_transaction("test1",LR_FAIL);
        }
作者: zhengaiqi    时间: 2013-6-3 18:23
哥们,我是录制了不能回放,一回放就报错10053
作者: 鹭岛    时间: 2013-6-4 09:59
八成你没关联导致的
之前我也做过winsocket测试,但是加密的,实在没办法(可以把加密过程用dll调用,大师教的)
我实在没办法,因为时间太赶,所以让开发弄成不加密的,就可以看到dw里面是一个xml格式的报文,直接参数化就搞定了




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