Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1827954
  • 博文数量: 323
  • 博客积分: 5970
  • 博客等级: 大校
  • 技术积分: 2764
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-03 23:13
文章分类

全部博文(323)

文章存档

2018年(2)

2017年(11)

2016年(10)

2015年(27)

2014年(2)

2013年(30)

2012年(197)

2011年(44)

分类: C/C++

2015-06-23 19:06:42

最近写了个服务器程序,与客户端采用socket长连接,想用LoaderRunner做性能测试。以前没弄过,不知道该如何写,到googlebaidu上竟然查不到,不知道是太简单了呢,还是没有人这么做,郁闷。

那就自力更生吧,研究了一下lr,原来lr支持类c脚本(据说最新版支持类java脚本),那就简单了呗,顺手写一个,如下:

Action()

{

    lrs_create_socket("socket0", "TCP", "RemoteHost=192.168.37.22:8900",  LrsLastArg);

    lr_start_transaction("CA");

    lrs_send("socket0", "buf0", LrsLastArg);

    lrs_receive("socket0", "buf1", LrsLastArg);

    lr_end_transaction("CA", LR_PASS);

    //think time

    lr_think_time(0.3);

    while(1)

     {

         lr_start_transaction("CA");

         lrs_send("socket0", "buf2", LrsLastArg);

         lrs_receive("socket0", "buf3", LrsLastArg);

         lr_end_transaction("CA", LR_PASS);

         //think time

         lr_think_time(0.3);

    }

    lrs_close_socket ("socket0");

    return 0;

}

不要忘了在data.ws中填上数据。例如:

;WSRData 2 1

send  buf0 94

       "00000001100100000074{001=01}{002=20080731171525}{003=127.0.0.1}{007=001}{005=123456}{006=8888}"

recv  buf1 75

       "00000001100200000060{001=02}{002=2008081117040812850}{003=19.37.37.21}{007=0999}"

send  buf2 63

       "00000001103000000043{001=30}{002=20080731171525}{003=127.0.0.1}"

recv  buf3 75

       "00000001103100000055{001=31}{002=20080812162829}{003=19.37.37.21}{007=0000}"

-1

注意:buf后面的长度必须正确。

模拟运行测试一下脚本,运行通过。

最后使用该脚本定义测试场景,测试得到结果为TPS2000成功完成测试目标。

   

    顺便提一下,上面使用了一个while循环,实际测试时可以不做循环,在场景中设置迭代方式和次数等(将lrs_create_socket加在init内,将lrs_close_socket加在end内,action只用来发送和接收报文,即可实现长连接测试)。

阅读(4146) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~