对于性能测试来说,测试结果分析是整个测试流程中非常重要的一个环节。
目前的测试工具大多只能分析出性能具体的值,诸如业内著名LoadRunner和JMeter,也只是提供了吞吐量、响应时间等曲线。而进一步的模块内部的性能分析,轮次间性能比较,都需要我们用其他的方式去进行分析。
网易有数是一个敏捷数据分析平台,通过智能的数据可视化技术,可以将数据清晰的呈现出来,并且以各种直观的方式显示。
网易有数支持以Excel作为数据源导入,换句话说也就是只要我们可以把测试的结果信息收集汇总成Excel文件,就可以借助网易有数来进行分析。
一般性能测试数据的收集分3部分:
常规性能结果搜集: 一般基于HTTP/HTTPS的API均采用模拟HTTP/HTTPS请求来进行性能测试,测试工具会在每轮测试结束后汇报当前轮次的关键指标,例如吞吐率、响应时间等参数。目前通过PTP平台调用的Grinder/Jnuts轮次结束后,会提供此类性能指标,如下图: 当然,其他性能测试工具也会提供类似的指标。
资源利用率统计: 哨兵系统可提供所有被监控节点测试时间段内的资源利用率情况,PTP平台也会对部分指定的服务器进行测试时间段内的资源利用率采样与统计。
更多性能指标收集: 根据被测产品以及业务流程的不同,还有很多细化的指标可以用来分析产品的性能,例如性能日志打点结果、子模块内部性能等。
搜集完成所需数据之后,将数据整理到一份Excel文件内,用以导入,如下图所示: 这里需要注意的是首行作为该列的列名,长度不要大于30字符,否则可能在导入的过程中不显示列名。
在网易有数的数据源管理中添加Excel数据连接,选择并上传Excel文件,再在数据模型管理页面中创建数据模型,不熟悉网易有数的同学可以参照官方帮助文档进行操作。
由于在步骤2中所有的结果均在一张Excel表内,因此在创建数据模型的时候不需要进行多表join操作。
在创建数据模型时网易有数会自动对Excel文件内的各列进行维度/度量匹配。
网易有数的维度/度量自动匹配并不一定准确,因此需要手动校验是否正确指定各列含义。
在网易有数中以步骤3中创建的Excel数据模型为数据源创建报表(参考帮助文档),合理的利用文本图、折线图、饼图以及筛选器等工具,网易有数就能将性能测试的结果非常直观的展示出来,以下放几个例子供大家参考:
显示整组测试结果的详细信息(文本图): 由于性能测试结果数据的特性,度量仅有展示作用,不具有累加意义(例如10并发的TPS和30并发的TPS求和所得的TPS并无意义)。因此需要在建表时将维度的粒度设置的足够细,或者使用筛选器筛选需要展示的用例。(下同)
显示某组用例的吞吐率/响应时间和并发度的趋势图(折线图): 使用筛选器筛选出需要展示的一个用例,用双坐标轴模式可以很直观的显示出吞吐率(TPS)和响应时间随着并发度增加时的趋势。并且由于筛选器的存在,可以很容易的更换需要显示的用例。
显示某个用例的模块间性能对比(饼图): 使用饼图来展示各个模块间的性能(耗时)情况,可以根据需要同时显示单一维度情况下的性能对比(不同并发数,或者不同用例等)。
当然,这里只是提供了一个使用网易有数对性能测试结果数据进行分析的方法和思路,希望能和大家一起探讨更多有趣的idea!
本文来自网易实践者社区,经作者崔慎杰授权发布。