我是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(一个昂贵的过程本质上通常是<1秒),然后将结果存储在List
我被告知我需要使用回调和锁定机制,但我被卡住了。有人可以帮我吗?我正在使用参数化线程,但我认为我的错误。
我需要一点点编码帮助。如果你能用你的建议修改下面的例子,我将不胜感激......
由于 桑德拉
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;
}
}
答案 0 :(得分:1)
如果您拥有VS 2010 Ultimate或更新版本,您可以使用一系列不同的参数创建负载测试,即使在运行时它为您提供的报告也非常有用。以下链接可以帮助您:http://visualstudiomagazine.com/articles/2010/07/08/load-testing-with-visual-studio-2010.aspx