博客

执行性能测试

作者:

188金宝搏app苹果下载软件Tricentis员工

各种各样的贡献者

日期:2021年4月19日

每一个性能测试活动是映射在以下流程:

性能测试工作流图

性能测试的目标需要适应取决于结果。性能测试和调优之间的工程师将分析这些结果。最终,一个性能测试的主要目标是识别瓶颈并提供解决方案。下面是三个关键步骤在执行一个有效的性能测试。

性能测试设计

从历史上看,设计阶段被称为“脚本”,但新技术使这一阶段今天复杂得多。

创建性能测试本质上是一个软件开发项目的脚本。188金宝搏官网登录app有时,自动脚本生成的记录是错误地解释为脚本创建的“整体”的过程,但这仅仅是开始。只有在有限的选择情况下会自动生成提供脚本完成。在最简单的情况下,这只是第一步。脚本需要相关(从服务器获取动态变量)和参数化(不同的用户使用不同的数据)。这些操作容易出错,因为更改直接通信流。任何错误在这一点上是非常危险的,因为这些类型的错误通常不会发生在现实世界中,用户通过用户与系统交互的接口或API调用。

AJAX应用程序,WebSocket,定期轮询技术生成请求。这些请求不是由用户交互的图形用户界面。相反,许多电话是由一个或多个单独页面组件生成的。例如,在一个电子商务的网站,总是有一个直接链接到用户购物车的页面。这个链接需要显示用户产品的具体数量目前在他或她的篮子里。188金宝搏官网app注册在大多数情况下,产品的数量显示通过轮询请求每五秒)(一个技术调用188金宝搏官网app注册执行。这种类型的调用需要理解性能工程师。所有“轮询”机制需要从用户的业务步骤旅程并放在一个专门的线程。

另一个很好的例子是自适应的流媒体技术。许多测试人员经常依赖记录/回放的方法。不幸的是,这种类型的逻辑不会任何测试策略中获益。目标是符合现实的负载下的程序的行为,而不是验证缓存。重放回记录请求没有相关性只会调用应用程序的缓存:缓存web服务器和应用。

一个额外的设计步骤是数据集的重要元素。使用少量的数据将产生相同的数据库查询。正如前面提到的,一个负载测试的重点是没有资格数据库缓存的效率或只是产生死锁。

创建脚本后,它应该为一个或多个用户评价,并与不同的数据。不要认为系统工作正常执行脚本时没有错误。相反,确保应用工作负载做什么应该和捕获/日志发现的所有错误。它可以直接通过分析服务器响应,或者间接的情况下这是不可能的。它也可以通过分析完成应用程序日志或数据库存在的特定条目。

许多工具提供一些方法来验证工作负载和检查错误,但一个完整的理解到底发生了什么是必要的。188金宝搏app苹果下载软件Tricentis NeoLoad允许用户创建断言确保服务器的响应是“正常的”(例如,按预期内容)。例如,接受“内存溢出”错误在浏览器请求页面而不是报告将会成为意想不到的内容。重要的是捕获这些内容错误的帮助下断言。

NeoLoad和许多负载测试解决方案将自动捕获HTTP web脚本错误(例如,500内部服务器错误)。如果只依赖默认的诊断,它不能被验证,预计做商业交易。

新的网页设计倾向于避免HTTP错误并显示异常的应用程序中的错误。如果检查仅限于检查HTTP代码,它不能确定如果场景实现应用程序的预期行为。

性能测试执行

在执行实际的测试,考虑这些挑战:

负载测试架构

主要目标是负载测试应用程序,而不是负载测试软件。188金宝搏官网登录app大多数负载测试解决方案有几个组件:

  • 控制器:协调测试,将结果数据存储:响应时间、冲击(s)、吞吐量、监测指标、错误等。
  • 负载生成器:运行负载测试脚本与应用程序。该组件将需要处理数百并发虚拟用户。

为了避免被负载测试体系结构的限制,需要有足够的:

  • 负载生成器实现预期的负载
  • 负载生成器和应用程序之间的网络带宽。分级负载生成器是一个至关重要的步骤,定义虚拟用户的数量(VUs开头)负载生成器可以处理。执行的这个数字的vu取决于许多方面:
  • 与应用程序相关的测试技术和复杂性
  • 网络连接能力

开始一个“快速启动”(或“可扩展性”)测试应用程序的一个负载生成器将帮助确定一台机器的最大容量。执行后确定的数量的vu单个负载生成器可以处理(执行和测试的数量的vu),很容易计算发电机运行测试所需的数量。确定负载生成器的负荷限制,它要求你关注其行为在加速测试负载,具体来说:

  • CPU
  • 内存
  • 吞吐量
  • 命中率
  • 虚拟用户负载

第一个重要断裂点的CPU、内存、吞吐量和/或命中率指标代表负载生成器的性能极限。这一点必须与执行的数量的vu生成。严重的问题可能出现的负载生成器如果推超出这个数量的虚拟用户。

20 - 30%的安全边际的分级建议限制负载生成器的沉重的负载测试。同样重要的是要避免使用控制器机负载生成器。控制器的核心测试。它总是更好的失去一个比一个控制器负载生成器(整个测试结果)。

有效的测试监控

有有限的时间然后继续监控运行不同的测试。时间不应该浪费通过查看测试数据在测试运行时。如果响应时间开始增加web服务器由于饱和,停止测试,开始优化web服务器。几乎每次测试是开始一个新的应用程序和/或环境,大多数的层(app / web服务器)是没有配置或调整应用程序的负载。这意味着每个测试代表环境性能工程师的关注需要适当调整环境。

每个新测试使用一个新的数据集也需要注意。例如,停止测试时如果每个测试用户生成错误日志到应用程序中。另一方面,如果有一个好的理解的应用程序和环境,测试自动化可以开始不关注应用程序的行为。一旦测试完成,分析结果。

测试分析

分析负载测试结果本身可以是一份工作。下面是综合知识要求:

  • 负载测试设计
  • 技术层参与应用程序
  • 现代建筑

尽管这篇文章不深入研究分析的结果,这里有一些建议报告项目的性能测试结果。

几乎所有的负载测试解决方案允许创建复杂的关联数据的图表。性能工程师的第一反应会在报告中显示所有的图表。

在创建这个报告之前,重要的是要理解角色和技术技能的人验证或阅读这份报告。

基于这些特性,可以创建不同类型的报告。例如:

  • 开发人员的技术报告和操作只显示重要的图表
  • 决策者报告给一个非常简单的应用程序的性能

性能测试报告的主要目的是给一个明确的状态对应用程序的性能。结果报告应该简化,关注这三个主题:

  • 响应时间
  • 可用性
  • 可伸缩性

图形表示(例如,三个饼图)使结果为决策者更容易理解。

最终,性能报告需要强调如果性能要求(在性能策略阶段确定)验证。

下一个步骤

这是本系列的最后一篇文章包括四部分,侧重于实际指导现代性能测试:

第1部分- - - - - -一个实际的介绍性能测试

第2部分- - - - - -建立一个性能测试策略

第3部分- - - - - -建模性能测试

第4部分-执行性能测试

作者:

188金宝搏app苹果下载软件Tricentis员工

各种各样的贡献者

日期:2021年4月19日
Baidu
map