测试场景:聊天系统

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

如果接受的字符为定长时,可以设定接受长度。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:\n%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\n"

send buf1 5
"Hello\n"

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\n"

send buf1 *
"<SendMsg>"

recv buf2 *

 
 

loadrunner socket协议问题归纳(4)---buffer接收变长和定长的数据的更多相关文章

  1. loadrunner socket协议问题归纳(6)

    首先让我们先看一下loadrunner- winsock 函数 一览表: lrs_accept_connection 接受侦听套接字连接 lrs_close_socket 关闭打开的套接字       ...

  2. loadrunner socket协议问题归纳(3)

    摘要:通过实例讲解loadrunner中的socket协议性能测试的一种测试方法,如何不依赖loadrunner既定规则,自行控制收发数据包 关键词:Loadrunner,socket,自行控制,收发 ...

  3. loadrunner socket协议问题归纳(0)

    一.概述         Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作.     二.socket概述         soc ...

  4. loadrunner socket协议问题归纳(1)

    前段时间测了loadrunner直接发送报文到socket上的性能测试.在此,稍微回顾整理下. 与socket通讯,有两种方式,一种是建立长连接,建立后,不停的发送,接收.另外一种是建立短连接,建立连 ...

  5. loadrunner socket协议问题归纳(2)

    编写步骤 1.建立与服务端的连接 rc=lrs_create_socket(“socket0”,”TCP”,”LocalHost=0”,”RemoteHost=127.0.0.1:8808”,LrsL ...

  6. loadrunner socket协议问题归纳(5)

    获取服务器的返回值,可以用web_reg_save_param函数,该参数最好放到: 语法: int web_reg_save_param(const char *ParamName, <lis ...

  7. Loadrunner socket协议lrs_receive函数接收到返回数据包 仍然等待服务器返回--解决

    前段时间在使用loadrunner socket协议发送数据包到到服务器,使用lrs_receive接收服务器应答数据包,已经接收到数据包,但LR仍然在等待服务器端返回,而且日志打印显示每次接收返回都 ...

  8. Loadrunner 中socket协议RecvBuffer接收到数据长度为空

    socket通讯,有两种方式,一种是建立长连接(TCP),建立后,不停的发送,接收.另外一种是建立短连接(UDP),建立连接,发送报文,接收响应,关闭连接.两种方式 server的开销不同. 今天出现 ...

  9. 自行控制loadrunner的socket协议性能测试 (转)

    一前言 二任务的提出 三实现方案讨论 四技术要点讲解 如何开始录制一个最简单的收发数据包脚本 写日志文件 一行一行读数据包文件 字符串转换为十六进制数据包 发送自己定义的数据包 接收数据包到自定义缓冲 ...

随机推荐

  1. Python 基础 模块

    python 中模块和保定 概念 如果将代码分才投入多个py 文件,好处: 同一个变量名也互不影响.   python 模块导入 要使用一个模块,我们必须先导入该模块.python 使用import ...

  2. canvas制作的烟花效果

    最近感觉canvas挺有意思的,在业余时间没事研究了一下,参考过网上一些思路,话不多说,开始啦. github地址:https://github.com/aWhiteBear/fireworks 演示 ...

  3. Java 常见BUG 整理

    1.BigDecimal初始化double 2.Integer   java对于-128到127之间的数,会进行缓存,这个范围的Integer对象是同一个! == 是ok,但是超出这个范围就不可以用 ...

  4. Windows 安装配置memcached+php的教程,以及相关资源下载

    第一步:安装 Memcached 服务 第二步:让php加载memcached.dll扩展 详情步骤如下: 第一步:安装 Memcached 服务 1.下载 Memcached  密码:jzay.压缩 ...

  5. css之层叠上下文和层叠顺序

    大家在写网页的时候会不会经常遇到莫名奇妙的样式问题,比如谁覆盖了谁.也找不出原因,为什么z-index高的却没有覆盖掉z-index低的元素呢? 带着这些疑问.我做了个小实验.代码如下: <st ...

  6. PhpStorm 全局查找的快捷键

    本页面查找 :   ctrl  + f 全局查找 : ctrl + shift + f 自己定义 :文件 -> 设置  -> 快捷键  ->  修改

  7. 嵌入式nand flash详解

    一.s3c2440启动后会将nand flash的前4K程序复制到内部的sram中,这个过程是硬件自动完成的,但是如果我们的程序远远大于4K,这个时候就需要将程序从flash拷贝到内存中来运行了. 二 ...

  8. 总结2018&&展望2019

    2019很激动,因为我加入了博客园这个大家庭,以后的技术文章都会在博客园记录,也希望可以结识更多的有趣朋友和共同理想的友人.第一篇文章从自我规划开始.2019 您好!!! 总结2018: 距离2018 ...

  9. Verilog HDL 使用规范(一)

    本博文参考:<大规模逻辑设计指导书>,对于写出规范的代码,培养良好的代码风格颇有裨益. wire and register 一个reg变量只能在一个always语句中赋值: 这个说明至关重 ...

  10. 20155222 2016-2017-2 《Java程序设计》实验三

    20155222 2016-2017-2 <Java程序设计>实验三 1 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单 ...