如何为.Net应用程序编写性能测试?

问题描述 投票:0回答:4

如何编写.Net应用程序的性能测试? nUnit 或任何其他测试框架是否为此提供了框架?

编辑:我必须测量 WCF 服务的性能。

.net wcf performance nunit
4个回答
12
投票

如果您对方法和算法的相对性能感兴趣,您可以在 NUnit 测试中使用 System.Diagnostic.StopWatch 类来编写有关某些方法需要多长时间的断言。

在下面的简单示例中,primes 类是使用 [SetUp] 方法(未显示)实例化的,因为我感兴趣的是generatePrimes 方法花费了多长时间,而不是我的类的实例化,并且我正在编写一个断言此方法应该花费不到 5 秒的时间。这不是一个非常具有挑战性的断言,但希望可以作为如何做到这一点的示例。

    [Test]
    public void checkGeneratePrimesUpToTenMillion()
    {
        System.Diagnostics.Stopwatch timer = new System.Diagnostics.Stopwatch();
        timer.Start();
        long[] primeArray = primes.generatePrimes(10000000);
        timer.Stop();
        Assert.AreEqual(664579, primeArray.Length, "Should be 664,579 primes below ten million");
        int elapsedSeconds = timer.Elapsed.Seconds;
        Console.Write("Time in seconds to generate primes up to ten million: " + elapsedSeconds);
        bool ExecutionTimeLessThanFiveSeconds = (elapsedSeconds < 5);
        Assert.IsTrue(ExecutionTimeLessThanFiveSeconds, "Should take less than five seconds");
    }

2
投票

我发现了 NTime,它对于编写性能测试来说看起来很酷。

http://www.codeproject.com/kb/dotnet/NTime.aspx


0
投票

VS Team System内置了性能测试模块。如果你有许可证的话值得探索。


0
投票

NUnit 为您提供了一个单元测试框架:即在离散的“单元”中测试您的代码,以便您可以了解新的更改何时破坏现有代码,或者您已经提供了一定级别的代码覆盖率。但它本身不提供性能测试。

为此,您将需要另一种类型的工具。如果您有网络应用程序,您可能想看看 The Grinder 或其他可以在这里找到的应用程序:

https://web.archive.org/web/20140101114848/http://www.opensourcetesting.org/performance.php

© www.soinside.com 2019 - 2024. All rights reserved.