【问题标题】:How to load test a WinForms application?如何加载测试 WinForms 应用程序?
【发布时间】:2011-07-20 17:16:20
【问题描述】:

我正在尝试找出负载测试 Windows 窗体应用程序的最佳方法,该应用程序会访问服务器并获得响应。我需要为多个用户对其进行负载测试,我不确定 Visual Studio 2010 中的负载测试工具是否可以工作。

感谢任何建议。

【问题讨论】:

  • 听起来你真正需要负载测试的是服务器。 (粗略地)计算您的应用程序的单个实例实际上可以 访问服务器的速度,然后乘以预期的用户数以了解要测试的量级。详细地说,WinForms 应用程序本身 很少会承受重负载。它只是坐在某人计算机上的桌面应用程序。但是,如果多个副本访问同一台服务器,那么服务器上的负载可能会开始降低某些(或所有)用户的性能。这就是为什么我说负载测试服务器在这里似乎更重要。
  • 我同意@dlev 但如果我们的假设不正确,请澄清问题。
  • 我正在做一个网络请求,向推送通知服务器注册一个 guid 并获取响应,但我需要测试多个客户端是否在做同样的事情。
  • Guid是唯一的,并且注册到应用实例中,所以我需要模拟多个实例,这样每个实例都会生成一个Guid。
  • @Carl 我支持我之前的评论;它将处于负载之下的服务器。你说你想测试多个客户端同时发出请求。在这种情况下,您首先必须弄清楚 a) 在适当的时间跨度内可能的最大请求数是多少,以及 b) 在给定用户无法接受该时间之前,请求可以多快(或慢) .

标签: c# winforms


【解决方案1】:

这里有一些你可以尝试的..

  • 在测试应用程序中,编写一个方法 A,封装调用服务器的代码并接收响应。
  • 在同一个应用程序中,编写一个创建多个线程的方法 B。每个线程都会执行方法 A。
  • 确保计算完成每个线程的工作所需的时间。
  • 增加线程数以模拟更多负载。

将调用服务器的代码移至方法 A 而无需应用程序的其余部分,这样可以更轻松地重复测试并减轻执行测试的客户端计算机上的负载。

这是一个类似想法的示例代码,模拟访问数据库C# Stress Test - Simulate multiple access to a given shared resource的负载测试

【讨论】:

    【解决方案2】:

    我没有任何经验,但如果你有 VS2010 终极版,请尝试 Microsoft.VisualStudio.QualityTools.LoadTestFramework
    http://msdn.microsoft.com/en-us/library/ms243153.aspx

    如果你需要一些额外的指导,这里是一个正在使用的框架示例:http://blogs.msdn.com/b/edglas/archive/2006/02/06/525614.aspx

    【讨论】:

    • 听起来很有希望...我会去看看。
    【解决方案3】:

    嗯,我的第一直觉是创建一堆虚拟机并同时运行一大堆程序。可能会跳动一下ip(我不知道这需要多大的规模)。

    这可能有点粗糙,但如果您一次只添加几个连接,它会起作用。显然,如果您需要同时打开数千个,这将不起作用。但我希望这会有所帮助。

    -Kenetik

    【讨论】:

    • 这种方法不能很好地扩展。负载测试需要非常容易地扩展。
    • 我明白了,我提到它只是小规模测试的,我不知道需要测试多少,对不起,糟糕的帖子=(我是全新的这个网站,充其量只是一个普通的程序员。我会在未来更好地考虑我的答案
    • 这很好,我们都是新来的。只是答案不符合“负载测试”的基本需求,这意味着大规模。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多