只是为了回答你的问题,我很确定这不能开箱即用 MSTest 和 NUnit (这种方法不会在这种情况下坚持)。
但是,恕我直言,不要去那里......根据我的经验,在一台机器上模拟约 1000 个用户会产生不好的结果,因为测试会遇到各种客户端限制 - 线程池问题、传出和传入流量问题等。我并不是说这是无法克服的,但它已经扭曲到足以考虑不同的方法。
在这种情况下,我实际上不建议使用负载测试工具(其中有很多),因为编写自己的小工具并跳过第三方的配置问题和学习曲线很简单。
我推荐的是自己编写一个工具,并在不同的机器上运行它。它不必由测试框架运行(我不能让自己称其为单元测试,因为它不是),控制台应用程序可以解决问题。这里有一些代码可以帮助您入门:
private ConcurrentBag<string> logs = new ConcurrentBag<string>();
public void GetLoad(int numberOfUsers, List<string> myParams)
{
var users = new string[numberOfUsers];
for (int i = 0; i < numberOfUsers; i++)
{
users[i] = string.Format("LoadTest{0}", i + 1);
}
var userThreads = new List<Thread>();
for (int i = 0; i < numberOfUsers; i++)
{
int index = i;
userThreads.Add(new Thread(()=> CallWebService(users[index], myParams[index])));
}
Parallel.ForEach(userThreads, thread=>thread.Start());
foreach (var userThread in userThreads)
{
userThread.Join();
}
var outputFilename = string.Format("LoadTest.{0}Users.txt", numberOfUsers);
File.AppendAllLines(outputFilename, logs);
}