学习

负载测试指南:如何进行测试,工具和更多的需要

驱动是什么负载测试今天在敏捷和DevOps环境?不断增长的份额,数码技术正驱动着企业加快步伐,发布新的服务/功能。同时,应用程序提供丰富的功能改善,更复杂的用户体验。爆炸的应用可靠性和速度是创建更复杂的需要/强度负载测试实践在他们后面。

研究和开发团队面临两个挑战:需要测试更快和更经常。作为回应,他们采用敏捷,DevOps方法。一些问题仍然存在,如何整合负载测试,主要是手动纪律,为短周期?我在哪里可以把自动化支持加速交付目标?

性能异常可以昂贵的解决。他们可以产生重大影响应用程序的代码结构和体系结构的基础。早期的负载测试实践的一个解决方案是最小化技术事件成本或避免一个完整的为用户服务失败。

在开始负载测试流程和最佳实践之前,重要的是要考虑以下你塑造一个有远见的计划:

负载测试是什么?

负载测试是一种非功能性测试的一个子集性能测试。它是用来识别瓶颈通过模拟用户查询在一个应用程序或网站和重现现实应用的用户场景。这能够检测潜在的故障在出版之前——给开发人员的时间使软件更加健壮之前转移到生产环境中。188金宝搏官网登录app

在软件188金宝搏官网登录app工程中,负载测试通常用于客户端和服务器应用程序以及网络,局域网和互联网应用。

为什么负载测试是必要的?

负载测试是开发过程中至关重要的组成部分。它确保应用程序可以处理的数字/本质请求时可能得到生活。评估你的应用程序使用负载测试工具有助于确保你会提供流畅的用户体验,因此,避免消极的用户反馈,最终可能影响你的底线。

负载测试的目标是什么?

一个网站的目标通常是吸引最大量的游客/买家。支持这个,公司留出预算运行广告活动。然而,如果网站或应用经验的问题,特别是当面对大量的交通或请求,没有广告会解决这个问题,可能会随之而来。

负载测试必须寻求理解:

  • 用户应用程序/网站的数量可以支持在任何时候
  • 最大的应用/网站的作战能力
  • 当前的基础设施是否能够充分支持用户与应用程序交互/网站没有打嗝
  • 应用/网站的耐久性受到用户负载峰值

负载测试

  • 最常见的和广泛使用。
  • 适用于正常水平的活动,看看应用程序/网站在正常情况下能正常工作。
  • 确保应用程序能够处理正常水平的活动没有问题。

压力测试

  • 超越负载测试。
  • 强烈的活动水平适用于“压力”应用程序/网站-把它超出其正常操作能力(通常是断裂点)。
  • 理解应用程序失败的方面(它们出现的顺序)。通过测试其断裂点,这个测试显示了如何应用/网站本身将重置后失效

10种方法优化负载测试

  1. 自动化性能测试:自动化性能测试无疑是最好的方式,让它尽可能的高效。自动化可以预定义的时间表显示测试集上运行自己的计划。持续集成(CI)的上下文中,自动化是至关重要的。CI之外,它可以防止回归并增加总体数量的测试你可以做。
  2. 生成虚拟用户:一个现实的负载测试包括虚拟用户,每个正在运行的一个预定义的场景。应用程序不能区分虚拟和真实用户,使这一个有效的方法来识别可能出现的问题(使用虚拟用户,这样实际用户从未遇到这样的错误)。
  3. 设置单元性能测试:在创建负载测试之前,您应该建立单元性能测试,可以做当特定部分的代码已经准备好了。如果你遵循测试驱动的开发(TDD)方法中,您将需要设置性能预期,为每个代码模块创建可执行的测试。
  4. 采用模块化的方法:自动化单元性能测试允许您创建一个单元测试库,相当快。你有许多不同的模块,可以组装成几个测试场景。这允许您生成复杂的交互,测试系统彻底和现实。与此同时,模块化有助于您更好地理解系统作为一个整体。
  5. 做探索性测试:探索性测试是一个方法,规定测试的部分应用程序之前完成。这可以帮助你探索应用/网站没有设置特定的场景。相反,寻找特定的兴趣点测试。测试可以建立勘探进展。
  6. 测试在云:性能测试需要大量的资源和可以意味着常规测试的应用程序/网站并不总是可能的。将云计算集成到您的测试过程是一个解决方案,因为它允许您创建大量没有内部系统基础设施的影响。测试在云中时,负载必须穿过所有的网络层,负载平衡器,防火墙和安全以同样的方式任何用户访问您的应用程序/网站。甚至可以在地理上分布载荷的来源,是一个非常实用的方法来测试实际。
  7. 包括整个团队:最大化的测试工作,您需要遵循构建到您的开发结构的方法尽早并且经常把所有的团队成员。敏捷方法是一个很好的例子,鼓励团队沟通和协作获得灵活性和响应能力。
  8. DevOps的方法:开发和运营团队之间建立真正的伙伴关系使测试更有影响力。时对操作人员更加容易理解编码的基本原则,而在另一个方向更容易为开发人员提供一个合适的产品时要求清晰明确,每个人都朝着一个共同的目标。
  9. 重用场景增加灵活性:使用多种目的是一种有效的一步工作让你做什么。具体的测试工具,像NeoLoad,让你轻松地重用场景。相同的场景用于负载测试可以迁移到生产环境的性能监控。测试场景也可以团队之间共享,大大增加的数量和类型测试你可以做。
  10. 监控kpi:执行相关的性能测试,要定义关键性能指标从一开始,坚持下去。他们将在开发过程中指导和帮助你保持正轨。

执行负载测试的先决条件是什么?

知道的基础设施

准确和可靠的测试的结果,测试人员了解他们的基础设施。否则,只有部分分析可以发生,让你不完整的和不可靠的结果。为了解决这一问题,每个人都需要带适当的文档表,以便在最好的条件下测试工程师可以执行测试。

选择一个测试工具

所有的负载测试工具不平等,也不提供相同的服务。提出正确的问题是很重要的工具之前将它集成到您的测试过程:

  • 该工具的期望和要求是什么?
  • 支持(老和当前技术)是什么?
  • 什么级别的场景的复杂性是可能的吗?
  • 它使连续测试吗?
  • 它可以集成到一个持续交付管道吗?

在与CI / CD管道合作工作

获得一个优势在竞争激烈的环境中,企业需要找到方法来更快地交付软件。188金宝搏官网登录app没有什么比一个自动化的过程更有效的持续集成(CI)或连续部署(CD)。

对于自动化测试是有效的,您需要了解管道架构。没有这些知识,支持自动化测试过程缺乏一致性和可能导致问题。

你应该如何负载测试吗?

负载测试是一个复杂的过程有几个步骤:

  1. 创建一个专门的测试环境
  2. 负载测试场景的定义
  3. 确定负载测试事务:数据准备、体积虚拟用户识别、理解用户的连接设置
  4. 运行测试场景;结果集合
  5. 结果分析和推荐应用/网站的改进

优势

  • 确定故障在软件投入生产188金宝搏官网登录app
  • 提高了系统的可伸缩性
  • 降低系统关闭的风险
  • 削减成本的失败(s)
  • 提供了一个更好的用户体验

缺点

  • 需要编程知识
  • 一般来说,更贵

NeoLoad

描述
企业规模负载测试平台设计为敏捷和DevOps。

优势
与持续交付管道来支持集成性能测试在整个软件生命周期(从组件测试完成系统负载测试)188金宝搏官网登录app

缺点
设计为大型企业,而不是单用户用例。

JMeter

描述
开源的负载测试工具的性能分析和测量各种服务(专注于web应用程序)。

优势
性能测试的开放源码工具。

缺点
不支持的企业。

LoadRunner

描述
现有的桌面图形界面对传统web应用程序负载测试。

优势
分享在您的业务,创建多个用户和连接到项目。

缺点
三个工具必须安装:

  • VuGen(虚拟用户生成器):创建和编辑脚本的工具。
  • 控制器:一个工具来运行和监控测试。
  • 分析:第三个分析测试——类似于NeoLoad专业执照。

LoadNinja

描述
加载图形界面和api。

优势
简单的浏览器加载一代。

缺点
今天相对不成熟的应用。api是有限的,无法达到一半的TLN的web api能做什么。

负载测试的最佳实践DevOps和敏捷

左移位和组件测试——开车之前执行负载测试

的好处是更快,更短的周期内增加测试吗?怎么样可以快速识别性能问题上游在开发过程中,避免复杂的典型实践/昂贵post-sprint修正。负载测试早些时候,并自动连续是正确的方法。

服务水平协议(SLA)的管理

进行负载测试早些时候开始适当的文档的用户故事,其中应该包括所有相关的性能要求(类似于功能测试方法)。这包括识别和文档的服务水平协议(sla)负载测试的结果分析与性能指标如:

  • DNS解析速度
  • 响应时间
  • Time-to-last-byte
  • 系统正常运行时间
  • 技术基础设施的行为

一个好的经验法则在确保性能正确地集成到开发工作是直接把sla在用户故事,作为另一个尺寸在你的“完成”的定义(国防部)。在这种情况下,一个用户故事不能“完成”,如果表现不达标。

NeoLoad允许你设置自定义的sla。这些阈值是用来将负载测试集成到持续集成的过程。将条件通过/失败测试状态,决定是否继续自动构建过程。了解更多关于NeoLoad。

负载测试的组件

在最早阶段验证代码的性能意味着应用程序测试开始之前完成。负载测试就应该运行最战略组件是可用的。目标应该是负载测试web服务和APImicroservices代表应用程序的生命的器官。

NeoLoad旨在使负载测试尽可能简单。它的目的是专业的测试人员和开发人员,并允许测试api /组件在开发周期的早期阶段。

服务虚拟化现实组件负载测试

有一个相互依存的交互应用程序的组件。孤立的负载测试每个组件的排除装配系统的性能验证。因此,组件测试方法提供了两个选择:

  • 等待那些消耗的组件的可用性负载测试
  • 实现服务虚拟化组件没有为了使可用负载测试更现实、更快

NeoLoad接口服务虚拟化工具,如Parasoft和SpectoLabs。想了解更多吗?看看我们的白皮书,使用NeoLoad Microservices, API和组件测试。

负载测试和非回归性能测试的自动化

当单位负载测试定义的组件,开发人员可以启动自动与持续集成服务器(例如,在构建)。建立在构建;这些测试可以检查组件的性能趋势随着时间的推移;这是一个非回归性能测试。

使用测试的通过/失败状态,持续集成服务器可以自动决定是否集成过程可以继续,或如果它必须停止立即问题修正。

由于状态的定义负载测试sla密切相关,有必要准确地定义它们能够阻止或授权的下一步构建过程。

如何加快“test-analysis-scenario更新”为组装应用程序的负载测试周期吗?

当应用程序的组件组装、集成测试比单位要复杂得多负载测试。在敏捷环境,重要的是要采取正确的策略,因此性能测试没有在开发周期的瓶颈。

建立一个有效的策略来对冲性能风险

不可能100%的应用程序进行测试。因此,至关重要的是定义风险的重点领域负载测试深度和强度。在实践中,最成功的10 - 15%的测试场景将确定75 - 90%的主要问题。

适当的风险诊断,必须有足够的知识的应用程序的体系结构。测试人员,应用程序经理,架构师必须紧密合作,以确保这些知识是共享的。

工具和实践负责加速复杂的负载测试场景的创建

  • 灰盒测试应用程序的最重要的组件
  • 自动化variabilization、相关性和随机化
  • 功能测试场景(例如,硒)加快建立负载测试

使用NeoLoad,您可以导入功能为负载测试期间使用Selenium测试场景。所有你想了解NeoLoad的功能设计复杂的场景。

成分的有效负载测试分析

敏捷开发者需要理解为迅速解决性能问题的根源。诊断质量和分析效率是至关重要的负载测试贡献的需求帮助建立信心。

  • 可操作的数据合成(例如,他们是否能承受决策支持)
  • 对角色的理解/技能的个人使用负载测试报告
  • 使用APM /分析工具来识别的代码负责性能回归

NeoLoad提供了测试分析能力允许您识别性能问题根源,留下更多的时间来快速解决。阅读更多关于测试结果分析。

自动更新您的负载测试场景

更新负载测试脚本通常可以表示> 50%的团队的努力。随着应用的发展,常常需要完全重写测试场景。下面是如何加速,甚至自动化,这种维护活动几乎全部:

  • 负载测试工具用于检测代码修改;改变测试的一部分
  • 依赖于功能测试维护完全自动化更新

使用NeoLoad用户路径的自动更新功能,减少时间维护脚本高达90%。更多关于NeoLoad用户路径的自动更新。

集成DevOps的负载测试工具链连续测试

协同负载测试

应用程序的性能是一个关心敏捷团队的所有成员,不仅仅是那些执行负载测试服务。重要的是,你的测试结果是可以每个人,。

  • 每个团队成员必须能够查阅测试报告
  • 可以实时监控绩效指标在测试执行(年底前负载测试,可以持续数小时)。开发人员可以开始问题修正。

NeoLoad,所有团队一起工作负载测试。结果共享在一个集中的数据库与实时监测结果在测试。了解更多关于协作能力

负载测试平台的交互DevOps工具链

使快速、高效的敏捷和加速度DevOps流程,需要你的集成负载测试工具DevOps链中的其他解决方案:

  • 纳入持续集成服务器自动化负载测试
  • 同化与功能测试工具来衡量用户体验/自动化场景维护
  • 联盟APM工具来分析测试在代码级别
  • 要了解更多,请阅读我们的文章如何选择一个负载测试工具

NeoLoad提供现成的集成工具链相互作用促进成功。您可以创建定制的集成NeoLoad的API

基本生产性能监控信息最有用的负载测试

绩效反馈收集生产过程中使用您的APM工具负载测试方法细化数据都是非常宝贵的。有了这一观点,您可以:

  • 评估负载水平观察生产适应测试策略、再现现实的条件
  • 实际测量条件sla的服务水平测试
  • 在应用程序中识别风险区域

负载测试性能工程

的艺术负载测试继续发展传统性能的工程实践,对应用程序性能的责任是今天仍然留给少数专家。这种演变,由业务基于他们不同性能测试相应哲学/敏捷/ DevOps收养,代表了一个深刻的转变方法,技巧和工具使用的测试人员。的核心,传统的performance tester的技能需要扩张:

  • 如何理解知识和评估应用程序的架构
  • 的意识如何最好地结合自动化工具链
  • 的沟通和协作技巧进步成为一个可信的性能与他人合作伙伴负责的表现

最后,“新”性能工程师成为保护器性能在整个项目的生命周期。他们的主要职责包括:

  • 彻底的风险分析的测试策略创建后执行
  • 负载测试自动化启用
  • 支持开发人员创建一个单元负载测试场景
  • 在生产过程中监测战略实施;建立一个事故报告的过程

尝试NeoLoad,最自动化性能测试平台为企业组织不断测试api的应用程序。

Baidu
map