zoukankan      html  css  js  c++  java
  • loadrunner socket协议问题归纳(4)---buffer接收变长和定长的数据

    测试场景:聊天系统

    用户登录后,要先向服务器发送用户名,然后可以发送聊天信息,同时也可以接受聊天信息。

    如果接受的字符为定长时,可以设定接受长度。recv buf2 66

    #include "lrs.h"
    Action()
    {
        int i = 1;
        char *recvbuf;  
        int recvlen=0; 

    lr_start_transaction("Transform");

    //创建连接
    lrs_create_socket("socket0", "TCP", "RemoteHost=172.30.22.77:8480", LrsLastArg);
    //发送用户名
    lrs_send("socket0", "buf0", LrsLastArg);
    //发送聊天信息
    lrs_send("socket0", "buf1", LrsLastArg);
    /*
    do{
    lrs_send("socket0", "buf1", LrsLastArg);
    i++;
    }while(i<5);

    */
    //接受聊天信息
    lrs_receive("socket0", "buf2", LrsLastArg);
        lrs_get_last_received_buffer("socket0",&recvbuf,&recvlen);
        lr_output_message("Received: %s",lr_eval_string(recvbuf));
    lr_output_message("recvlen=%d",recvlen);
    //断开连接
    lrs_close_socket("socket0");
    lr_end_transaction("Transform", LR_AUTO);

    return 0;
    }

    data.ws

    ;WSRData 2 1

    send buf0 5
    "Kevin "

    send buf1 5
    "Hello "

    recv buf2 66

    -1

    运行结果:

    Starting action Action.
    Action.c(10): Notify: Transaction "Transform" started.
    Action.c(20): lrs_create_socket(socket0, TCP, ...)
    Action.c(21): lrs_send(socket0, buf0)
    Action.c(22): lrs_send(socket0, buf1)
    Action.c(28): lrs_receive(socket0, buf2)
    Action.c(29): lrs_get_last_received_buffer(socket0, buf_p, size_p)
    Action.c(30): Received:
    your name is:
    Kevin[896565348] come
    Kevin[896565348] said :Hello
    Action.c(31): recvlen=66
    Action.c(33): lrs_close_socket(socket0)
    Action.c(34): Notify: Transaction "Transform" ended with "Pass" status (Duration: 0.0289).

    如果接受的消息长度为不定长的,可以使用*来代替长度。

    将发送的数据使用参数化。

    ;WSRData 2 1


    send buf0 5
    "Kevin "

    send buf1 *
    "<SendMsg>"

    recv buf2 *

     
     
  • 相关阅读:
    39门课程。加油!学长只能帮你到这里了!
    联邦企业架构之CIO委员会的企业架构实施指南(上)
    RTEMS 进程切换分析
    styleCop使用介绍和Fxcop使用参考
    获得Web目录URL
    HelloWorld demo
    第一个C语言程序
    文件分布式存储方案
    Linux常用指令别名、输入/输出重定向、管道、命令连接符、命令替换符
    JavaEE项目问题总结
  • 原文地址:https://www.cnblogs.com/VseYoung/p/loadrunner_4.html
Copyright © 2011-2022 走看看