查看完整版本: 使用LR的socket协议对C/S系统测试的实例

leey 2007-11-16 13:24

使用LR的socket协议对C/S系统测试的实例

最近看到有些同学在找C/S方面的性能测试资料,似乎网上LR的资料还是web方面的居多,所以把自己之前测过的一个项目的脚本共享出来,供需要的同学们做入门参考。

首先简单说下被测系统,这是一个轻量级的即时消息通讯(IM)平台,用c++开发的,Loadrunner里面使用的是Socket协议,其实大部分C/S项目的测试都是要用Socket协议的。

下面开始介绍脚本,完整的脚本不算小,需要的tx请下载附件,下面贴的Action函数只是一个极大简化后的基本框架,或者说socket测试的基本思路。
在这个实例脚本中,主要测试的是这个IM系统的响应速度、事务处理速度、最大处理容量等指标。

脚本实现的主要功能:
1.登录
2.查询在线用户列表
    lrs_send("socket0", "buf9", LrsLastArg);
3.自定义函数从响应的数据包中分析用户列表
    void Save_RecvBuffer(char *socketID, char *SaveBuffer)
    void Gen_onlineUser(char outputUser[100][20], int *outputNum, char *LastRecvBuffer)
4.组装要发送的数据包
    lrs_set_send_buffer("socket0", msg, strlen(msg) );
5.随机向其他在线用户发消息
    lrs_send("socket0", "buf6", LrsLastArg);
6.登出

总结
   通常来讲,Socket协议的性能测试主要就是数据包的收发和数据内容的分析、处理,性能分析也是集中在数据包的发送和接收时间上。
   LR里面Socket协议不支持自动关联,所以要自己手动关联,可以用lrs_save_param_ex()等函数。
   这个例子中所收发的数据都是不加密的,如果是加密后的二进制数据包的话,就可能要用lrs_length_send()来代替lrs_send()函数了。

   写的比较简单和混乱:L ,大家凑或看吧,呵呵。


//下面是简化后的脚本/////////////////////////////////////////////////

Action()
{

//集合点
lr_rendezvous("Login");

//事务点
lr_start_transaction("Login test");

//创建socket
lrs_create_socket("socket0", "TCP", "RemoteHost=10.20.5.213:8001",  LrsLastArg);

//发包
lrs_send("socket0", "buf0", LrsLastArg);

//收包
lrs_receive("socket0", "buf1", LrsLastArg);

//事务结束点
lr_end_transaction("Login", LR_AUTO);

//断开socket
lrs_disable_socket("socket0", DISABLE_SEND_RECV);
lrs_close_socket("socket0");

return 0;
}

Zee 2007-11-16 14:01

这样的帖子,一定要鼓励。

leey 2007-11-16 14:09

Z版亲顶,老感动了:hug:

bluemoon1999 2007-11-16 15:26

好贴,传说中的 SOCKEt协议

佩服  
学习了.

zhangsq1982 2007-11-16 15:28

咱也给顶了呀!谢谢老兄的慷慨!
有这方面理论网站,
把网址介绍给我们,我们会更感动的!
在这里先谢谢了

chenxi.216 2007-12-4 12:02

很实用,正要学习这方面的呢,以后多一点这方面的东东分享一下,谢谢了!

yulinling100 2007-12-4 16:05

众里寻他千百度,谢谢楼主了

softwareth 2007-12-4 16:39

xiexie 学习

423799223 2007-12-4 17:05

不错
谢谢呀

这样的帖子少呀

haixiaoxinyuan 2007-12-11 12:03

顶下 不错

ebuluo 2007-12-12 11:31

很好,很强大

xqliu87 2007-12-19 13:20

好帖!顶之

小残游记 2007-12-19 17:54

正好想借鉴借鉴,谢谢啊!!

yoyo7777 2007-12-20 10:21

好东西啊,谢谢楼主了

QWE_QQ_WW_EE 2007-12-20 17:26

好贴,传说中的 SOCKEt协议

dujun 2007-12-28 11:12

为什么我不能录制 MSN 登录脚本呢

sdusun 2007-12-29 14:29

你如果知道MSN的加密算法就可以了。

muyang327 2007-12-29 15:29

学习了,多谢 。支持 !

aaliujing 2007-12-30 20:57

顶有技术的贴子!~~

meijiao 2008-1-2 10:01

顶,正需要这方面的资料,谢谢楼主了

kuangjianke 2008-1-11 10:18

确实是不错啊,不回帖不厚道了

exodus 2008-1-11 11:08

顶,这个其实很实用的

yangxiao2004251 2008-1-11 13:46

很有用,顶了,

很有用,顶了,

huanjian 2008-1-11 14:43

太好了!最近自己在录制脚本,不怎么懂,谢谢楼主了!

liunian 2008-1-11 16:50

好东西,急需...谢谢..

aboutmay 2008-1-14 00:04

刚好需要`
谢谢了~

紫色梦幻 2008-1-14 15:27

LZ真的太好了,正需要这个资料呢!太感谢了!:lol

chenghui.work 2008-1-15 14:50

很好,很和谐

huih 2008-1-16 15:38

:) 谢谢LZ!

jimmyzhou 2008-1-16 17:18

回复 1# 的帖子

诶呀,大哥,缘分啊!

fgx522 2008-1-16 17:20

谢谢,非常有益

wzdancer 2008-1-17 23:28

太好了!支持楼主!

drlong 2008-1-20 17:05

支持

最近在学习,正缺这方面的资料。

hongerchen 2008-1-30 11:35

新手上路,很多需要前人指点。希望能和楼主多多交流。

huangrong321 2008-1-30 15:40

楼主真好,太感谢了,下下来看哈

大王八 2008-1-30 22:43

有机会和楼主一起探讨,学习了

nataliedu 2008-1-31 09:24

我后面也需要socket测试一个小项目,好帖啊

iori 2008-1-31 09:33

非常感谢,学习ing

nishuangxi 2008-1-31 11:13

楼主你能保证你的脚本每次接收的数据包都是能预先处理的吗?否则你就没法保证你这个脚本的测试结果的可信度。

b47617 2008-1-31 11:39

好贴 这样的贴子论坛里多有一些,对我们将会是一个福音.
学了一点,socket 的默认的参数是用两个角括号"<",">"括起来的.如果不习惯可以改回大括号.:lol
页: [1] 2 3
查看完整版本: 使用LR的socket协议对C/S系统测试的实例