LoadRunner Windows Sockets 牛刀小试

发表于:2013-01-06来源:码农博客作者:backtracker点击数: 标签:loadrunner
使用tcpcopy对采集项目进行负载测试已经接近尾声了,由于下一个项目的采集程序只能在windows下运行,所以不得不寻找其他的测试工具。

  使用tcpcopy对采集项目进行负载测试已经接近尾声了,由于下一个项目的采集程序只能在windows下运行,所以不得不寻找其他的测试工具。首先看了一下Jmeter,发现它好像没有模拟TCP协议的功能,然后我就想到了LoadRunner的winSocket。折腾了一下,实验成功。现在把实验的过程分享给大家。

  一、实验目标

  用LoadRunner Windows Sockets发送数据给TCP服务,查看数据是否发送成功。

  二、实验工具和实验方法

  1.实验工具及下载

  LoadRunner 11 下载地址 传送门

  SocketsEcho.java(由博主simon友情提供) 下载地址 传送门

  wireshark 下载地址 传送门

  2.实验方法

  启动SocketsEcho这个java程序,对TCP某一个端口进行监听,然后使用LoadRunner Windows Sockets编写脚本向TCP服务发送数据,期间使用wireshark对数据包进行抓包分析。

  本次实验需要两台机器,因为如果TCP服务跟LoadRunner在一台机器上的话,发送的TCP数据包会直接走协议栈,不走网卡,这样就会导致wireshark就抓不到数据 (by GodLaughing)

  三、实验步骤

  1.编译并运行SocketsEcho

1
2
3
javac SocketsEcho.java #编译
java SocketsEcho #运行

  该程序默认监听6000端口,如果需要修改请修改类的PORT属性。接收到TCP数据包会将内容打印出来,但不要输入中文,打印会乱码。

  2.编写VuGen测试脚本

  1) 初始化用户:创建WinSocket,连接TCP服务器

1
2
3
4
5
6
7
8
    vuser_init()
    {
            lrs_create_socket("socket0", "TCP", "LocalHost=192.168.10.208:4001",
"RemoteHost=192.168.10.165:6000",LrsLastArg);
 
            return 0;
    }
   

  LocalHost中输入LoadRunner所在机器IP和端口,RemoteHost中输入SocketsEcho所在IP和端口。

  2)发送数据buf1,插入事物可对其进行监控

1
2
3
4
5
6
7
8
9
Action()
{
 
    lr_start_transaction("Socket_Send");       
        lrs_send("socket0", "buf1", LrsLastArg); 
    lr_end_transaction("Socket_Send", LR_AUTO);
    return 0;
}

原文转自:http://www.ltesting.net