测试场景:聊天系统

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

如果接受的字符为定长时,可以设定接受长度。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. centos7 安装拼音输入法

    依次选择Applications->System Tools->setting->Regiin&Language,添加Chinese(Intelligent Pinyin) ...

  2. CodePush热更新组件详细接入教程

    CodePush热更新组件详细接入教程 什么是CodePush CodePush是一个微软开发的云服务器.通过它,开发者可以直接在用户的设备上部署手机应用更新.CodePush相当于一个中心仓库,开发 ...

  3. 25条提高iOS App性能的技巧和诀窍

    25条提高iOS App性能的技巧和诀窍 当我们开发iOS应用时,好的性能对我们的App来说是很重要的.你的用户也希望如此,但是如果你的app表现的反应迟钝或者很慢也会伤害到你的审核. 然而,由于IO ...

  4. 解决vscode换行光标跳转行首

    这个问题是由于设置自动保存而造成的. 解决方法1:取消自动保存. 解决方法2:在首选项的设置里加上"files.autoSaveDelay": 10000,延迟一小会自动保存的时间 ...

  5. ElasticSearch优化系列四:ES的heap是如何被瓜分掉的

    以下分别解读几个我知道的内存消耗大户: Segment Memory Segment不是file吗?segment memory又是什么?前面提到过,一个segment是一个完备的lucene倒排索引 ...

  6. kbmMW功能 - kbmMWProcess单元(转帖)

    此贴为转发红鱼儿的文章,原贴地址: https://www.cnblogs.com/kinglandsoft/p/kbmmw-features-5-kbmmwprocess-unit.html 在新的 ...

  7. BLDC无刷直流电机的原理及驱动基础

    无刷直流电机(BLDC,也称为马达驱动)是电机和控制技术相结合的产品,电调控制电机的运行,从电流驱动角度来看,无刷直流电机可分为正弦波驱动和方波驱动.通常,以方波驱动的电机称为无刷直流电机(BLDC) ...

  8. java->php之在线子域名查询-接口光速版

    因为不懂java,所以 用php重写了大佬的 在线子域名查询-接口光速版 http://sbd.ximcx.cn/  这是大佬的 然后 改一下 ,用php 其实就是改了几行代码而已,jquery和aj ...

  9. PTA(BasicLevel)-1012 数字分类

    一 题目描述    给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: ​​ = 能被 5 整除的数字中所有偶数的和: ​​ = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即 ...

  10. c语言实验报告(四) 从键盘输入字符串a和字符串b,并在a串中的最小元素(不含结束符)后面插入字符串b.

    a串中最小元素后的字符被舍弃了. #include<stdio.h>#include<string.h>void main(){  int i,min=0;  char a[2 ...