我有一个 Visual Studio 2010 负载测试,其中包含许多 Web 性能测试。运行 Web 性能测试需要您登录到被测网站。因此,负载测试包含一个初始化步骤 - 一个小型 Web 性能测试,它进行登录,并使用插件缓存如此获得的 cookie。'真正的' web 性能测试 - 真正完成工作的测试也都有一个插件,可以读取缓存的 cookie 并将其添加到测试中,以便每个测试都能正常运行:
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);
问题是,虽然这一切在我运行负载测试时工作得很好,但这意味着我不能单独运行任何 Web 性能测试,因为如果负载测试初始化程序没有运行,那么就没有 cookie,所以 Web性能测试将不会登录并且会失败。
这种情况有什么推荐的解决方案吗?换句话说,如果 Web 性能测试需要登录,有没有办法让它在单独运行时以及作为负载测试的一部分时运行?
单独运行每个 Web 性能测试的明显方法是让它首先调用登录测试,但我不能这样做,因为这对于负载测试来说是不正确的行为(每个用户只应该登录一次) ,就在负载测试开始时)。