【易测试201611】使用网易有数分析性能测试结果

1 如何分析性能测试结果

对于性能测试来说,测试结果分析是整个测试流程中的一个非常重要的环节。

目前的测试工具大多只能分析出具体的性能指标值,诸如业内著名的LoadRunner和JMeter,也只是提供了吞吐量、响应时间等指标的曲线。而进一步的模块内部的性能分析,轮次间的性能比较,却还都需要我们用其他的方式去进行分析。

2 什么是网易有数

网易有数是一个敏捷数据分析平台,通过智能的数据可视化技术,可以将数据清晰地呈现出来,并且以各种直观的方式显示。

网易有数支持以Excel作为数据源导入,换句话说也就是只要我们可以把测试的结果信息收集汇总成Excel文件,就可以借助网易有数来进行分析。

3 具体怎么做

3.1 收集数据

一般性能测试数据的收集分为3部分:

  • 常规性能结果搜集: 一般基于HTTP/HTTPS的API均采用模拟HTTP/HTTPS请求的方式来进行性能测试,测试工具会在每轮测试结束后汇报当前轮次的关键指标,例如吞吐率、响应时间等参数。目前通过PTP平台调用的Grinder/Jnuts轮次结束后,即会提供此类性能指标,如图1所示:

图1 PTP平台性能指标展示

当然,其他性能测试工具也会提供类似的指标。

  • 资源利用率统计: 哨兵系统可提供所有被监控节点测试时间段内的资源利用率情况,PTP平台也会对部分指定的服务器进行测试时间段内的资源利用率采样与统计。

  • 更多性能指标收集: 根据被测产品以及业务流程的不同,还有很多细化的指标可以用来分析产品的性能,例如性能日志打点结果、子模块内部性能等。

3.2 整理数据

搜集完成所需数据之后,将数据整理到一份Excel文件内,用以导入,如图2所示:

图2 整理数据得到的Excel文件

这里需要注意的是首行作为该列的列名,长度不要大于30字符,否则可能会在导入的过程中不显示列名。

3.3 在网易有数中导入Excel

在网易有数的数据源管理中添加Excel数据连接,选择并上传Excel文件,再在数据模型管理页面中创建数据模型,不熟悉网易有数的同学可以参照官方帮助文档进行操作。

由于在步骤3.2中所有的结果均在一张Excel表内,因此在创建数据模型的时候不需要进行多表join操作。

在创建数据模型时网易有数会自动对Excel文件内的各列进行维度/度量匹配:

  • 维度:指代某种属性,可以在分析的过程中用作聚合或者是筛选的依据,如用例名称、并发度、数据库类型、结果集大小等参数均可作为维度;
  • 度量:指代某种数值,可以用来做求和/求平均/计数等计算,如吞吐量、平均响应时间、各模块分段用时、资源利用率等数据均为度量。

网易有数的维度/度量自动匹配并不一定准确,因此需要手动校验是否正确指定各列含义。

3.4 创建网易有数报表分析性能结果

在网易有数中以步骤3.3中创建的Excel数据模型为数据源创建报表(参考帮助文档),合理地利用文本图、折线图、饼图以及筛选器等工具,网易有数就能将性能测试的结果非常直观地展示出来,以下放几个例子供大家参考:

  • 显示整组测试结果的详细信息(文本图)

图3 显示整组测试结果的详细信息

由于性能测试结果数据的特性,度量仅有展示作用,不具有累加意义(例如10并发的TPS和30并发的TPS求和所得的TPS并无意义)。因此需要在建表时将维度的粒度设置得足够细,或者使用筛选器筛选需要展示的用例。(下同)

  • 显示某组用例的吞吐率/响应时间和并发度的趋势图(折线图)

图4 显示某组用例的吞吐率/响应时间和并发度的趋势图

使用筛选器筛选出需要展示的一个用例,用双坐标轴模式可以很直观地显示出吞吐率(TPS)和响应时间随着并发度增加的趋势。并且由于筛选器的存在,可以很容易地更换需要显示的用例。

  • 显示某个用例的模块间性能对比(饼图)
    图5 显示某个用例的模块间性能对比

使用饼图来展示各个模块间的性能(耗时)情况,可以根据需要同时显示单一维度情况下的性能对比(不同并发数,或者不同用例等)。

当然,这里只是提供了一个使用网易有数对性能测试结果数据进行分析的方法和思路,希望能和大家一起探讨更多有趣的Idea!

本文来自网易实践者社区,经作者崔慎杰授权发布。