概述
近年来互联网金融蓬勃发展,在借贷、保险、股权等领域涌现出一大批互联网与金融场景相结合的创新产品,如花呗、借呗,微粒贷等众多服务。
为满足日益剧增的用户增长和交易量,往往需要在架构设计时,考虑高可测的特性。
互联网消费金融高可测设计
1、自动化测试
前面的章节介绍到了互联网消费金融的软件架构的拆分与微服务建设,服务在我们的领域规划下变得有调理,服务越来越多,越来越细化,给测试也带来了巨大的挑战。进行高可测的架构设计时,我们对自动化测试的依赖越来越强,因为自动化测试能我们带来很大便利:
- 1、运用自动化环境,实现一次性部署测试环境,一键测试;
- 2、方便对程序的回归测试;
- 3、可以运行更多更繁琐的测试;
- 4、可以执行一些手工测试困难的测试;
- 5、测试具有一致性和可重复性;
- 6、增加软件信任度;
- 7、释放测试资源,提升测试人员能力等
常用的自动化建设,一般分为前端页面的自动化测试,和接口的自动化测试。比较流行的工具有:
- appium
- selenium
- httprunner
- loadrunner
有能力的企业会自主研发自动化框架,加入更多定制化的功能,以满足实际的业务需要。
2、性能测试问题和解决方案
互联网消费金融业务复杂度高,面对性能测试往往会遇到诸多问题。
- 1、性能测试的场景多,业务复杂,比如支付功能可能涉及到从发起支服务的业务服务,到支付网关,在到银行内部系统等五六个服务。
解决方案:对关键业务路径进行性能回归,对单个服务接口进行压测和预估。 - 2、测试环境服务器和线上服务器的配置往往不一样,而且测试环境是单点的,而线上服务是集群的。
解决方案:机房单台服务器配置尽量与线上保持一致,集群问题通过等比缩放预估;技术力量比较强的公司如阿里,直接在线上环境进行压测。 - 3、测试数据准确性和一致性问题。
解决方案:对生产数据进行全量脱敏导下来,用于性能测试。 - 4、接口的性能测试调用链太长,对外部系统依赖。
解决方案:接口的调用链尽量优化简短,部分接口和外部依赖进行mock后再测试。 - 5、性能测试方案制定,怎样定位性能瓶颈?
解决方案:需要对被压测的接口分析调用链,根据线上监控,进行分析可能存在的性能瓶颈。 - 6、QPS应该跑多少?
解决方案:根据接入的接口监控,比如cat监控,可以根据监控数据QPS/集群数,再乘以80%(因为测试服务器和线上服务器的性能可能有一些差距)。 - 7、相应时间以多少为准?
解决方案:接口理论上相应时间是100-800ms,最大不超过1s。这是基本要求,一些特殊重场景,需特殊处理。 - 8、压测结果应怎样预估?
解决方案:根据测试环境压测结果(cpu<=50%)简单预估,测试QPS线上集群1.2 约等于线上QPS