测试架构师之路—python基于大数据类型的持续化测试设计

来源:互联网 发布:嘉兴软件开发制作 编辑:程序博客网 时间:2024/06/06 03:12

工作多年之后,思考纬度不能再像初出茅庐的时候一样了,对于所设计的东西来说要越来越趋向于平台化;测试也是如此,产品就像一个盒子,UI和功能是用户肉眼可以观测到的,属于盒子的外部也是测试中最基础的覆盖要求;大部分人可以做到这一步,但是盒子内部还存在着务必复杂的结构和逻辑而且是无法用肉眼观察的,而且危险的缺陷往往就潜伏在盒子的内部


如何测试盒子的内部,也就是我们常说的白盒测试,这时就需要你拥有更深层次的测试开发技术;要带着用户的思维方式用程序开发的技术去寻找缺陷,这时我们就会需要一个逻辑标准比较清晰的框架了,这个框架基本的工作原理就是:设计测试思路---选择最适合的开发环境-----将你的测试思路程序化----执行输出---持续的维护;到这里算是迈出了第一步,但是并没有实现自动化,不论是功能还是性能要想真正完全实现自动化你必须要设计出一个平台,下面将以一个实际例子说明


大数据是我们目前所处的互联网时代的特色,在AI智能时代完全到来之前大数据还是现在的佼佼者;比如说我们通常会在产品的源码中注入一些日志,这些log会随着用户的使用过程而同步调用,它们的作用很广泛也很实用,既可以搜集用户数据又可以记录产品使用过程中出现的问题,那么现在的需求就是对这些log进行持续不间断的监控,确保它们的正常调用;这些log的原理是使用接口请求的方式在产品使用过程中将数据采集并且上报到统一的地址存储起来,有了这个我们就开始设计测试框架吧


基本要求:熟练的代码能力,丰富的测试分析能力,熟练的服务器(一般是linux)和数据库操作能力

测试思路:

1 拿到数据,实现方式:在pre环境编写测试接口,并提供给开发人员,让他们通过你的接口进行log请求(这一步可使用python+flask+uswgi+nginx轻松搞定,写一个get请求的flask应用通过uwsgi(一个flask用的web服务器)和nginx代理部署到linux服务器,可以阅读相关资料),这一步是基础,要确保你的接口是运行在服务器上而不是本地

2 测试数据,这一步是最关键的一步,我们需要对每次请求的数据进行测试(比如字段是否缺失,字段的值是否缺失,字段值是否符合需求规则),编写测试代码,然后在第一步的flask应用中调用你得测试代码,每次请求时都会对拿到的数据进行测试

3 存储数据,实现方式:数据库(建议mysql),编写数据库代码,然后在flask应用中测试数据后调用数据库代码,将每次通过测试和没通关测试的数据(在你的测试代码中用状态区分)都存储起来,这样就可以使用丰富多彩的SQL语句来操作它们了(这一步可以使用python的MsqlDB模块以搞定)

4 报警监控,通过上面的三步我们做到了存储到数据库里的数据都是经过检测的了,那么接下来我们要进行最难的一步了;我们需要每一个小时对数据库里的数据进行操作。并且将每1个小时内的错误数据信息自动反馈给相关负责人,那么我们需要再编写一个操作mysql的函数,这个函数接收一个当前时间,它会去检测距离当前时间1个小时内的数据,如果发现有未通过第2步测试的数据,自动通过邮件的方式通知相关人员(所以还需要写一个发邮件的模块,python强大的第三方库stmplib完全可以搞定)


这样我们就实现了平台化了,这样设计出来的框架完全是个持续运行的服务,所有的步骤都是自动完成的,测试人员要做的就是定期维护它就可以了;这只是N多框架种的一种,要想成为一个测试架构师还有很多路要走,很多坑要趟


原创粉丝点击