
【工商银行软件开发中心广州产品部出品】
随着工商银行IT架构向开放平台和分布式转型,对生产性能容量的稳定性和质量保障工作提出了更高要求。但在过去的项目测试过程中,诸多环节如需求识别、监控指标确定、测试执行等仍然依赖人工操作,测试广度、深度及效能都难以满足新的需求。为了解决这个问题,工商银行开始探索智能化性能测试领域。
在性能测试领域,工商银行有着丰富的实践经验。过去,我们曾使用过业界主流的性能测试工具,如Jmeter、loadrunner等,但每种工具都有其不足之处,无法满足我们的全部需求。例如,Jmeter在大型规模测试方面的支持不够理想,而Loadrunner则需要高性能硬件资源和高昂的收费。这些工具提供的监控图表和分析能力有限,仅在测试执行和监控环节有所作为,其他环节仍需人工完成,效率有待提高。
我们提出了智能化性能平台的构想。理想的智能化性能测试平台应具备以下能力:
一、自动识别测试需求,避免因人工认知缺陷带来的局限性,提高风险识别的全面性和准确性。
二、自动生成测试用例,提高测试用例设计的效率和质量。
三、自动构造测试数据,提高测试数据构造的效率和可用性。
四、支持多种协议测试,如HTTP、TCP、JDBC、JMS等,满足不同的应用场景需求。
五、模拟大规模并发访问,检测系统的性能瓶颈和稳定性。
六、实现智能化测试执行和监控,提高测试效率和降低人力成本。
七、模拟混沌状态,检测系统的鲁棒性和健壮性。
八、智能化分析结果和数据可视化,帮助测试人员快速定位和解决性能问题。
九、实现测试管理和监控,支持测试任务和测试资源的管理。
十、智能容量规划,预测系统未来的性能需求和容量规划。
基于上述构想,我们选择Jmeter作为底层执行引擎进行二次开发,采用Master+Slaver模式扩展其能力,结合Prometheus监控和定制诊断分析模型实现智能执行、监控和预警。目前平台已覆盖十个方向的能力。
具体的实现原理和效果包括:
一、通过决策树算法自动识别测试需求,基于服务画像和监控数据识别出需要进行性能测试的服务清单。
二、结合历史服务画像、生产服务画像等自动生成测试用例,实现灵活扩展和全面覆盖的用例设计模式。
三、通过造数模板和机器学习聚类算法构建造数引擎,提供测试数据智能造数能力,并配套提供数据资产的管理能力。
五、采用master-slaver模式和性能测试任务拆分执行实现高并发支持。
六、实现业务指标和系统临界资源的自动关联采集和聚合监控,通过智能监控组件实时检测资源运行状况。
七、通过封装ChaosBlade框架实现混沌状态模拟,监测服务在混沌环境中的高可用表现。
八、利用历史模型数据、生产运维数据等进行性能测试结果分析,判断是否存在性能风险并进行预警,辅助开发人员快速定位问题代码片段。
九、在测试管理方面,平台提供测试用例、测试数据和测试结果等资产管理,实现测试资源的快速检索和管理。
十、依托平台底层自定义插件模式,测试用户可以开发自定义组件,作为共享服务加入到平台中,实现测试生态的共同建设。
随着智能化性能测试平台的建成,我们迈出了坚实的一步。未来,这个平台将拥有更广泛的应用场景和更丰富的功能,为研发运营一体化提供支持。关注工商银行软件开发中心广州产品部出品的“BanTech智库”,一起探索银行科技发展,共建金融生态。
