在【rainbowzhou 面试6/101】技术提问--举例说明你写的ETL测试用例?中,我介绍了ETL测试中常见的ETL测试场景及用例。那么面试官可能会追问你在实际大数据项目过程中,你设计完用例后,如何准备测试数据?本篇聊聊这个话题,希望对大家有所帮助。
仔细回想整个测试流程,对于任意一个项目而言,在测试用例设计完成后,执行测试用例之前,我们都还有一个环节的任务要做,即准备相应的测试数据。而对于大数据测试来说,准备相应的测试数据还有以下难点,如:
基于GUI构造数据是原始的数据构造方法,构造的数据来自真实的业务流程,最大程度保证了数据的正确性和完整性。在很多手工测试的场景中,普遍采用这种方法,但是存在这样的情况,数据来源是客户的私有化数据,客户会分不同的环境来限制你的使用,或要求脱敏、加密等处理后才能使用。
在测试过程的部分场景中,需要构造海量数据。这时,我们可以选择一些比较成熟的批量数据生成工具来构造数据,如DataFactory、DataX等。
向数据库中直接插入数据是常用的构造测试数据的方法。具体做法:将创建测试数据的SQL语句封装成一个个测试数据生成函数,当需要创建测试数据时,直接调用这些封装好的函数即可。这种方法生成测试数据的效率非常高,可以短时间内向数据库中插入大量的测试数据。
可以将部分客户提供的样例数据同步到测试集群,并且进行严格脱敏流程后使用,保证测试过程中数据的多样性和真实性。
可以将测试数据准备工作进行脚本化甚至平台化,工具平台化会逐渐成为测试数据准备工作发展的方向。若已有测试数据平台的公司,可以直接利用平台生成系统化的数据。
在微服务架构中,通常需要通过消息中间件将多个服务进行解耦,为了减少对测试工作的以来,通常会向Kafka中构造数据。例如实时数据可以通过编写Kafka的producer代码,向Kafka中生产测试所需的测试数据。具体做法与通过数据库构造测试数据类似,将Kafka的producer代码封装成测试数据生成函数,当我们创建测试数据时,直接调用这些封装好的函数即可。
在实际工作中,数据的准备是比较重要且复杂的环境,测试数据需要尽量和实际数据保持一致,如时区的一致性零时区还是东八区、时间的值是精确到天还是秒、金额保留几位小数等。
参考资源:
看完今天的分享对你是不是有所启发呢,有任何想法都欢迎大家后台私信我,一起探讨交流。
本文分享自 rainbowzhou的成长足迹 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!