汽车之家测试架构师王公瑾谈大数据测试及自动化实践
大数据过程
王公瑾:大家好,我叫王公瑾,来自于汽车之家新车电商事业部,今天给大家分享的主题是大数据测试及自动化实践,大概会从以下五个方面,来给大家分享大数据测试的一些肤浅经验: 大数据过程概述 先了解一下大数据的整体过程,大数据分为四个阶段: 通过技术的抽象,我们相应地把测试分成三类: 实时处理类测试 架构设计中常见问题分析 测试策略 实时处理测试过程举例 我们会先制定一个特征集策略,可能是源于一些业务需求,当然也有可能源于我们去做一些并发的策略,会在脚本的前置操作里边做数据清洗,把我们的持久化储存和缓存等等清理掉,然后我们会把特征加入到内存,用多线程或者是协程的方式去随机的对数据进行生成和灌入,这里要注意的是生产速度一定要大于消费速度,不然的话是很难测出问题的。还有如果你使用了消息队列中间件的时候,一定要检查消费速率和有没有数据的积压。其实很多开发对分布式中间件的使用不太了解,可能会做一些奇怪的设计,比如说会从中间件里边快速的大量的把数据拿到线程池和线程安全的队列,其实这里边有俩问题,一是数据被快速拿到线程安全的队列中,在中间件里边看不到真实的消费速度,如果你线程安全的队列长度是五千的话至少压到大于五千的数据才会在中间件积压,这样我们才看到有问题。另外一个问题,一旦服务重启的话,存储在内存中的数据必然丢失。我们很难去预测开发到底是怎么做设计和实现的。所以最后最关键是会写很多用例来测试数据的正确性。 数据仓库和ETL 然后说一下数仓和ETL测试,说到数仓,这个技术很早以前就有,但是直到HIVE出现,才降低了门槛。 了解下数仓的分层,每家公司数仓分层规范、命名和缩写都不太一样,这里边我觉得测试最能发挥作用的地方是在于业务层大数据概述,即面向主题域的星型建模,测试了解业务,回去按一些规则去发现建模过程的一些业务实现问题: 说到ETL,我们认为是一个脚本测脚本、结果测结果的过程。除了hive常用的hql,我们还涉及到一些UDF的操作。写脚本的时候,你即使不关心数据倾斜导致的效率低的问题,也需要了解参数调优的一些东西。 数据挖掘和分析 因为公司业务的保密性,我自己写了一个验证码识别的算法,以此来举例算法应该如何评估。 首先看一下左上角的SUBE,这是我们汽车之家主站的简单的验证码,这个验证码我写了两种算法去识别。 那这两种算法到底哪个好,哪个不好,我们去评估这个事情非常容易,Selenium大家都会,我们进入登录页面,下载验证码图片,并分别调用两种服务返回验证码,看看他们的正确率,当然评估正确率是一个持续的过程,如下图 可以看出不同算法在不同时期各有优劣 自动化落地实战 因为我们做AI大数据时间不是很长,自动化现在也是处于一个持续丰富的阶段。 (编辑:92站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |