如何在我选择Visual Studio(2012最终版)负载测试时结束一个虚拟用户并启动另一个新用户。
对于我的系统,我需要在循环中做一些活动。迭代次数过多,时间跨度太长,无法在一次Web性能测试中运行。因此,我必须为同一个虚拟用户进行登录测试和一系列其他测试。经过一些未知数量的其他测试,系统发送了一个"你已经完成了"回复中的消息。然后我需要注销并让虚拟用户完成并启动另一个虚拟用户。
网站本身决定活动的数量,而且数量无法提前预测。这是测试的一个重要方面。网站询问用户问题,询问下一个问题,并根据包括用户在内的各种因素动态选择要问的问题数量。以前的答案和其他用户的回答。在某些时候,网站将显示" 感谢您回答这些问题"消息然后用户应该注销。区分谢谢消息和一个问题在Web测试中很容易,因此分别进行注销或回答。
这看起来类似于新用户控制百分比所使用的功能。但我需要根据网络响应中找到的数据来控制新用户的启动时间。
测试完成后,我希望负载测试结果中详细信息图表中的每条水平线显示一次登录,可变数量的活动,最后一次注销。因此,每次登录都应该启动一个新的虚拟用户。
Web搜索负载测试插件可以快速找到改变虚拟用户数量的方法,无论是向上还是向下。但是没有控制当前虚拟用户的结果。
答案 0 :(得分:0)
据我所知,无法在负载测试设置之外控制虚拟用户。
但是,没有什么能阻止正在运行的虚拟用户根据响应执行注销,然后使用一组新凭据登录。
对于负载测试,这是一个连续运行的用户,但对于正在测试的系统,这是用户完成和新用户启动。
答案 1 :(得分:0)
我不时遇到类似的障碍,还没有找到一个我真正喜欢的解决方案作为“最终解决方案”。但是,有一些方法可以接近你想要的东西。
我仍在使用Visual Studio 2010,但是假设您也可以在以后的版本中执行此操作。我也是从使用声明性Web测试而不是编码的角度讲的。我确信在编码网络测试中也可以这样做,但我不会定期直接使用它们。
您希望使用现有插件完成大部分工作。棘手的部分可以(并且可能是)在用户注销后处理会话数据的方式。 如果我理解你的问题,那么高级步骤将是:
我确信您已经处理了第1步和第2步。因此,我将重点关注步骤3和4的想法。
第3步。
此步骤可在Web测试中作为两个步骤处理。这假设您知道哪些响应将生成“您已完成”消息。
在您的条件声明中,您可以执行注销。鉴于您希望如何执行此操作的性质,我将使注销成为您引用的单独测试...但您也可以将注销请求插入测试的条件部分。
第4步。
最简单的方法是在条件循环中,在注销后立即再次调用登录测试。根据您需要在测试中持续存在的会话信息类型...这是可能变得棘手的部分。从Web测试中重新登录可能会导致初始化测试持久化的某些数据变为无效。因此,您需要通过更新现有的上下文参数来处理此问题。如果您没有从初始化测试中跨测试执行的任何上下文参数...那么您已设置。
此外,如果您不希望“新”用户在现有用户完成后立即登录...则需要一些额外的创造力。
除非您需要更改虚拟用户的最大数量,否则您永远不需要登录新的虚拟用户。相反,您可以使用该现有虚拟用户再次执行登录测试。如果您需要更改可用的虚拟用户总数,则需要使用负载测试插件获得创意。有办法做到这一点,在Sean Lumley的博客文章中可以找到一些很好的例子: http://blogs.msdn.com/b/slumley/archive/2009/04/10/load-test-plug-ins.aspx
我希望这些信息有所帮助。