1.大数据测试维度
大数据平台主要解决了企业的实时数据计算、离线数据计算,主要服务于企业的数据应用,这些应用包括企业经营指标分析,商业智能分析,以及基于数据的广告业务、推荐业务、智能应用等。由于承载的企业业务复杂,而且对数据计算的实时性、准确性及可用性都有较高的要求,因此大数据本身涉及的就不是一个简单的业务场景,它需要从架构可靠性、平台可靠性、平台服务SLA以及流程可监测等多方面考虑。其复杂度是非常高的,因此对大数据的测试要求也很高。
一般测试主要分为:功能测试、性能测试。功能测试主要从接口行为、用户侧操作行为来测试系统是否能够完成对应的工作要求。性能测试则是主要是从组件性能、平台性能以及指标实时性等。与以往的业务系统性能指标不一样的地方在于指标的实时性成为了大数据平台最终的业务形态指标。平台的性能指标需要支撑指标的实时性。满足企业数据应用对数据指标实时性的需求。
2.大数据功能测试
大数据功能测试主要分为:组件功能测试、数据应用功能测试、系统集成测试。
2.1 组件功能测试
大数据平台涉及的组件就非常多,包括:HDFS、Kafka、flink、Hive、Spark、Zookeeper、ElasticSearch、azkaban、Hbase、Ranger、Knox、Tez、Alluxion等工具。这些工具主要为整个大数据生态提供各种功能。在测试过程中需要集中关注每个工具的主要功能,通过接口、界面测试大数据工具的功能。同时需要关注大数据工具社区的功能动态,以及相关bug的修复。因此大数据组件测试的工具可能跟传统的测试工作还是有区别的。
2.2 数据应用功能测试
数据应用功能测试,这块主要从业务层面进行数据准确性。数据应用主要集中在数据仓库业务、数据实时计算。在整个大数据应用中,数据仓库业务占据绝大部分的数据需求。不管是企业经营指标、商业智能,还是基于算法的广告应用、推荐应用以及其他算法应用。数据建模都是不可或缺的部分。 因此数据应用的测试大部分集中在sql的逻辑测试。
对于数据仓库业务测试,其难度在于测试需要对业务本身有较好的理解,对其业务逻辑有深入的了解,不然测试也无法获取好的结果了。就这一点就已经加大了大数据测试难度。
2.3 系统集成测试
集成测试就是完成一个由多个工具组合完成的功能,实现全流程全工具的拉通测试,这个在实时计算中比较常见,因为实时计算流程比较长,涉及到工具比较多,需要多个工具一起协同才能完成相应的功能。因此这个需要从流程开始、流程结束两个切面进行功能的测试。
3.大数据性能测试
对于性能指标来说,需要从业务场景出发,这样才能保证性能指标是有可参考系的。因此在定义性能指标的时候,需要从业务指标、技术指标两个角度进行定义。技术指标不能脱离业务指标而存在,业务指标和技术指标之间是具有映射关系的。
性能测试行业常用的性能指标表示法如下表3-1所示。
表3-1 性能测试行业常用指标
简称 | 英文全称 | 含义 |
RT | response time | 响应时间,通常我们说的响应时间都包括了 Request time和Response time。 |
HPS | Hits per Second | 每秒点击数 |
TPS | Transaction per second | 每秒事务数 |
QPS | Queries per second | 在MySQL中指每秒SQL数 |
RPS | Requests per Second | 每秒请求数 |
CPS | Codes per Second | HTTP协议中,CPS偶尔有提及,指的是HTTP每秒返回码 |
IOPS | Input/Output per Second | 通常描述磁盘 |