对胖客户端Windows窗体应用程序进行负载测试

时间:2014-06-11 00:11:51

标签: c# winforms performance servicestack load-testing

我们有一个胖客户端Windows窗体应用程序,它使用ServiceStack连接到应用程序服务器(当然,这也是使用ServiceStack实现的)。我想为这台服务器配置一些负载测试,但我不知道如何继续。

有一堆负载测试软件,但看起来所有它依赖于“嘿,请记录我的Web浏览会话然后再播放”方法。这不适用于我们的情况,因为我们不使用Web浏览器。更糟糕的是,我们的一些请求并不完全基于REST;相反,它们是包含多个相关字段的复杂对象(例如,一些高级搜索选项,需要加载的范围列表等)。这使得配置请求比单击“myserver / api / get_stuff / 1234”更困难。

那么,是否有专门为ServiceStack设计的现成负载测试框架?除此之外,是否有一些通用框架可以让我轻松地手动创建自定义请求?或者我应该咬紧牙关并自己滚动?

2 个答案:

答案 0 :(得分:1)

您可以查看HTTP Benchmarks应用程序,虽然它是使用ServiceStack构建的,但它不适用于ServiceStack,但可以处理手工制作的网址。

还有一个便携版本可以在本地运行: https://github.com/ServiceStack/ServiceStack.Gap#download

它包含一个ab.exe的Windows版本(Apache Benchmark Utility),可以进行实际的基准测试并将其结果输出到文本文件中,这些文件可以通过 Http基准进行可视化和导出。以下是现有基准测试的一些示例:

它包含README.txt,其中包含有关如何使用ab.exe的说明。有很多*.bat个脚本显示了如何在HttpBenchmarks项目主页的1 .bat script中运行多个基准,例如run-selfhost-benchmarks.bat

使用像ab.exe这样的实用程序很不错,因为它简单且高度可配置,并且因为它的命令行实用程序,如果您希望自动化并将其集成到一个实用程序中,它可以轻松实现自动化CI服务器。

答案 1 :(得分:0)

注意:这个答案是围绕一个通用的测试框架,而不是专门的ServiceStack。

Visual Studio的Test / Professional / Ultimate版本包括围绕MSTest构建的负载和性能测试框架。如果我没记错的话,该框架还支持NUnit和其他测试框架。

此框架还与TFS指标很好地集成,报告并显示在构建仪表板上。这是一个快速入门教程:Create and run a load test

许多文档都显示了网络测试,但您可以轻松地将其用于桌面应用。

此外,如果您正在通过UI进行测试,请查看Microsoft UI自动化框架,该框架允许您访问应用程序上的UI控件。您可以在UI Automation Overview了解更多信息。