如何做一份精致的性能测试报告?

Posted 黑马程序员官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何做一份精致的性能测试报告?相关的知识,希望对你有一定的参考价值。

相比于普通的功能测试,性能测试对测试工程师的技能要求更高,一般来说,也只有中高级软件测试工程师才有机会做性能测试。

 

一、性能测试报告的目的

性能测试报告的目的是:总结过程,呈现结论。

性能测试做完了,怎么做的,各项指标怎么样,是否符合预期,我们需要通过一份报告来呈现。

同时,性能测试报告也是一份留档,在下次业务扩容进行压测的时候可以作为基线参考,可以更好地评估压测指标。

性能测试报告给谁看?

在做性能测试的过程中,很多时候是要研发工程师协助一起完成的,所以最终的报告不仅是我们自己要看,同时也要给研发工程师及架构师看。因此,我们在撰写报告的时候要把各个角色关注的指标有效地呈现出来。

二、性能测试过程中的关注点

性能测试分别要关注施压端和服务端。

施压端即我们用来模拟压力发出请求的服务器,常用的工具有Jmeter、Loadrunner等,模拟较大压力时通常采用多台机器组成的集群。

在施压过程中,施压端一般要关注三个指标: qps(请求量)、rt(响应时间)、error(错误率)。

服务端即服务程序所在的机器,一般是多台服务器组成的集群,在性能测试过程中是被压测的对象。

服务端(或服务集群)一般关注下面几个指标:qps(处理的请求量)、rt(响应时间)、cup(cpu使用率)、mem(内存占用情况)、load(负载)、traffic(网络速率)。

为什么要关注上述这些指标呢?看完指标具体含义,你就能get到了:

1)qps

QPS(Query Per Second),每秒钟能够处理的请求的数量,是衡量一个系统性能的重要指标。

2)rt

RT(Response Time),响应时间(一般单位为ms),是指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结 果结束所经历的时间,响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。一般情况下,响应时间还会细分为:最小响应时间、平均响应时间、最大响应时间。

3)error

error请求错误率,一个请求预期正常的返回code为200,其它code(比如302、404、500等)均为非预期的,记为错误。错误率是指在施压机发送的所有请求中,返回code非200的占比。

4)cpu

CPU(%) 是指测试任务运行的这个时间段内,应用服务系统的 CPU 资源占用率。这是对一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况,如果被占用时间很高,那么就需要考虑CPU是否已经处于超负荷运作,长期超负荷运作对于机器本身来说是一种损害,因此必须将CPU的利用率控制在一定的比例下,以保证机器的正常运作。

5)mem

Memory (%) 指的是当前系统内存的使用量占总内存大小的比率,反应当前机器配置情况对应用的内存的一个承载能力,判断扩容等重要指标。

6)load

Load 就是一定时间内,计算机的任务执行队列的长度,cpu计算的队列。 平均Load是指,在特定的一段时间内统计的正在CPU中运行的(R状态)、正在等待CPU运行的、处于不可中断睡眠的(D状态)的任务数量的平均值。平均Load是最常用的指标。

7)traffic

Traffic (kb/s) 指的是网络传输的速率,反应了当前应用所属服务器带宽的使用情况。可以细分为 in(入) 和 out(出),一般会统计 最大值、最小值、平均值等。

三、如何做一份精致的报告

压测结束,最后要输出测试报告,一份精致的报告不仅能够很好地展示测试结果,同时也是体现自己的专业性的机会。

1、通过几个问题来介绍精致报告组成部分

问题1、用什么文档写?

如果自己所在公司没有规定,建议紧跟在线协作的趋势,使用在线文档编写,比如腾讯文档、钉钉文档、飞书文档等,功能都很丰富好用。

如果自己的所在公司有内部协作平台,就在指定平台上写,最终成稿之后复制到邮件正文发送即可。

问题2、用什么语言写?

根据自己公司的类型来,一般国内公司就用中文,没必要用英文,花里胡哨反而不好。

如果是在国际化企业,有不同国籍员工,那就要用公司规定的语种。

问题3、报告内容用图表还是文字?

我们可以参考优秀的报告模板,总结下来就是字要少,图表要丰富,能用图说明的绝不用文字。

相比于文字,图表显得专业、高级,而且压测数据一般都是变化的,只有图表才能够准确直观地展示压测过程的各项指标。

测数据的图表一般在压测工具(Jmeter可以使用第三方插件)中会自动生成【下方有Jmeter使用视频】,需要我们截图并整理。图表有了,接下来就该整理撰写报告了。

问题4、关键内容有哪些?

一份完整的报告应该包含以下关键内容:

    • 压测信息(包含任务名称、压测时间、相关责任人等)

    • 施压机信息(包含机房信息、机器配置等)

    • 服务端信息(包含机房信息、机器配置等)

    • 压测结果(包含平均qps、最大最小耗时、cpu平均使用率、内存平均使用率、总的请求数、错误率等)

    • 压测详情(单个接口时该内容可省略,多个接口时,则将第4项内容按接口拆分展示)

    • 压测指标(三大指标qps、rt、error的图表放在这里)

    • 服务监控指标(服务器或集群的指标图表放在这里)

问题5、排版格式注意什么?

报告中字体要协调统一,缩进换行等基本排版要美观。

问题6、报告附件补充什么?
  • 测试方案

  • 测试测数据

问题7、发送报告的注意事项
  • 使用公司指定的邮箱发送

  • 收件人应包含相关的各个角色

2、给出一份测试报告的样例,作为参考

作为程序员,大家都普遍都低调含蓄,但是该展现自己专业性的时候一定要积极表现。

对于测试工程师来说不仅要掌握专业的测试技能,同时也要提升各种文档的撰写能力,让自己的技能得到全面的展现。

以上是关于如何做一份精致的性能测试报告?的主要内容,如果未能解决你的问题,请参考以下文章

性能测试应该怎么做?

一份标准性能测试报告规范

30多份软件测试报告模板(标准版)!一份优秀测试报告模板流程

一篇关于django,tornado性能测试的非专业性报告

性能测试报告编写技巧

一篇关于django,tornado性能测试的非专业性报告