我有一个Visual Studio 2010负载测试,其中包含一些Web性能测试。运行网络性能测试需要您登录到被测网站。因此,负载测试包含一个初始化步骤 - 一个小型web性能测试,它会执行登录,并使用插件来缓存如此获得的cookie。 “真正的”网络性能测试 - 实际上做的工作也是每个那些有插件,读取缓存的cookie并把它添加到测试,让每个测试运行正常:需要登录的Web性能测试:如何使它在隔离和负载测试中工作?
public override void PreWebTest(object sender, PreWebTestEventArgs e)
{
if (CookieCache.Cookies != null) // CookieCache is a static class of mine
e.WebTest.Context.CookieContainer.Add(CookieCache.Cookies);
问题虽然这一切运行绝对正常,当我运行负载测试,这意味着我不能孤立运行任何网络性能测试,因为如果负载测试初始化没有运行,那么就没有cookie,所以网络性能测试将不会登录,并会失败。
有没有针对这种情况推荐的解决方案?换句话说,如果一个Web性能测试需要登录,是否有任何方法可以让它独立运行并且它是负载测试的一部分?
最显而易见的方法来运行隔离每个Web性能测试将是有它首先调用登录测试,但我不能这样做,因为那将是不正确的行为的负载测试(其中登录应该发生每个用户只有一次,就在负载测试开始时)。
感谢您的帮助 - 非常感谢。不幸的是,你的建议基本上是我们已经在做的。正如你所说的那样,添加一个init测试意味着web性能测试可以正常工作*当它在负载测试中时*但不能解决让web性能测试始终工作的问题,而不管它是否在负载测试中。这是因为如果您在负载测试之外运行Web性能测试,那么Init测试是否特定负载测试,因此无法运行。 – PhantomDrummer 2012-04-24 08:48:35