• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

性能测试负载目标探讨

发布: 2011-5-30 09:18 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 81次 | 进入软件测试论坛讨论

领测软件测试网

  通过获取生产日志、参考相似系统等方式能够得到具体交易(事务)数量的被测应用程序,以TPS为负载目标是直接也最准确的。但要注意,若以TPS为目标,则前端配置的并发数量就不再代表并发人数,而是并发提交事务的数量。TPS和TRT的计算关系将在下面详述。

  TRT

  TRT指TPS稳定时(不一定是最大时)的平均事务响应时间,不关注个别事务,它和TPS关系紧密,随TPS的变化而变化。当负载增加时TRT会逐渐增大,直至事务阻塞,交易超时。

  TPS×TRT =并发提交事务的数量。如果以TPS=20为目标,且此时TRT=2秒,则并发提交事务的数量=20×2=40笔。如果1个用户单位时间内提交1笔事务,则可等于有40个并发用户数量。

  设定好目标TPS后要同时兼顾TRT的表现,若TRT明显超出业务要求,即使达到负载目标也是无效的。TRT无固定的好坏标准,一般来说对OLTP的联机应用,从前端提交到返回不应高于3秒,后台应用程序和数据库的处理应在1秒左右。对OLAP的在线分析系统或一般网站可遵循3/5/8原则,或更长。

  并发用户数量

  通常理解并发用户数量就是LoadRunner里设置的VUser数量,通过梯度增加VUser,对比TPS变化即可找到被测应用的最大并发用户。但我却认为并发用户数量不等于LoadRunner中设置的VUser数量。受交易响应时间、thinktime、pacing和集合点等因素影响,VUser数量不能直接体现被测应用负载能力。假设同样10个VUser并发一次,如果A程序的响应时间是1秒,则A程序的TPS=10/1=10。而B程序的响应时间是5秒,则B程序的TPS=10/5=2。同样在混合场景中用VUser比例体现不同应用的负载比例也是错误的,混合场景下由于各交易相互影响,单交易负载时响应快的很可能现在出现阻塞,前端VUser的比例根本无法准确控制后端应用的压力。

  因此我更愿意将“并发用户数量”和“并发提交事务数量”挂钩,体现被测应用实际负载:单位时间内n个用户并发向被测应用提交n个事务请求(n是相同的)。VUser的数量和发起设置只是实现并发用户数量的一种手段。

  在线用户数量

  在线用户数量与并发用户数量、TPS、TRT间没有固定的换算公式,我不提倡10%这样的粗糙比例,对联机类应用在线用户就是每天签到的柜员数量,对经管类应用就是月末、季末时所有登录系统的用户数量。在线用户数量可以从需求人员或生产管理员处获得大概数值,但不能通过性能测试倒推出在线数量。

  四、 负载目标选择

  1. 有明确交易量的应用

  通过上面对各种典型负载指标的分析可以看出,以TPS衡量的事务处理能力是最准确的负载目标。通过生产日志或相似系统的交易量可以算出TPS均值、峰值。根据2/8原则和业务扩展可估算更高的峰值。银行的联机类应用属于典型的有明确交易量的应用系统。

  LoadRunner中可以通过设置Run-Time Settings的Pacing为At fixed intervals, every 1 sec,来控制每次迭代执行时间为1秒。如果迭代脚本里只定义一个Transaction,且TRT小于1秒,则VUser数量=并发用户数量=TPS,可以通过调节VUser数量方便控制负载目标。注意,如果迭代中包含多个Transaction,或TRT随着TPS目标的增加而变大,则需以TPS目标为基础,实时调整VUser数量和这里every N sec里的间隔时间。

  2. 无明确交易量的应用

  无明确交易量的被测应用建议以确定最大事务处理能力为目标。设置Pacing为As soon as the previous iteration ends,删除thinktime,部署发压工具和被测应用在同一网段,无网络瓶颈,让VUser能对被测应用产生最大负载。弱化VUser数量听上去的意义,递增直到达到被测应用的最大事务处理能力或其他性能指标阀值(如成功率或TRT)。新业务和经管类Web应用属于无明确交易量的应用系统。

  3. VUser的意义

  尽管建议在确定负载目标时弱化VUser的意义,但测试中还要注意一种情况,如果被测应用有具体的操作用户数量,如只有签到或登录的用户才能提交交易,则VUser的数量不能高于实际注册用户数量。就按照最大用户数量加压,以需求要求的TRT为目标调优被测应用,尽量提高TPS。

  上面对性能测试中负载目标的探讨和建议只是我个人的观点,希望大家能在制定策略时多问一些为什么,多论证下目标是否合理,而不是人云亦云。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网