测试场景:聊天系统

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

如果接受的字符为定长时,可以设定接受长度。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. iOS之oc与html之间的交互(oc中调用js的方法)

    一.运行的效果图 1.刚开始的效果   2.运行结束后的效果   二.准备工作 1.准备一个html文件导入到oc工程中 2.jiaohu.html文件的原始内容   3.从oc语言中操作.html文 ...

  2. struct tm

    struct tm { int tm_sec; /* 秒–取值区间为[0,59] */ int tm_min; /* 分 - 取值区间为[0,59] */ int tm_hour; /* 时 - 取值 ...

  3. vue-cli3 创建选项选择

    1.创建新项目: vue create hello-world 2.选择配置 3.自定义选择配置,需要什么就选什么 4. 是否使用带历史纪录的路由,这里一般是Y 5.预编译器选择什么 6.eslint ...

  4. vue-cli3详细config配置

    const path = require('path') module.exports = { publicPath: './', // vueConf.baseUrl, // 根域上下文目录 // ...

  5. 使用mock.js进行数据模拟

    mock.js的文档真的是无力吐槽,只说明API怎么使用,完全不说明mock.js这个工具怎么用到项目里面,最有意思的是google的大部分文章复制官网的API,不管是react还是Vue都是下面的流 ...

  6. MYSQL 入门全套

    MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅 ...

  7. Kafka解惑之时间轮 (TimingWheel)

    Kafka中存在大量的延迟操作,比如延迟生产.延迟拉取以及延迟删除等.Kafka并没有使用JDK自带的Timer或者DelayQueue来实现延迟的功能,而是基于时间轮自定义了一个用于实现延迟功能的定 ...

  8. python小项目之微信远程控制

    前两天接触了一个有趣的python模块--itchat,这个模块可以非常方便的操作微信,今天就来使用这个模块来实现微信远程控制. 环境准备 itchat模块不是python标准模块(内置模块),是一个 ...

  9. 随机队列 ADT接口 数组实现

    Random queue ADT接口 RANDOM.h #include <stdlib.h> #include "Item.h" #include <time. ...

  10. SQL 去重 显示第一条数据 显示一条数据

    需求描述:根据某一个字段或几个字段去重来显示任一条数据,第一条或最后一条. 数据样式如下图: 尝试解决: --count(*)方法(只把条数为1条的显示出来了,超过1条全部过滤了) select * ...