如何分析性能测试需求?

简介: 为了避免某个可用区由于网络硬盘等原因损坏导致服务不可用,跨可用区的服务部署是一种常见的容灾手段。

昨天帮星球一位同学做了面试求职分析,沟通过程中我问了他一个问题:如何分析性能需求?得到的回答在我看来是存在一些不足的,考虑的不够完善。


和很多测试同学交流时,发现大家对性能测试基础的知识比较欠缺,导致在实际的工作实践中遇到了很多不好理解的难题。因此重新分享这篇老文,略作修改。


这篇文章,以一个案例说明,如何分析性能测试需求。


有同学在微信群问了一个问题:为什么800并发压测,服务器还没有报错?当时群里其他同学提了很多观点,比如:


  • 并发不够,加并发!
  • 要不要考虑首页进来多少人?
  • 是不是有限流,流量都被拦截了?
  • 我看CPU都打满了,压测要关注硬件指标!
  • 是不是你压测机配置比较低,无法发起这么多并发。


林林总总感觉说了很多,又感觉都没说到位。正好之前工作中遇到一个性能需求,说来也蛮有意思的,需求大致是这样:


网关要验证在跨可用区情况下,支撑20W的TPS。就这一句话,我当时有点诧异(以我对公司目前业务及架构的理解,根本不需要20W的TPS)。


那么问题来了:如果是你,听到这样“一句话需求”,你会如何分析,然后制定压测方案呢?


下面我会从十个部分来围绕性能需求分析展开描述。


1、需求评估分析


先来聊聊如何分析这个性能需求,关于性能需求分析,我总结下面几点roadmap:


640.png


接下来,按照上述思维导图,我会通过几个不同问题的解答,来描述我的分析思路。


谁提的需求,目的是什么?


研发同学提了一个性能测试需求:网关要验证在跨可用区情况下,支撑20W的TPS。


关键字提取:流量网关、跨可用区、20W的TPS


2、什么是流量网关?


简单来说,流量网关就是所有请求的流量入口,承载了所有用户请求。如下图所示:


640.png


3、如何理解跨可用区?


一般来说,云服务的可用区,可以理解为同一个机房的不同虚拟机集群。


为了避免某个可用区由于网络硬盘等原因损坏导致服务不可用,跨可用区的服务部署是一种常见的容灾手段。


4、流量网关有什么特点?


负载均衡:跨多个服务的动态负载均衡;


身份验证:即用户的身份鉴权,登录态、黑白名单等;


限流限速:基于速率、请求数、并发等维度进行流控;


其他特点:加解密、A/B测试、灰度发布、监控告警、服务治理等功能;


5、压测流量网关有什么难点?


网关是用户请求流量的入口,因此访问压力会很大,即我们常说的QPS很高。那么在压测时,要考虑下面几点:


  • 需要能支撑发起很多并发请求的工具;
  • 网关服务的应用需要部署集群,来应对高并发;
  • 由于只是跨可用区,一般云服务可控制在0.5ms以内;


6、在什么场景下为谁提供服务?


上面介绍了流量网关的特点,这里的场景指的是业务场景或者说测试场景,即:验证网关的哪些功能场景下的性能表现。上述的网关特点中,一般需要压测验证的场景有鉴权、加解密、身份验证。


7、目前系统架构调用关系是怎样的?


做性能测试,最怕的是不了解系统架构就开始无脑高并发!


了解系统架构及服务间的调用关系,才能设计合理的压测场景,准备对应的脚本和数据。


8、如何搭建满足需求的性能测试环境?


根据上面的分析,跨可用区的网关应用集群,在搭建环境时,需要考虑的有下述几点:


  • 集群均匀分布在不同可用区;
  • 网关应用的单机配置(比如8C16G);
  • 虚拟机型保持一致(内核版本、计算型/IO型);
  • 需要绑定专门的域名,SLB和带宽需要大于预期的指标;
  • 压测工具需要尽可能的支撑更高的并发流量发起(比如Wrk);
  • 因为涉及到鉴权和身份验证,需要提前预热相关的auth、token数据到缓存;


9、如何评估性能需求的技术指标是否合理?


上面提到了性能指标是20W的TPS,那这个指标是否合理呢?首先,性能需求的技术指标是否合理,要结合实际的业务场景和目前峰值流量及未来增长趋势来综合评估


假设流量网关被所有业务接入,业务对RT比较敏感,业务请求RT的目标是10ms;目前的线上峰值QPS是5W-QPS,预计未来半年增长到10W的QPS,那这个时候,如何评估技术指标,或者说设定合理的技术指标呢?我们可以结合实际情况讨论,得到下面这样的一个技术指标:


ART&99RT:≤2ms;


安全水位下的QPS:≥10W;


TPS:统计核心业务的核心链路当前吞吐能力,做聚合计算,保持一定上浮;


当然,上述的指标有个前提:业务不接受有损。


如果业务接受有损,那么性能的技术指标无须这么苛刻(因为可以限流降级);


10、性能测试方案


说到了性能测试方案,我偶然翻出了19年6月份画的一个性能测试流程职责说明表,见下图:


640.png


聊到这里,该如何设计性能测试方案呢?答案已经在上述的需求分析里了。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
6天前
|
测试技术 数据安全/隐私保护
深入理解与应用软件测试中的边界值分析法
【4月更文挑战第23天】在软件测试的诸多技术中,边界值分析法因其简洁性和高效性而备受青睐。本文旨在探讨边界值分析法的核心原理及其在实际测试场景中的应用。通过对边界条件进行系统的识别、分类和测试,该方法能够有效地发现软件缺陷。我们将详细讨论如何确定边界值,设计测试用例,以及如何处理复杂数据类型的边界情况。此外,文章还将展示通过案例研究来验证边界值分析法在提升测试覆盖率和发现潜在错误方面的实际效益。
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率与准确性的策略分析
【4月更文挑战第30天】在快速发展的数字时代,软件已成为支撑现代社会运行的核心。随着软件系统的日益复杂化,确保其质量与稳定性显得尤为重要。软件测试作为保障软件质量的关键步骤,它的效率和准确性直接影响着产品的上市时间和用户体验。本文将探讨如何通过采用自动化测试工具、实施持续集成(CI)与持续交付(CD)流程、利用人工智能(AI)技术以及加强测试人员的专业培训等策略来提升软件测试的效率与准确性。
|
4天前
|
测试技术
深入理解与应用软件测试中的边界值分析法
【5月更文挑战第16天】 在追求软件产品质量的道路上,边界值分析法(Boundary Value Analysis, BVA)作为一种高效的测试设计技术,因其独特的关注点和较高的缺陷检出率而备受青睐。本文将探讨BVA的核心概念、操作流程及其在多变的测试场景中的应用优势。通过深入剖析边界值分析法的原理和执行步骤,揭示其在发现潜藏于输入、输出范围边界的软件缺陷方面的有效性,并讨论如何结合其他测试方法以优化测试覆盖率。文章还将展示通过案例分析和统计数据支撑的BVA应用效果,以及在实践中应注意的问题和可能的改进方向。
6 0
|
6天前
|
测试技术
深入理解与应用软件测试中的边界值分析法
【5月更文挑战第14天】 在软件开发的生命周期中,确保代码质量和功能正确性是至关重要的。本文将深入探讨一种高效的软件测试技术——边界值分析法(Boundary Value Analysis, BVA)。不同于通常的摘要形式,此部分将直接引导读者了解BVA的核心原理、应用方法及其在实际工作中的重要性。通过分析边界条件引发的缺陷案例,我们揭示了如何利用BVA提高测试覆盖率,优化测试用例设计,从而提升软件测试的有效性和效率。
|
6天前
|
机器学习/深度学习 人工智能 数据管理
深入分析自动化测试中的挑战与机遇
【5月更文挑战第9天】随着软件行业的迅速发展,自动化测试已经成为确保软件质量、提高开发效率的关键手段。然而,在实施自动化测试过程中,企业和测试人员面临着众多挑战,包括测试脚本的维护问题、测试数据管理、与持续集成/持续部署(CI/CD)流程的融合等。本文将探讨这些挑战,并分析在这些挑战背后所隐藏的机遇,比如测试自动化工具的创新使用、人工智能(AI)在测试中的应用以及测试策略的优化。通过案例分析和最新行业趋势的讨论,我们旨在为读者提供对自动化测试未来发展的深刻见解。
|
6天前
|
安全 数据挖掘 测试技术
深入探究软件测试中的风险分析与管理
【5月更文挑战第7天】 在软件开发生命周期中,风险分析与管理是确保产品质量和项目成功的关键步骤。本文将探讨软件测试过程中如何有效进行风险评估、分类及采取相应的缓解措施。文章首先介绍了风险管理的重要性,然后详细阐述了风险识别的技术和工具,接着分析了如何制定和实施风险应对策略。最后,通过案例研究展示了一个结构化风险分析流程的实施效果。
|
6天前
|
机器学习/深度学习 人工智能 算法
深入分析自动化测试中AI驱动的测试用例生成
【5月更文挑战第4天】随着人工智能(AI)技术的飞速发展,其在软件测试领域的应用也日益广泛。特别是在自动化测试过程中,AI技术能够显著提高测试用例的生成效率和质量。本文将探讨AI在自动化测试用例生成中的应用原理、优势以及面临的挑战,并展示通过AI技术优化测试流程的实际案例。
61 8
|
6天前
|
测试技术
深入理解软件测试中的边界值分析法
【5月更文挑战第2天】 在软件测试领域,边界值分析是一种高效且实用的测试设计技术。本文将探讨边界值分析法的原理、实施步骤以及其在各种测试场景中的应用。通过对边界条件进行精确的测试,可以揭示那些可能被忽视的错误,从而提高软件产品的质量。文中还将讨论如何结合其他测试方法来优化边界值分析,确保测试过程更加全面和高效。
|
6天前
|
算法 异构计算
基于直方图的图像曝光量分析FPGA实现,包含tb测试文件和MATLAB辅助验证
该内容包括了算法的运行效果展示、软件版本信息、理论概述和核心程序代码。在正常图像中,`checkb`位于`f192b`和`f250b`之间,而多度曝光图像中`checkb`超出此范围,判断为曝光过度。使用的软件为Vivado 2019.2和MATLAB 2022a。理论依据未详细给出,但提及主要方法。提供的Verilog代码段用于处理图像数据,包括读取文件、时钟控制及图像histogram计算等,其中模块`im_hist`似乎是关键部分。
|
6天前
|
前端开发 JavaScript 测试技术
深入探索自动化测试框架:Selenium与Appium的对比分析
【4月更文挑战第29天】 在快速迭代的软件发展环境中,自动化测试已成为确保软件质量和加速产品上市的关键步骤。本文将重点探讨两种广泛使用的自动化测试框架——Selenium和Appium,通过对比它们的核心特性、适用场景及执行效率,为软件开发和测试团队提供选择指南。文章不仅分析了各自的技术架构和脚本语言支持,还讨论了它们在处理Web应用和移动应用测试时的优缺点,旨在帮助读者根据项目需求做出更加明智的选择。

热门文章

最新文章