当前位置: 首页 > news >正文

《精通软件性能测试与LoadRunner最佳实战》—第2章2.2节性能测试需求分析

本节书摘来自异步社区《精通软件性能测试与LoadRunner最佳实战》一书中的第2章2.2节性能测试需求分析,作者于涌 , 王磊 , 曹向志 , 高楼 , 于跃,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.2 性能测试需求分析
精通软件性能测试与LoadRunner最佳实战
性能测试的目的就是把客户的真正需求搞清楚,这是性能测试最关键的过程。有很多客户对性能测试是不了解的,可能您会因为对客户提出的“我们需要贵单位对所有的功能都进行性能测试”、“系统用户登录响应时间小于3秒”、“系统支持10万用户并发访问”等要求所困扰。不知道您是不是看出了上面几个要求存在的问题, 下面让我们逐一来分析一下这几句话。

1.“我们需要贵单位对所有的功能都进行性能测试”
每位用户都希望自己公司应用的系统有良好的性能,从客户的角度讲,肯定都是希望所有的系统应用都有好的系统性能表现,那么是不是所有的功能都要经过性能测试呢?答案当然是否定的,通常性能测试周期较长。首先,全部功能模块都进行性能测试需要有非常长的时间;其次,根据80-20原则,通常系统用户经常使用的功能模块大概占用系统整个功能模块数目的20%,像“参数设置”等类似的功能模块,通常仅需要在应用系统时管理员进行一次性设置,针对这类设置进行性能测试也是没有任何意义的。通常,性能测试是由客户提出需求内容,性能测试人员针对客户的需求进行系统和专业的分析后,提出相应的性能测试计划、解决方案、性能测试用例等与用户共同分析确定最终的性能测试计划、解决方案、性能测试用例等,性能测试的最终测试内容通常也是结合客户真实的应用场景,客户应用最多,使用最频繁的功能。所以说,“对所有的功能都进行性能测试”是不切实际也是不科学的做法,作为性能测试人员必须清楚。

2.“系统用户登录响应时间小于3秒钟”
从表面看这句话似乎没有什么问题,仔细看看是不是看出点什么门道呢?其实这句话更像一个功能测试的需求,因为其没有指明是在多少用户访问时,系统的相应时间小于3秒,作为性能测试人员必须清楚客户的真实需求,消除不明确的因素。

3.“系统支持10万用户并发访问”
从表面看这句话似乎也没有什么问题。在进行性能测试时,系统的可扩展性是需要我们考虑的一个重要内容,例如,一个门户网站,由于刚开始投入到市场上,访问用户量目前只有几百个用户,随着广告、推荐等措施推动了系统宣传力度,那么您在做系统性能测试时候,需要对未来两三年内系统应用用户有一个初步预期,以至于在两三年后系统仍然能够提供给用户以好的性能体验。但是,倘若用户应用该系统的时候,日常每天只有几十个用户,在未来的5~10年内,也不过几百个用户,这是不是需要进行10万级用户并发访问的性能测试呢?笔者的建议是把这种情况向客户表达清楚,在满足当前和未来用户应用系统性能要求的前提下进行测试,能够节省客户的投入,无疑客户会觉得您更加专业,也真正从客户的角度出发,相信一定会取得更好的效果。如果系统用户量很大,考虑到可扩展性需求,确实需要进行10万级用户这种情况的性能测试。我们也需要搞清楚10万级用户的典型应用场景,以及不同操作的人员比例,这样的性能测试才会更有意义。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章:

  • 《Windows Server 2012活动目录管理实践》——2.5 常见问题
  • 《SQL初学者指南(第2版)》——第2章 基本数据检索
  • 《CCNA学习指南:Cisco网络设备互连(ICND2)(第4版)》——1.1节理解VLAN 和VLAN Trunk 及排除相关故障...
  • 《Redis入门指南》一4.6 节省空间
  • 《深入理解JavaScript》——2.8 结论
  • 数据挖掘与数据化运营实战. 2.2 统计分析与数据挖掘的主要区别
  • 4个可以发送完整电子邮件的命令行工具
  • 《社会智能与综合集成系统》—第2章2.1节机器智能的发展
  • 《树莓派实战秘籍》——1.17添加重启按钮
  • 百度编辑器Ueditor 多图上传 图片在线管理的排序问题解决方案
  • 未来的C#之覆写放宽
  • 《机器人爱好者(第2辑)》——Robot Hut初印象
  • 《Linux指令从入门到精通》——4.2 Linux下的简单文字模式文本编辑器
  • Java 获取当前操作系统信息
  • import static和import的区别(转)
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • canvas 绘制双线技巧
  • oldjun 检测网站的经验
  • Phpstorm怎样批量删除空行?
  • underscore源码剖析之整体架构
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Vue小说阅读器(仿追书神器)
  • vue学习系列(二)vue-cli
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 和 || 运算
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 前端
  • 深入浏览器事件循环的本质
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • (02)vite环境变量配置
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (1)常见O(n^2)排序算法解析
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (黑马C++)L06 重载与继承
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (算法二)滑动窗口
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NetCore部署微服务(二)
  • .NET的数据绑定
  • .net实现客户区延伸至至非客户区
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • ?php echo ?,?php echo Hello world!;?
  • @Autowired标签与 @Resource标签 的区别
  • @javax.ws.rs Webservice注解
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [Android] Android ActivityManager
  • [GYCTF2020]Ez_Express