【发布时间】:2011-09-28 09:11:07
【问题描述】:
我有一个用 C#/.NET 3.5 编写的客户端/服务器应用程序,我想对其进行一些性能测试。我一直在寻找一个通用框架来帮助我,但运气不佳。我想要一些可以管理一组客户端并根据某些设置为他们执行随机操作的东西。然后我还想记录一些与此相关的数据,以帮助我为我的系统计算出一些粗略的阈值,例如我可以支持 n 个用户每秒执行 x 个动作。
我会编写特定于我的应用程序的代码来执行以下任务:
- 登录/注销客户端。
- 向服务器发送消息以执行各种操作。
- 记录来自服务器的确认和其他消息。
- 测量特定于系统的统计信息。
我希望框架随后能够采用一组参数来描述测试场景,例如:
- 在给定时间登录的客户数量。
- 每秒为每个客户端执行给定数量的操作。
然后它将运行场景、管理和跟踪所有用户和操作并整理所有数据。 (这是我试图避免自己编码的无聊位......)理想情况下,它会内置一些通用测量值,例如发送消息和接收响应之间的时间,但如果没有,我可以自己编写代码。
我不想对我的代码进行任何分析;我总是可以在稍后运行这些测试时附加一个分析器。相反,我想对我的系统做出一些粗略的结论,即在它崩溃之前我可以扔给多少用户。 (如果有比“性能测试”更好的术语,请告诉我......压力测试可能吗?)
我意识到我在这里没有提供太多关于系统的细节。我觉得这是一个相当普遍的情况——我确信那里有很多客户端/服务器系统需要人们进行类似的测试。我发现很多基于 Web 的框架都可以做类似的事情,但它们似乎已经非常根深蒂固,并且不能轻易地适用于非基于 HTTP 的系统。
任何人都知道任何可能有帮助的事情吗?我的搜索还没有找到任何东西。我应该指出,在可预见的未来,我坚持使用 Visual Studio 2008 Professional,所以如果 2010 可以做到这一点,那对我来说是超出范围的。我想它不一定是 .NET 框架,只要我仍然可以相当轻松地插入我的 .NET 代码。
编辑要明确我的应用程序不是网站,它是通过自定义协议连接到 .NET 服务的 Windows 窗体客户端应用程序。我可以编写代码来执行相关的客户端操作,我只需要一个框架来放入它。
【问题讨论】:
-
你在 .Net Profilers 上看过这个问题吗? stackoverflow.com/questions/3927/…
-
我不想做分析,如果我有问题,我可以稍后再做。我更关心衡量我的系统可以容纳的用户数量。
标签: c# .net performance testing