我正在编写一个负载测试应用程序,利用Visual Studio 2010进行负载测试。负载测试将在同一台机器上模拟20个用户,我需要在所有内存之间共享一些数据模拟用户。
我很惊讶我找不到回答以下问题的文件:
什么将每个虚拟用户的运行上下文与另一个分开?每个虚拟用户是否在自己的进程中运行测试?也许在自己的应用领域?或者只是在自己的线程?我需要知道,因为如果每个用户都在自己的进程中运行测试,那么所有的内存缓存都不会被共享,而是为每个用户创建,而不是为所有用户创建一次,这对我不利。
答案 0 :(得分:1)
您可以使用Process Explorer(http://technet.microsoft.com/en-us/sysinternals/bb896653它是任务管理器的高级版本)来获得答案。
运行Visual Studio Load测试并打开Process Explorer。检查是否正在创建新进程。然后找到Visual Studio进程并双击。然后选择“.NET性能”选项卡,它应显示该过程中所有AppDomain的列表。
顺便说一句,今天我们发布了一个名为StresStimulus的{Fiddler Extension for load测试 - http://stresstimulus.stimulustechnology.com。我们将所有虚拟用户保留在同一进程中的不同线程上。
答案 1 :(得分:1)
这是我到目前为止找到的最接近的答案。
答案是每台机器在进行负载测试时只有一个进程,使用了多个线程,但虚拟用户被“优化”以便为每个线程工作很多。
关于您想要做什么,使用静态构造函数创建静态类将在所有虚拟用户之间获得共享内存块。需要注意的是,这是一个多线程环境,应该对您的代码采取适当的谨慎措施。