【问题标题】:Integration multi-threading test to stress test a server集成多线程测试以对服务器进行压力测试
【发布时间】:2013-02-16 04:33:05
【问题描述】:

我是 C# 线程世界的新手,想对特定的服务器方法进行压力测试。 我想以某种方式捕获运行该过程并以某种方式返回它所花费的时间。或者,如果服务器返回错误消息,因为我增加了并发线程...... 也就是说,随着用户数量的增加,某种衰减统计数据。我正在寻找一些简单而有效的东西...
我将从这样的集成测试中调用此过程:

[Test]
public void StressTest_SomeExpensiveMethod_Approach()
{

    int NO_THREADS = 10;
    Thread thread = null;
    MyClass myC = new MyClass();

    for (int i = 0; i < NO_THREADS; i++)
    {
        thread = new Thread(myC.DoExpensiveWork);
        thread.Name = i.ToString();
        thread.Priority = ThreadPriority.Highest;
        thread.Start(); 
    }
}

我在下面有课程MyClass。此类包含方法DoExpensiveWork()。我正在尝试为指定的固定数量的线程调用DoExpensiveWork()(比如 10 或 20 并从那里开始增加) SomeExpensiveMethod(一个昂贵的过程,虽然通常

有人告诉我我需要使用回调和锁定机制,但我被卡住了。任何人都可以帮助我吗?我正在使用参数化线程,但我认为我所拥有的是错误的。

我需要一点编码方面的帮助。如果您可以根据您的建议修改下面的示例,我将不胜感激...

谢谢 桑德拉

public class MyClass
{   
        public void DoExpensiveWork()
        {

            ServerClass cs = new ServerClass();
            string testData = "sometestdata";

            //*** CALL TO METHOD-UNDER-TEST ***//
            DateTime startTime = DateTime.Now;
            IList<string> response = cs.SomeExpensiveMethod(testData);
            DateTime endTime = DateTime.Now;        
        }   
}

【问题讨论】:

    标签: multithreading testing integration stress-testing


    【解决方案1】:

    如果您有 VS 2010 Ultimate 或更新版本,您可以使用一堆不同的参数创建负载测试,并且即使在运行时它为您提供的报告也非常有用。下面的链接可能会对您有所帮助:http://visualstudiomagazine.com/articles/2010/07/08/load-testing-with-visual-studio-2010.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 2012-06-16
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多