负载测试一个胖客户端Windows窗体应用程序

本文关键字:客户端 Windows 窗体 应用程序 一个 测试 负载 | 更新日期: 2023-09-27 18:07:58

我们已经有了一个使用ServiceStack连接到应用服务器的厚客户端Windows Forms应用程序(当然,它也是使用ServiceStack实现的)。我想为这个服务器配置一些负载测试,但我不确定如何进行。

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

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

负载测试一个胖客户端Windows窗体应用程序

你可以检查HTTP基准应用程序,虽然它是用ServiceStack构建的,但它不是为ServiceStack,但可以处理手工制作的url。

还有一个可移植版本,可以在本地运行:https://github.com/ServiceStack/ServiceStack.Gap下载

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

  • 一个ASP中不同RDBMS的性能。. NET Web应用程序
  • 不同ServiceStack主机性能

它包含一个README.txt,其中包含如何使用ab.exe的说明。有一些*.bat脚本显示如何在httpbenchmark项目主页上运行多个.bat script基准测试,例如run-selfhost-benchmark .bat

使用像ab.exe这样的实用程序是很好的,因为它简单且高度可配置,并且作为命令行实用程序,如果您希望自动化并将其集成到CI服务器中,可以很容易地自动化。

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

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

这个框架还很好地集成了TFS指标,报告并显示在构建仪表板上。下面是一个快速入门教程:创建并运行负载测试

很多文档都显示了web测试,但你也可以很容易地将其用于桌面应用程序。

此外,如果您正在通过UI进行测试,请查看Microsoft UI自动化框架,它允许您访问应用程序上的UI控件。