VisualStudio进行Web性能测试-PartII

发表于:2021-2-09 09:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Ambily.raj    来源:博客园

  对于一个多用户的应用程序,性能是非常重要的。性能不仅是执行的速度,它包括负载和并发方面。VisualStudio是可以用于性能测试的工具之一。VisualStudioTest版或VisualStudio2010旗舰版为自动化测试提供了支持。
  介绍
  对于一个多用户的应用程序,性能是非常重要的。性能不仅是执行的速度,它包括负载和并发方面。性能测试是对以下问题的回答
  我们如何确保我们的新的应用程序将支持预期的用户负载?
  如何避免在实际负载条件下会出现的问题?
  如何确定响应时间?
  如何规划服务器的容量?
  VisualStudio是可以用于性能测试的工具之一。VisualStudioTest版或VisualStudio2010旗舰版为自动化测试提供了支持。
  负载测试(LoadTest)
  Loadtest用于执行程序的负载测试。它可以模拟多个虚拟用户并执行测试脚本,以模拟真实用户在不同的服务器,如应用服务器,数据库服务器和Web服务器的负载。Loadtest可以使用任何的测试脚本。
  术语说明
  ThinkTime
  ThinkTime是两个请求之间的时间。这可能是用户填写表单,浏览页面,或阅读一些文字等时花费的时间。ThinkTime用于模拟在真实用户的场景下,系统如何和一个真实用户的交互。
  ConstantLoad(恒定负载)
  ConstantLoad是指从测试开始到结束,有恒定数量的用户不间断地操作该网站。比如在1个小时的时间内,有25个用户正在使用该系统。所有25个用户不断地访问该系统。这种测试类型主要用于压力测试
  StepLoad(阶跃负载)
  在StepLoad中,用户将阶梯式地加入。就是说在不同时期有不同的用户操作系统,并且用户的数量也不是恒定不变的。在StepLoad模式下需要指定如下参数:
  *Startusercount:-测试开始时,有多少用户操作该系统
  *Stepduration:-每隔多少秒后下一批用户将加入该系统
  *Stepusercount:-一个阶梯时间段后,多少个用户将加入系统
  *Maximumusercount:-最大的用户数是多少。
  测试组合(TestMix)
  测试组合指定不同的场景在系统中如何被执行或使用。不同的测试组合的设定是通过对系统使用情况的研究来形成的。
  例如,如果我们在做某网络营销网站的负载测试,约60%的人会进行产品搜索,30%会买一些产品和10%会把产品保存为书签。根据这种使用情况的信息,就可以形成一个测试组合:60%的模拟用户将执行搜索脚本,30%将执行购买产品的脚本,其余的10%将执行把产品保存为书签的脚本。
  负载测试的创建
  在项目上点击鼠标右键,选择Add->NewTest->Loadtest模板。这将打开新的负载测试向导
  接下来,指定场景的名称,如"bookingtheticket","searchingabook"等。接下来指定ThinkTimeprofile。我们可以使用Web测试中记录的录制的的ThinkTime,也可以使用时间正态分布的ThinkTime。我们还可以使用第三个选项来避免使用ThinkTime。
  接下来,指定负载模式。指定我们是否要使用constantload还是stepload模式。在constantload模式中指定用户数。在stepload的情况下,指定startusercount,stepduration,stepusercount和maximumusercount。
  接下来,指定测试组合模式。提供的不同的选项有:
  [下面的定义来自VisualStudio]
  基于总测试数(Baseonthetotalnumberoftests)
  确定虚拟用户启动测试迭代时运行哪个Web性能或单元测试。在负载测试结束时,运行特定测试的次数与分配的测试分布相匹配。使测试组合基于IIS日志或生产数据中的事务百分比时,可使用此测试组合模型。
  基于虚拟用户数(Basedonthenumberofvirualusers)
  确定将运行特定Web性能或单元测试的虚拟用户的百分比。在负载测试中的任何时候,运行特定测试的用户数都与分配的分布情况相符。使测试组合基于运行特定测试的用户的百分比时,可使用此测试组合模型。
  基于用户节奏(Basedonuserpace)
  在负载测试过程中,每个用户每小时运行每个Web性能测试或单元测试指定的次数。如果希望虚拟用户在负载测试过程中以特定节奏运行测试,则可使用此测试组合模型。
  基于顺序测试顺序(Basedonsequentialtestorder)
  每个虚拟用户按照在方案中定义测试的顺序运行Web性能测试或单元测试。虚拟用户以此顺序持续循环进行测试,直到负载测试完成为止。
  (简单来说,第一种配置每个虚拟用户每次执行的脚本都是随机的,所有用户执行的脚本总数的比例是确定的;第二种配置每个用户都执行固定的一个脚本,所有用户执行的脚本的总数的比例是确定的;第三种指定每个脚本在一个小时内需要运行的次数,客户端只需要完成这些工作量;第四种每个用户都循环地顺序地执行每个脚本)
  接下来,指定测试组合。在测试组合中,我们将添加多个Web测试脚本到负载测试中。如果我们只有一个脚本,所有用户都将执行相同的任务。如果我们有2个或更多的脚本,我们可以指定有多少用户需要执行特定的任务。
  例如,我们有两个脚本,一个用于搜索一本书,另一个用于购买一本书。在我的负载测试中,我可以指定70%的用户做搜索,剩下的30%做另一个操作。
  测试组合是模拟真实的用户体验。有些功能被很多用户用到而另一些则没有那么频繁第被使用。取决于功能的使用情况,来测试系统,这将提供一个真正的性能结果。
  在下面的例子中,我们选择了两个Web测试脚本,并指定测试组合为65%的用户将执行Webtest1,35%将执行Webtest2。
  接下来,指定网络组合(NetworkMix)。在这里,我们可以模拟网络如局域网,广域网或互联网,并且对系统在不同网络中的性能进行比较。
  接下来,指定浏览器的组合(BrowserMix)。这对于确定系统是如何在不同的浏览器中执行是非常有用的。
  接下来,增加作为web服务器、应用程序服务器和数据服务器的计算机系统,用于收集性能计数。为每个系统添加所需的性能计数器。
  (确保你的帐号被添加到各个服务器的PerformanceMonitorUsers组中,这样控制器才有权限访问各个服务器)
  接下来,指定测试的持续时间或迭代次数。如果设置了一个预热期,负载测试会在预热期逐渐地自动增加负荷。

相关阅读:VisualStudio进行Web性能测试-PartI

   上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号