Visual Studio负载测试虚拟用户模拟

问题描述:

我目前正在编写一个负载测试应用程序,它利用Visual Studio 2010的负载测试。负载测试将模拟同一台机器上的20个用户,并且我需要一些数据在所有模拟用户之间在内存*享。Visual Studio负载测试虚拟用户模拟

我很惊讶我找不到文档回答以下问题:

从什么其他的方式隔开每个虚拟用户的运行方面?每个虚拟用户是否在自己的过程中运行测试?也许在它自己的应用程序域?或者只是在自己的线程?我需要知道,因为如果每个用户都在自己的进程中运行测试,那么所有内存中的高速缓存都不会共享,而是为每个用户创建,而不是为所有用户创建一次,这对我不利。

您可以使用Process Explorer(http://technet.microsoft.com/en-us/sysinternals/bb896653它是任务管理器的高级版本)来获取答案。

运行Visual Studio Load测试并打开Process Explorer。检查是否正在创建新进程。然后找到Visual Studio进程并双击。然后选择.NET性能选项卡,它应该显示进程中所有AppDomain的列表。顺便说一下,今天我们发布了一个名为StresStimulus的负载测试的提琴手扩展 - http://stresstimulus.stimulustechnology.com。我们将所有虚拟用户保留在同一个进程中的不同线程上。

这是迄今为止我发现的最接近答案。

http://blogs.msdn.com/b/billbar/archive/2007/06/13/coded-web-tests-and-web-test-plug-ins-should-not-block-the-thread.aspx

答案是,有每台机器做负载测试单个进程,多线程的使用,但虚拟用户“优化”的工作每线程多。

关于你想做什么,用静态构造函数创建静态类将获得所有虚拟用户之间的共享内存块。需要注意的是,这是一个多线程环境,应该对代码采取适当的谨慎措施。

+1

这可能非常明显,但请记住,任何依靠静态类/变量在虚拟用户之间共享数据的解决方案都不适用于多代理设置。 – agentnega 2011-10-07 19:18:14