本发明涉及信息技术应用领域,具体为一种基于微服务架构的应用的性能测试方法和系统,实现对基于微服务架构应用的有效性测试。
背景技术:
1、微服务架构模式最初由martin fowler与james lewis在2014年提出(microservices.thoughtworks[eb/ol].http://martinfowler.com/articles/microservices.html,2014.),并随着技术逐渐成熟稳定,很多领域都将这种架构模式引入实际应用中。近年来,虽然关于微服务核心技术的研究存在着一定数量的文献,但针对微服务性能测试方法的研究较少,而且也只是针对微服务的某一方面或某一种类型的微服务实现方式进行性能评测。针对微服务技术及微服务性能评测的相关研究主要有:
2、文献“邓杰文,曹彩凤.微服务若干关键问题研究[j].五邑大学学报,2016,30(2):49-54.”中,阐述了与传统单体式应用架构相比,微服务架构能明显降低系统耦合度,提高系统可扩展性,在架构设计层面可以解决性能瓶颈问题。并针对微服务架构中的服务间通信,服务发现和服务部署3个关键问题进行了研究,提出了各场景下的解决方案并分析其优劣。
3、文献“刘沐煊.关于云环境中web应用的微服务架构评估研究[j].科技资讯,2018,23:1-3.”中,在对云环境中web应用微服务架构性能展开评估的过程中,利用jmter对工作负载展开模拟。通过对请求的完成程度展开研究发现,云环境中web应用微服务架构在响应时间方面比单体应用有较为明显的优势。
4、文献“devops架构下如何进行微服务性能测试[eb/ol].https://www.cnblogs.com/cpts-test/p/10218728.html,2019.”中,分析了微服务架构下的性能测试挑战,提出了基于华为云的微服务性能测试的解决方案和实施方法。但存在的问题在于该应用场景具有特定局限性,对大多数微服务架构性能测试并不适用。
5、从以上研究可以看出,针对微服务架构的性能评测技术大多都只是集中于微服务架构中的某个特性或者某种类型的微服务实现上,很少有针对微服务架构的各个层次的不同特性分别进行考察总结。本发明从这一角度出发,结合微服务架构的特点,通过对传统的性能测试方法和技术进行优化改进,针对微服务不同层次使用不同的测试方法和性能指标,并通过实际项目进行验证,完成对基于微服务架构应用的性能测试方法的研究。
技术实现思路
1、随着大数据、云原生时代的到来,软件架构和部署形态都发生了深刻的变化,软件交付模式逐渐从传统的整体式(monolithic)产品交付,向弹性灵活、快速迭代的微服务架构迁移。在此背景之下,软件性能测试作为保证软件质量和可靠性的关键手段,在基于传统的测试方法与工具进行评测时逐渐暴露出测试效率低下,无法准确完成应用性能评估等突出问题,对软件交付周期和质量保证产生了严重影响,制约了软件测试的发展,并使得软件测试成本不断增加。为了克服这些不足,本发明提供一种提高对基于微服务架构应用的性能测试效率、及时发现潜在性能问题、准确完成性能评估、降低测试成本的性能测试方法和系统。
2、本发明解决其技术问题所采用的技术方案是:
3、一种基于微服务架构的应用性能测试方法,包括以下步骤:
4、对应用的微服务基础框架进行性能测试,并获取各项性能指标的测试结果;
5、对应用中的单个微服务进行性能测试,并获取各项性能指标的测试结果;
6、对应用的全链路进行性能测试,并获取各项性能指标的测试结果。
7、进一步地,在各个测试项目的测试过程中,使用性能监控工具和链路跟踪工具对测试服务器的各项性能指标进行监控,获取各种性能参数。
8、进一步地,所述对微服务基础框架进行性能测试,是在微服务基础框架中选择微服务网关进行性能测试,测试内容包括:
9、静态路由性能:考察网关对静态资源路由转发的处理性能情况,测试指标包括响应时间、吞吐率、成功率、cpu占用率;
10、动态路由性能:考察网关对动态资源路由转发的处理性能情况,测试指标包括响应时间、吞吐率、成功率、cpu占用率;
11、负载均衡性能:对负载均衡的计算和通信性能进行考察,测试指标包括响应时间、吞吐率、cpu占用率;
12、网络延时性能:考察通过微服务网关的网络延时情况,测试指标包括响应时间。
13、进一步地,所述对应用中的单个微服务进行性能测试,是测试单个微服务的业务逻辑和服务调用的性能情况,测试内容包括:
14、业务处理性能:通过排除外部调用干扰,考察业务真实的处理性能情况,测试指标包括响应时间、吞吐率、成功率、cpu占用率;
15、服务调用性能:对服务内部的调用框架的计算和网络性能进行考察,测试指标包括响应时间、吞吐率;
16、服务扩展性能:评价服务在规模扩大后的性能变化,通过配置多个服务节点,考虑服务性能变化情况,测试指标包括响应时间,吞吐率。
17、进一步地,所述服务调用性能的测试,一方面是测试整个服务调用框架空转的处理能力,涉及数据的传输,数据的序列化、服务的调度;另一方面是测试在大并发的情况下服务调用框架的调度、处理能力。
18、进一步地,所述对应用的全链路进行性能测试,是以请求为核心,完全模拟真实请求流量,并进行模拟场景压测,确保各微服务的可用性,以及服务之间交互的连通性、准确性、容错性。
19、进一步地,所述对应用的全链路进行性能测试,包括:
20、(1)梳理核心链路:分析业务场景,梳理出核心链路;
21、(2)协调测试资源:对测试资源进行协调,包括压测硬件、软件、环境资源,以及人力资源;
22、(3)构建测试数据:构建真实和可用的测试数据,并尽量使测试数据多元化,参数重复性低,以保证真实的模拟生产数据流量;
23、(4)服务管理及跟踪监控:搭建服务监控平台,监控和管理各服务访问情况的权限及访问情况;
24、(5)性能指标分析:对性能指标进行分析,找出性能测试中可能存在的性能瓶颈或软件缺陷,确认其是否达到用户使用需求;
25、(6)服务容量评估:结合历史数据和用户现有业务规模,先按现有环境进行摸底测试,再逐步增加或减少机器,循环多次,最后达到精准的服务容量评估。
26、一种基于微服务架构的应用性能测试系统,其包括:
27、微服务基础框架性能测试模块,用于对应用的微服务基础框架进行性能测试,并获取各项性能指标的测试结果;
28、单服务性能测试模块,用于对应用中的单个微服务进行性能测试,并获取各项性能指标的测试结果;
29、全链路性能测试模块,用于对应用的全链路进行性能测试,并获取各项性能指标的测试结果。
30、本发明的有益效果是,给出了有效的基于微服务架构的应用的性能测试方法,包括微服务基础框架性能测试方法、单服务性能测试方法、全链路服务性能测试方法,并通过实际项目验证了方法模型的有效性。该发明对实际执行工作具有实用价值,能够提高软件测试效率和软件测试的缺陷检测能力,同时也可以给软件测试优化工作提供启发和参考。
1.一种基于微服务架构的应用性能测试方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,在各个测试项目的测试过程中,使用性能监控工具和链路跟踪工具对测试服务器的各项性能指标进行监控,获取各种性能参数。
3.根据权利要求1所述的方法,其特征在于,所述对微服务基础框架进行性能测试,是在微服务基础框架中选择微服务网关进行性能测试,测试内容包括:
4.根据权利要求1所述的方法,其特征在于,所述对应用中的单个微服务进行性能测试,是测试单个微服务的业务逻辑和服务调用的性能情况,测试内容包括:
5.根据权利要求4所述的方法,其特征在于,所述服务调用性能的测试,一方面是测试整个服务调用框架空转的处理能力,涉及数据的传输,数据的序列化、服务的调度;另一方面是测试在大并发的情况下服务调用框架的调度、处理能力。
6.根据权利要求1所述的方法,其特征在于,所述对应用的全链路进行性能测试,是以请求为核心,完全模拟真实请求流量,并进行模拟场景压测,确保各微服务的可用性,以及服务之间交互的连通性、准确性、容错性。
7.根据权利要求1或6所述的方法,其特征在于,所述对应用的全链路进行性能测试,包括:
8.一种基于微服务架构的应用性能测试系统,其特征在于,包括:
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~7中任一项所述方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~7中任一项所述的方法。
