【发布时间】:2013-03-06 12:45:20
【问题描述】:
我已经使用Alchemy 网络套接字实现了一个网络套接字服务器,现在我正在尝试对其进行压力测试。我在 C# 中编写了以下方法来创建大量客户端以连接到服务器并发送一些数据:
private void TestWebSocket()
{
int clients = 10;
long messages = 10000;
long messagesSent = 0;
String host = "127.0.0.1";
String port = "11005";
WSclient[] clientArr = new WSclient[clients];
for (int i = 0; i < clientArr.Length; i++)
{
clientArr[i] = new WSclient(host, port);
}
Random random = new Random();
var sw = Stopwatch.StartNew();
for (int i = 0; i < messages; i++)
{
clientArr[i % clients].Send("Message " + i);
messagesSent++;
}
sw.Stop();
Console.WriteLine("Clients " + clients);
Console.WriteLine("Messages to Send" + messages);
Console.WriteLine("Messages Sent " + messagesSent);
Console.WriteLine("Time " + sw.Elapsed.TotalSeconds);
Console.WriteLine("Messages/s: " + messages / sw.Elapsed.TotalSeconds);
Console.ReadLine();
for (int i = 0; i < clientArr.Length; i++)
{
clientArr[i].Disconnect();
}
Console.ReadLine();
}
但是,服务器接收到的消息较少(即使是很小的数字,例如 100)。或者有时会收到多条消息作为一条消息,例如:
Message1 = abc Message2 = def
接收为 = abcdef
我正在尝试或多或少地复制 here 显示的示例。目前,服务器和客户端都在本地运行。关于问题是什么或如何改进测试方法的任何想法?
【问题讨论】:
标签: c# tcp websocket load-testing