最近一直想在大数据方面做更为全面的测试,但是涉及这一块目前资料较少,所以抛砖引玉,希望有同行互相交流
1.ETL测试
ETL, Extract-Transform-Load 的缩写,将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程.
ETL工具较多,用过的是informatica.它从目标表抽取数据加载到结果表 hive<-->数据库.
测试思路:
a.测试抽取的符合条件的数据总量;
b.报表字段类型转换测试;
c.报表字段特殊值测试(空,null,复合型字符);
d.根据sql过滤条件进行造数测试;
e.根据业务场景进行造数测试;
f.开发创建的报表/报表字段和测试报表进行对比测试;
g.开发条件过滤sql初步遍历看有无明显语法错误测试;
h.报表拉数耗费时间测试;
j.报表大批量数据拉取性能测试.
用过informatica的同学都知道它有四个界面段,基于开发写的sql,报表字段,数据库连接串,errorlog都能从里面获取到信息,建议当工具拉数报错时,自己能更改的错误自己就直接改了(当然事后别忘记告诉开发更新)。
2.Linux环境的shell脚本测试.
一般shell脚本都是基本 数据库-->hive-->数据库的过程,也就是 hive的一个import 和 export的过程,需要涉及的知识面:基本的linux命令,shell脚本命令,hivesql,hdfs命令.
因为shell脚本测试有些时候是基于需要直接更改报表在hdfs路径下的数据文件,本人是建议测试完全掌握这一块的,毕竟公司部门的shell脚本一般都是有一个统一格式的.
测试思路:
1.遍历shell脚本查看开发输出的脚本是否正确(命名规范,脚本内容,调用函数,日志打印,异常检查机制);
2.遍历oracle/mysql/hive等建表语句(包含报表名称,报表字段,报表hdfs路径,索引创建,分区创建);
3.import/export报表数据总量;
4.import/export报表数据的脚本运行时间;
5.数据库--hive 的数据类型转换;
6.历史数据报表的历史数据量;
7.一些简单的sql语句优化..
hive报表主要涉及的都是一些数据传输过程,然后在hive里面使用sql进行一些逻辑计算,最后得出结果再把数据传输出去,所以主要关注点都在hive这一块。
3.kafka/scala
这个是目前正在做的项目,涉及到的kafka以及scala语言均需要补充新知识,scala语言相对好一点,是类似sql的一种写法,主要是在kafka中进行计算然后进行一个接口数据传输,从测试角度来看,涉及到:需求确定的逻辑计算方式 ,需求确定的各字段名称,需求确定的取数范围(标识,时间,状态),考虑报表历史数据量大小对性能的影响,基于服务器大小对各报表历史数据保存时间的确定,json串数据传输.
(私人讨论总结,请转载注明出处,谢谢!)
性能方面,个人感觉服务器大小配置会很大程度上影响到数据的传输速度,数据的处理速度,也就是说,客户看到需要的数据的时间会根据服务器的配置来进行延长或缩短,而作为测试,目前一直思考的也是这块的,如何在排除服务器配置的情况下,能更好的测试处代码计算的性能是一直在想的问题,因为这一块也没找到比较有用的对比资料以及参考指标.