Visual studio 2012 当我想在VisualStudio负载测试中使用时,如何启动新用户

Visual studio 2012 当我想在VisualStudio负载测试中使用时,如何启动新用户,visual-studio-2012,performance-testing,web-testing,Visual Studio 2012,Performance Testing,Web Testing,如何在Visual Studio(2012 ultimate)负载测试中选择结束一个虚拟用户并启动另一个新用户 对于我的系统,我需要在循环中执行一些活动。迭代次数太多,时间跨度太长,无法在一个Web性能测试中全部运行。因此,我必须对同一个虚拟用户进行登录测试和一系列其他测试。在一些未知数量的其他测试之后,系统会在响应中发送一条“youhavefinished”消息。然后我需要注销,让那个虚拟用户完成,另一个虚拟用户启动 网站本身决定了活动的数量,而数量无法提前预测。这是测试的一个重要方面。网站会

如何在Visual Studio(2012 ultimate)负载测试中选择结束一个虚拟用户并启动另一个新用户

对于我的系统,我需要在循环中执行一些活动。迭代次数太多,时间跨度太长,无法在一个Web性能测试中全部运行。因此,我必须对同一个虚拟用户进行登录测试和一系列其他测试。在一些未知数量的其他测试之后,系统会在响应中发送一条“youhavefinished”消息。然后我需要注销,让那个虚拟用户完成,另一个虚拟用户启动

网站本身决定了活动的数量,而数量无法提前预测。这是测试的一个重要方面。网站会根据各种因素(包括用户以前的回答和其他用户的回答)动态选择用户问题、下一个问题和要提问的问题数量。在某些时候,网站会显示一条“感谢您回答这些问题”的消息,然后用户应该注销。在web测试中,区分感谢信息和问题很容易,因此可以分别注销或回答

这似乎类似于新用户控制百分比所使用的函数。但我需要根据web响应中的数据控制新用户何时启动

测试完成后,我希望负载测试结果中的详细信息图表中的每一条水平线显示一次登录,一个可变数量的活动,最后一次注销。因此,每个登录都应该启动一个新的虚拟用户


通过Web搜索负载测试插件,可以快速找到向上或向下改变虚拟用户数量的方法。但是没有控制当前虚拟用户的结果。

据我所知,无法在负载测试设置之外控制虚拟用户

但是,没有任何东西可以阻止正在运行的虚拟用户基于响应执行注销,然后使用一组新的凭据登录


对于负载测试,这是一个单用户连续运行,但对于被测系统,这是一个用户完成和一个新用户开始。

我不时遇到类似的障碍,还没有找到一个我真正喜欢的解决方案,即“全部结束”解决方案。然而,有一些方法可以接近你想要的

我仍然在使用VisualStudio2010,但假设您在更高版本中也可以这样做。我也是从使用声明性web测试而不是编码的角度讲的。我确信在编码的web测试中也可以使用相同的方法,但我不会定期直接与他们合作

你想用现有插件做的大部分事情。棘手的部分可能是(而且很可能是)在用户注销后如何处理会话数据。 如果我正确理解了您的问题,那么高级步骤将是:

  • 为虚拟用户(测试的登录部分)运行初始化测试
  • 根据一个负载配置文件执行一系列测试
  • 根据特定响应注销用户
  • 在步骤3之后登录“新”用户
  • 我相信您已经完成了步骤1和步骤2。因此,我将重点介绍步骤3和步骤4的想法

    第3步。

    此步骤可以在web测试中作为两个步骤处理。这假设您知道哪些响应将生成“youhavefinished”消息

  • 提取规则,用于从响应中提取信息
  • 根据提取规则提取的信息执行的条件步骤
  • 在条件语句中,您可以执行注销。考虑到你想要做这件事的本质,我会让注销成为你参考的一个单独的测试。。。但是您也可以将注销请求插入测试的条件部分

    第4步。

    最简单的方法是在注销之后,在条件循环中再次调用login test。根据您需要在测试中保留的会话信息类型。。。这是可能变得棘手的部分。从web测试中重新登录可能会导致初始化测试保留的某些数据变得无效。因此,您需要通过更新现有的上下文参数来处理这个问题。如果您没有从初始化测试中跨测试携带的任何上下文参数…则您已设置

    此外,如果您不希望“新”用户在现有用户登录完成后立即登录。。。那么就需要一些额外的创造力

    除非您需要更改虚拟用户的最大数量,否则您永远不需要登录新的虚拟用户。相反,您可以使用现有的虚拟用户再次执行登录测试。如果您需要改变可用的虚拟用户总数,那么就需要使用负载测试插件进行创新。有很多方法可以做到这一点,Sean Lumley的一篇博客文章中可以找到一些很好的例子:


    希望这些信息能有所帮助。

    谢谢,我已经澄清了这个问题。用户的数量不是问题,不是检测何时循环或何时注销。我想控制虚拟用户何时完成(如详细信息图表中所述)。我从来没有亲自做过,但这可能仍然是可行的。有两种可能:创建您自己的自定义负载配置文件,或者尝试创建一个负载测试插件,该插件关闭UserContext.UserId或UserContext.IsNewUser值。我相信这两个值将为您提供一种控制测试执行行为的方法,具体到虚拟用户。不过我还是很好奇,为什么实际的虚拟用户改变很重要?在我看来,只要虚拟的