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. SSIS Debug

    プロジェクト=>最后一项[DEPJ1200プロパテイページ] 1.配置...=>CreaeDeploymentUtility=True2.デパッグ=>Run64BiRuntime=f ...

  2. Angular动态表单生成(一)

    好久不写博客了,手都生了,趁着最近老大让我研究动态表单生成的时机,撸一发博客~~ 开源项目比较 老大丢给我了两个比较不错的开源的动态表单生成工具,这两个项目在github上的star数量基本持平: h ...

  3. C# 中的#if、#elif、#else、#endif等条件编译符号 (转载)

    这些是C#中的条件编译符号.这些指令我在项目中遇到过,查过网络,问过人(当然,既不认识大牛,也不认识小牛,所以没什么收获).今天翻看一本资料,有提到这个方面的东西,所以写下来和能看到这篇文章的人一起学 ...

  4. spring 包的依赖关系

    转自:http://www.cnblogs.com/ywlaker/p/6136625.html 很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring ...

  5. 位图索引对于DML操作的影响

    位图索引相对于常规的B-tree 索引,有着体积更加小的优势,节省空间.对于重复率特别高的字段,比如性别,比如省份.查询效率要优于B-tree 索引.那为什么我们总被告知在业务库中不要使用呢? 业务库 ...

  6. #leetcode刷题之路41-缺失的第一个正数

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数.示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: ...

  7. sizeof 用于返回一个对象或者类型所占据的内存数

    整数类型 sizeof(int); 4字节or8字节 函数 sizeof(函数); 函数返回值类型占据的字节数 字符数组 char c[] = "abc"; sizeof(c); ...

  8. activemq的高级特性:通配符式分层订阅

    activemq的高级特性之通配符式分层订阅 队列的名称可以分层:aa.bb.cc.dd 可以匹配:aa.bb.cc.dd,aa.*.cc.dd,aa.> *:匹配当前层的内容 >:任何一 ...

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

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

  10. angular中的$cookies和$cookieStore设置过期时间

    angular1.4及以上版本才支持$cookies. 项目引入的是1.4.2版本,操作cookies原先一直用的是$cookieStore,用的飞起啊. $cookieStore.remove(&q ...