1、lrs_create_socket("socket0", "TCP", "RemoteHost=127.0.0.1:8888", LrsLastArg),创建socket连接
2、lrs_send("socket0", "buf0", LrsLastArg),发送buf中的数据
3、lrs_receive("socket0", "buf1", LrsLastArg),接收服务器返回的数据,并保存到一个buf1中
4、lrs_save_param("socket0",NULL,"RecivedData",0,-1),获取服务器返回的数据,并保存到一个参数中RecivedData,最后两个参数,偏移量和length
5、lrs_save_searched_string("socket0",NULL,"RecivedData","LB/BIN=|","RB/BIN=|",1,0,-1),获取服务器返回的数据,并指定了左右边界,过滤出想要的数据,保存到一个参数中,最后三个参数分别为,取值序号、偏移量、保存长度
6、lrs_close_socket("socket0"),关闭链接 设置超时
lrs_set_recv_timeout2
当定义的buf长度与实际不匹配时,可以将接受数据的时间设置为0,避免等待的情况。 send buf0 10
"123"
recv buf1 19

  

自编socket 接口源代码

 import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket; public class TcpServer { public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("server start...");
while (true){
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
byte[] by = new byte[1024];
int len = inputStream.read(by);
System.out.println("Msg from "+socket.getInetAddress().getHostAddress()+":"+new String(by,0,len));
OutputStream outputStream = socket.getOutputStream();
outputStream.write("|0|SUCCESS|1000913|".getBytes());
outputStream.flush();
}
// socket.close();
}catch (Exception e){
e.printStackTrace();
}
}
}

TcpServer.java

测试脚本源码

 #include "lrs.h"

 Action()
{
//开始事务
lr_start_transaction("tcp");
//建立连接
lrs_create_socket("socket0", "TCP", "RemoteHost=127.0.0.1:8888", LrsLastArg);
//开始发送 buf0 数据
lrs_send("socket0", "buf0", LrsLastArg);
//接收并保持一个buf1
lrs_receive("socket0", "buf1", LrsLastArg);
//相当于提去SUCCESS这个值 ,存惨
lrs_save_param("socket0",NULL,"RecivedData",,); //事务判断
//注意 <> 使用参数是尖括号
if(strcmp(lr_eval_string("<RecivedData>"),"SUCCESS")==){ //结束事务
lr_end_transaction("tcp", LR_PASS); }else{ lr_end_transaction("tcp", LR_FAIL); } return ;
}

sockets 接口测试脚本

 Virtual User Script started at : -- ::
Starting action vuser_init.
vuser_init.c(): lrs_startup()
Ending action vuser_init.
Running Vuser...
Starting iteration .
Starting action Action.
Action.c(): Notify: Transaction "tcp" started.
Action.c(): lrs_create_socket(socket0, TCP, ...)
Action.c(): lrs_send(socket0, buf0)
Action.c(): Notify: Parameter Substitution: parameter "num" = ""
Action.c(): lrs_receive(socket0, buf1)
================================RECEIVED BUFFER================================
"|0|SUCCESS|1000913|"
===============================================================================
Action.c(): callRecv: bytes were received
Action.c(): lrs_save_param(socket0, null, RecivedData, , )
Action.c(): Notify: Saving Parameter "RecivedData = SUCCESS".
Action.c(): Notify: Parameter Substitution: parameter "RecivedData" = "SUCCESS"
Action.c(): Notify: Transaction "tcp" ended with "Pass" status (Duration: 0.0316).
Action.c(): lrs_close_socket(socket0)
Ending action Action.
Ending iteration .
Ending Vuser...
Starting action vuser_end.
vuser_end.c(): lrs_cleanup()
Ending action vuser_end.
Vuser Terminated.

log

data.ws需要添加这几行

send buf0 10
"<num>"
recv buf1 19

socket_tcp协议_loadrunner测试的更多相关文章

  1. 协议并发测试工具 BoHexTest

    BoHexTest V1.0.3 1.添加连接LOG打印2.优化代理及并发策略 大小: 1074688 字节修改时间: 2017年10月3日, 10:24:26MD5: EBAE5A17F7F5ED0 ...

  2. 软件测试基础Ⅲ(osi7层协议,测试模型,LoadRunner组件,软件质量模型)

    osi7层开放式系统互连网络模型 1.物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达目的 ...

  3. TCP/IP协议,TCP与平台通信,通讯协议压力测试(python)

    最近的项目来了一个需求,要求测试tcp网关通讯协议: 1.液压井盖通过TCP/IP TCP与平台通信: 2.硬件定期发送心跳包(10S)给平台,是平台与硬件保持长连接: 3.每台硬件有一个12字节的唯 ...

  4. 游戏协议模拟测试工具(TcpEngine)使用简介

    功能介绍 在有的网络开发需要走二进制流协议场景,比如网络游戏开发,在开发阶段,前端和后端协商好协议后就分别开发.在开发写代码的时候,有时需要对端发送一条完整的协议过来触发一下自己的代码,进行单步调试或 ...

  5. EPF:一种基于进化、协议感知和覆盖率引导的网络协议模糊测试框架

    本文系原创,转载请说明出处:from 信安科研人 目录 实验 工具的安装 1.安装AFL++ 2.安装epf 对IEC104协议库进行fuzz 实验准备 使用AFL++中的编译器插桩 开始fuzz 原 ...

  6. jmeter进行https协议的测试

    一.HTTPS和HTTP的区别     超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息.HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和 ...

  7. linux arping-通过发送ARP协议报文测试网络

    博主推荐:更多网络测试相关命令关注 网络测试  收藏linux命令大全 arping命令是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包,通过ping命令检查设备上的硬件地址.能 ...

  8. 复刻smartbits的国产网络测试工具minismb-如何测试协议限速

    复刻smartbits的网络性能测试工具MiniSMB,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数和最 ...

  9. loadrunner测试TCP协议服务器性能

    loadrunner测试TCP协议服务器性能 . 性能loadrunner测试c 最近对服务器的性能感兴趣,于是开始研究了一阵子loadrunner如何做采用TCP协议交互的服务器的性能测试,对loa ...

随机推荐

  1. C语言的谜题

    本篇文章<C语言的谜题>展示了14个C语言的迷题以及答案,代码应该是足够清楚的,而且我也相信有相当的一些例子可能是我们日常工作可能会见得到的.通过这些迷题,希望你能更了解C语言.如果你不看 ...

  2. linux内核netfilter连接跟踪的hash算法

    linux内核netfilter连接跟踪的hash算法 linux内核中的netfilter是一款强大的基于状态的防火墙,具有连接跟踪(conntrack)的实现.conntrack是netfilte ...

  3. JAVA并发(一)

    java并发的一系列框架和技术主要是由java.util.concurrent 包所提供.包下的所有类可以分为如下几大类: locks部分:显式锁(互斥锁和速写锁)相关: atomic部分:原子变量类 ...

  4. 网页静态化解决方案-Freemarker

    1.1    技术简介与使用 1.1.1     简介 为什么使用: 1.  减轻数据库的访问压力,静态化比较适合大规模且相对变化不太频繁的数据: 2.  有利于SEO(搜索引擎优化); 纯的HTML ...

  5. LL(1)文法--递归下降程序

    递归下降程序 递归下降程序一般是针对某一个文法的.而递归下降的预测分析是为每一个非终结符号写一个分析过程,由于文法本身是递归的,所以这些过程也是递归的. 以上是前提. Sample 假如给的是正规式子 ...

  6. python3 datetime和time获取当前日期和时间

    import datetime import time # 获取当前时间, 其中中包含了year, month, hour, 需要import datetime today = datetime.da ...

  7. Vue 父组件调用子组件的方法

    qwq  前两天看了下vue,父子组件方法的调用,怕忘记,所以做个小记录. 一.父组件调用子组件的方法 1.父组件 <template> <div id="rightmen ...

  8. less使用

    Less在浏览器上使用的方法 <link rel="stylesheet" type="text/less" href="styles.less ...

  9. laravel5.5源码笔记(六、中间件)

    laravel中的中间件作为一个请求与响应的过滤器,主要分为两个功能. 1.在请求到达控制器层之前进行拦截与过滤,只有通过验证的请求才能到达controller层 2.或者是在controller中运 ...

  10. STM32F4 SPI双机通讯调试总结

    1.如果查询方式进行数据收发,不管是Master,还是Slave,流程如下:(假设收发n+1个字节) a.等待TXE,写入一个字节 b.等待TXE,写入一个字节 c.等待RXNE,读取一个字节 循环b ...