性能工程高手课
庄振运
Facebook 性能优化和容量管理高级专家
24631 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 40 讲
性能工程高手课
15
15
1.0x
00:00/00:00
登录|注册

10 | 性能测试的规划和步骤:为什么性能测试不容易一蹴而就呢?

分享思考和讨论
模拟测试
先短时间测试,再长时间测试
分步进行
真实用户数据 vs. 仿真数据
流量大小和注入方式
实时流量 vs. 过去捕捉的流量
真实生产环境负载 vs. 仿真负载
获取性能数据做参考
确认SUT的性能满足指标
平均值、百分位数、置信区间
常用性能指标:服务响应时间、吞吐量、资源利用率
SUT模块的资源使用率
面向终端客户的SUT的性能指标
复杂系统的测试对象
SUT(System Under Test)
思考题
需要多次调整测试方法
目标明确、规划仔细、执行得力
反复进行多次测试
结果不满意时的处理
多次迭代执行
测试结果的可重复性
测试环境配置
测试工具选择
黑盒 vs. 白盒测试
测试的数据
负载注入方式
负载流量的特征
决定性能测试的期望结果
决定测试指标的度量
决定测试的性能指标
搞清楚测试对象
总结
分析测试结果
性能测试的执行
性能测试的规划
性能测试规划
性能测试规划和执行步骤

该思维导图由 AI 生成,仅供参考

你好,我是庄振运。
上一讲我们讲了不同类型的性能测试。今天我们来讲如何规划一个性能测试和具体的执行步骤。在规划任何一种性能测试时,最重要的事情是搞清楚被测试的实体,也就是 SUT(System Under Test),对应的性能指标和度量,以及期望的结果。在此基础上,根据测试的类型来决定和规划具体的测试步骤,然后执行测试,最后再合理地分析测试的结果。
为方便描述,我们用下图来表示整个性能测试的过程,总共七个部分。
大体上分为前后两大部分。前面四个部分分别是:决定 SUT、决定性能指标、决定指标的度量、决定期望结果。后面三个部分是性能测试的规划、测试的执行和结果分析。这三个部分根据测试的结果或许需要重复多次。

搞清楚测试对象

性能测试当然首先要搞清楚测试对象。但说起来有意思,我看到过很多做性能测试的人,对“什么才是他的测试对象”这个问题糊里糊涂的。经常碰到的情况是,有些人做了一大堆测试,但后来发现搞错测试对象了,所以大量的工作白做了。
为什么会导致这样的误会呢?
因为一个被测试的系统往往是复杂的,包含多个子系统和模块。如果对测试的类型和规划没有搞透彻,就很容易搞不清真正的测试对象。
测试的对象一般叫 SUT(System Under Test),它可以是一段代码、一个模块、一个子系统或者一个整个的系统。比如要测试一个在线互联网服务的性能,那么这整个系统,包括软件、硬件和网络,都算是 SUT。再比如,SUT 也可以是一个子系统,比如运行在某台服务器上的一个进程。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

性能测试是一个复杂的过程,需要经过详细的规划和执行步骤。在规划性能测试时,首先需要明确被测试的实体(SUT),性能指标和度量,以及期望的结果。确定SUT后,需要决定具体的性能指标,如服务响应时间、吞吐量和资源利用率,并进一步确定指标的度量方式。同时,也需要明确测试的期望结果,以便判断测试结果的可接受性。 在性能测试的规划阶段,需要考虑负载流量的特征、负载注入方式、测试数据、测试工具、测试环境等方面。执行性能测试时,需要确保测试结果的可重复性,并可能需要多次迭代执行,以验证测试过程中的问题并进行快速解决。此外,模拟测试也是一个重要的步骤,可以在实际负载测试之前检查各种工具的正确性。 性能测试不容易一蹴而就,需要经过详细的规划和多次迭代执行,以确保测试结果的准确性和可靠性。每次测试完毕后,都需要认真分析结果,如果不满意,就需要看看如何改进。可能需要重新规划测试方法、消除环境干扰、增加数据收集等。只有坚持不懈地调整测试方法,才能达到满意的效果。 思考题:如果发现每次的性能测试结果都不一样,可能原因包括SUT服务器上运行其他程序、负载流量不稳定等。这些因素都会影响测试结果的准确性,需要认真排查并解决。 性能测试需要坚持不懈的努力和反复调整,只有如此才能取得令人满意的结果。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《性能工程高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • qiaotaoli
    感觉这个章节说了很多点,但每个点都只是提了一下,没有说如何解决这类问题,只是提出了问题,没有解决方案。

    作者回复: 性能工程涉及内容挺广的,性能测试是其中一块,相关的资料相对比较多,比如https://time.geekbang.org/column/intro/264;我的这个专题的定位不太一样,主要目的是让大家对这一工作有系统的认识,提纲挈领。每一块的具体内容可以根据每个人的实际需要再响应的展开。

    2019-12-25
    2
  • 老师,先不管其他的,感觉你的讲解引不起共鸣,互动的同学较少哎!有些火爆的专栏评论比文章内容都多,我读过的感受,这些内容听起来不费劲也不需要太多的思考,你的观点我认同,关键是这是一种用结果讲述的方式。 我更多是想听,你遇到了什么具体的性能问题?你怎么分析的?你怎么解决的?你遇到的难题有一定的普遍性嘛?你的解决思路有一定的可复用性嘛?你讲解怎么解决问题的思路是否清晰?逻辑是否严谨?我学了之后遇到类似的问题是否能搞定,这是我最关心的,或者现在随便给我一个性能问题,让我去解决,我是思路的,不但有思路而且我知道怎么一步一步逼近问题的根源并且解决掉,这些也是我最关心的,我希望的这些内容。
    2020-03-04
    4
    11
  • han
    性能测试是个大的话题,这里的每个小节,展开都会有很多细节 - 测试设计(test design) - 测试工具选择和使用 - 测试环境搭建 - 测试数据准备 - 测试执行过程 - 测试结果分析 完整的性能测试感觉还是要借助专业测试人员的协助来完成,在参与的过程中可以了解到公司在性能测试这块的整套的工具和流程。开发人员自测而言,可能关注模块性能,结果分析,同时帮助评审测试设计
    2019-12-18
    3
  • 追风筝的人
    平时用的最多的性能指标有三个,就是服务响应时间,服务吞吐量和资源利用率。这三个指标各有侧重,分别对应了终端客户、业务平台以及容量系统。通常,响应时间是用户关注的指标,吞吐量是业务关注的指标,资源利用率是系统关注的指标。
    2022-06-16
  • 在路上
    庄老师好,SUT 服务器上面还在跑其他程序,属于测试环境问题;注入的负载流量不稳定,属于测试输入问题;还有可能是测试程序本身有问题,被测程序处理相同的数据不能得到相同的结果。
    2021-01-30
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部