您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    负载测试的端到端指南
    时间:2021-08-07 12:01 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    【51CTO.com快译】众所周知,功用性测试通常着眼于单个用户关于目的运用顺序的基本运用体验。而对成百上千的用户同时拜访目的站点的场景,特别是那些面向群众效劳的Web运用,开发人员势必需求在运用上线之前,模拟真实的并发拜访状况,并经过思索和停止负载测试,为任何能够发作的成绩与不测,做好充沛的预备。

    在本指南中,我将经过如下四个阶段,向您引见负载测试进程中的相关知识。

    方案:为何要测试?测试什么?

    编写测试脚本:如何测试?

    执行:针对运用顺序运转测试脚本。

    剖析和报告:发现了什么?需求修复什么?

    方案负载测试

    在方案阶段,团队集聚到一同,讨论并确定包括目的、范围、所需资源、以及测试场景等方面的内容。此阶段的可交付成果为测试方案。不过,它在方式上能否正式,则取决于团队的实践要求。值得留意的是,任何测试方案都是一项团队活动,我们需求从一切利益相关者(即:参与测试或能够受测试影响的任何人)处获取建议。

    要求

    我们需求搞清楚为什么要做负载测试?该成绩看似复杂,但是不同的利益相关者能够会给出不同的测试场景需求。因此为了达成分歧,我们最好将负载测试的目的表述为非功用性的需求 (nonfunctional requirements,NFR),以便定义运用顺序的希冀形状,并且可以包括由团队决议的功用阈值。例如:基于照应时间的要求,已注册的用户登录用时不应超过3秒(即到达90%的照应时间)。可见,好的需求往往可以满足:SMART(详细的Specific、可权衡的Measurable、已商定的Agreed Upon、可完成的Realistic、以及及时的Timely)等特点。而且在实际中,我们可以从如下方面停止把控。

    范围

    商定了负载测试的共同目的,我们不但可以增加待测内容的范围,还能确保每个成员都清楚有哪些部分不需求被测试。

    负载测试的端到端指南

    先决条件

    在展开测试之前,我们需求思索包括:参与的人数、执行测试所需的时间、以及测试数据的环境要求等多方面的资源与先决条件。虽然我们并不总是需求一个独自的测试环境,来停止负载测试,但是假设需求的话,应该事前知会DevOps等团队。

    负载建模

    负载模型可以被用来描画模拟负载的一组特征。例如:用户最常拜访的是哪些页面、哪个效劳部分、最长拜访的时段与天文位置等方面。您可以将这些要素植入测试脚本中,以愈加真实地模拟出,能够对运用顺序产生的流量和影响。

    效劳器监控

    在测试进程中,我们往往需求经过脚本,来监控后台效劳器上各类警报与日志。假设您的负载测试工具检测到清楚的功用下降,则需求可以经过关联效劳器上的相应信息,来予以勘察。不过,值得留意的是,任何类型的监控都会添加现有效劳资源的开支,因此整个团队应事前确定好需求监控和跟踪的目的与信息。

    测试场景

    待测试和模拟的场景设定,往往可以协助我们愈加准确地获取网站与运用的真实功用。例如:我们既可以创立一个典型任务日的负载配置文件,又可以模拟大促时的峰值负载配置文件,还可以模拟某个消费出现中缀时的场景。不同的测试场景可以为我们采集到的诸如:继续时间、并发用户数、央求数、激增周期(即:运用从0个用户上升到最大用户量的速度)、以及“峰谷”负载(即:在整个测试进程中,每秒央求数的波动)等,可供剖析的参数数据。

    在设计负载测试方案时,您既可以包含多条用户故事线,又可以运用各种Trello卡片(译者注:一种卡片式义务管理工具)。工具的输入格式并不重要;重要的是每个成员都可以从中解读出分歧性、标准化的测试结果。

    编写测试脚本

    有了在前面方案阶段的各项预备,如今我们便可以末尾经过编写负载测试脚本,来为测试的实施做好预备了。

    工具的选择

    负载测试的端到端指南

    目前,市场上有着许多负载测试类工具。出于对各种在用工具、以及财务和供应商等方面的考量,我们不一定可以自在地按需选择负载测试工具,但是如下方面还是值得我们仔细思索的:

    资源和成本

    全体置办的价钱,及其定价模型能否允许用户按需增减运用量?

    实践需求自行构建,还是应当购置端到端的负载测试方案?

    团队拥有哪些技术技艺与工具阅历?谁将担任停止测试?

    特点

    负载测试工具能否可以支持运用顺序所运用的协议和技术?

    测试工具与对应脚本言语的学习曲线能否“峻峭”?

    测试工具能否可以让多人轻松地协作,并处置同一个脚本?

    能否与测试栈中的其他可用于测试管理、测试结果剖析、效劳器监控、团队沟通等工具相集成?

    测试工具能否被添加到CI/CD管道中?

    该工具能否经过提供复杂的办法,来设置功用阈值或效劳等级目的(SLO)?

    测试结果能否显示在可用的报告中,以及能否与现有的数据可视化工具相集成?

    支持

    假设出现成绩,客户支持能否需求经过额外付费才能获取?

    在线协助文档能否够用?

    能否拥有阅历分享的用户社区?

    扩展负载测试

    单个负载生成器每秒可模拟多少个虚拟用户或央求?

    能否处置由测试所产生的大数据量?

    能否依据用户的位置特征,从不同的天文位置实施测试?

    能否允许用户从云端生成负载?

    鉴于上述需求,我选定k6(https://k6.io/)作为开发负载测试脚本的工具。总的说来,k6有着如下三方面的优势:

    当然,下面将要讨论到的各个步骤也适用于其他工具。而且,我剧烈建议您运用多种工具,自行停止概念验证,以找到最适宜特定状况和测试场景的工具。

    安装和设置

    假设您运用的是Mac系统,那么便可以运用Brew来轻松地安装k6,即:从终端处运转--brew install k6,就可以在几秒钟之内搞定。当然,假设您运用的是其他操作系统的话,请经过链接--https://k6.io/docs/getting-started/installation/,来获取详细的安装阐明。

    一个基本的k6测试脚本

    如下JavaScript代码段展现了最基本的k6测试脚本:

    import http from ‘k6/http’; 

      

    export default function () { 

      

      let response = http.get(‘https://test.k6.io’); 

      

    (责任编辑:admin)