版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaosongluo/article/details/84312162
渊源
笔者在腾讯工作时,曾参与自动化测试平台 UTP 的研发,由于 UTP 使用了 内部自研项目 Octopus(八爪鱼)平台作为整个 UTP 性能测试结果报表的解决方案,因此笔者对于 Octopus 的使用还算熟悉。
由于该项目由他人维护,因此细节方面本人肯定不甚了了,且时隔多日该项目是否有新的进展也不甚清楚。但由于这里讨论的是性能看板的问题,作为接入方的我对 Octopus 在这方面的使用以及基本运作机制还算熟悉。
Octopus
整体方案
首先,Octopus 平台不是一个专门的性能看板项目,而是一个通用意义上的自动化测试平台,不过其在性能看板上给出了一种的解决方案,有效的解决了当时的性能测试数据展示问题。
数据协议
客户端通过XML向 Octopus 后台服务发送类似如下的性能数据:
<report>
<project>
/*... preoject info ...*/
</project>
<test>
/*... test info for selected version ...*/
</test>
<data>
<summary>
/*... summary info ...*/
</summary>
<item>
<type>histogram</type>
/*... data info for first item ...*/
</item>
<item>
<type>pie</type>
/*... data info for second item ...*/
</item>
<item>
<type>line</type>
/*... data info for third item ...*/
</item>
...
</data>
</report>
其中最核心的字段就是
字段名 | 字段类型 | 字段含义 |
---|---|---|
data | string | 性能数据 |
item | object | 可有多个,具体的一项性能数据 |
type | string | 性能数据的类型(持续扩展),不同的 type 类型对具体数据的格式有一定要求 |
前端展示
Octopus 主要借助类似 highcharts 的三方图表库来进行数据可视化:
在处理上,Octopus 会依次渲染每一个 item 的性能数据,根据 item 的具体 type 定义选择约定好的三方图标库进行数据可视化展示
Octopus 性能看板的优缺点分析
优点
- 可扩展性极强,理论上没有啥效果是不支持的
缺点
- 可维护性差,每次要增删改某类数据的可视化展示策略都需要重新写前端并改协议