您的位置:首页 > 其它

如何使用LoadRunner进行winSocket的测试

2009-09-28 10:28 281 查看


一、 测试目标

服务器接收数据的能达到10000人/s并发能力。二、 测试工具和测试方法

1. 测试工具

LoadRunner 8

2. 测试方法

模拟用户操作,用LR VuGen编写WinSocke发送指定格式的数据的脚本,并在发送语句中插入事务点。在LR Controler 中使用上述脚本,建立基于以每秒发送事务数为目标的场景,当客户机达到指定目标值时,从服务器端程序中输出接收到的数据量,并对比Oracle中写入的数据记录,用以验证服务器端接收数量在各个目标下是否有丢包情况。从低目标(3000/s)开始测试,无丢包情况则每次增加1000/s~2000/s,逐步加大压力上升到高目标(10000/s)。

三、 测试步骤

1. 编写VuGen测试脚本

1) 初始化用户:创建WinSocket,连接服务器端
vuser_init()
{
lrs_create_socket("socket0", "UDP", "LocalHost=0", "RemoteHost=192.168.10.153:8090", LrsLastArg);
return 0;
}

2) 发送数据buf1,插入事件点可对其进行监控
补充:通过for可以实现用相对少的并发用户增加每秒发送的事务数的功能
Action()
{
int i;

lr_start_transaction("Befor for");
//for( i=0; i<50; i++ )
{
lr_start_transaction("Socket_Send");

lrs_send("socket0", "buf1", LrsLastArg);
lr_end_transaction("Socket_Send", LR_AUTO);
}
lr_end_transaction("Befor for", LR_AUTO);
return 0;
}

3) 退出:关闭WinSocket,释放资源
vuser_end()
{
lrs_close_socket("socket0");
return 0;
}

4) 定义WinSocket发送的数据内容buf1
;WSRData 2 1

send buf1 93
"1, 116.2551305565, 39.9026138892, 0.0000000000, 271.5700000000, 116.261177"
"0243, 39.9038446707"

-1

#ifndef _GLOBALS_H
#define _GLOBALS_H

//--------------------------------------------------------------------
// Include Files
#include "lrun.h"
#include "lrs.h"

//--------------------------------------------------------------------
// Global Variables

#endif // _GLOBALS_H

5) 编译脚本 ,无错误后保存脚本文件。

2. 用Controller创建测试场景

1) 新建场景:选择基于目标的场景,加载用户脚本

2) 编辑场景目标:目标类型选择Transactions per Second(每秒事务数),选择事物名称,并填写希望达到的目标值及虚拟用户数

加压类型选择自动加压。

3) 目标确定后:在页面上方会描述场景的总体情况和目标预览图

4) 设置保存结果路径:从菜单Results->Results Setting中设置保存结果路径,可选中第一个复选框,保证每次执行能自动创建,而不是覆盖上次的执行结果。

3. 执行场景,监控指标

1) 完成上述设置后,即可执行测试场景,开始测试 。
2) 在场景运行过程中,Run页面中可监控各个指定的指标。

4. 结果分析

1) 场景运行完后,可通过Controller菜单Results->Analyze Results,直接进入结果分析工具,对当前场景的执行结果进行分析。
2) 也可以直接打开Analyst工具,从File->Cross with Result中添加执行结果进行分析。

3) 打开后,可通过点击 来添加当前运行场景的各个图表。

4) 在Analyst中加载的图表,可通过菜单Reports导出成HTML或Word等格式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: