• 什么是性能测试?


    什么是性能测试?

         压力测试软件性能测试是一种测试类型,旨在确定系统的性能以衡量性能,验证或验证系统的质量属性,例如在各种负载条件下的响应性,速度,可伸缩性,稳定性。在混合负载条件下对系统进行了测试,并检查了系统在各种工作负载下响应所需的时间。软件性能测试涉及对被测应用程序的测试,以确保应用程序在各种负载条件下都能按预期工作。性能测试的目标不仅是发现系统中的错误,而且还要消除系统中的性能瓶颈

    为什么要进行性能测试?

       投入市场之前,应在各种负载条件下对软件系统进行速度,稳定性和可伸缩性测试。如果系统未进行性能测试就上线,可能会导致问题,例如运行速度缓慢,同时有多个用户访问系统,可用性差,这可能会导致不良声誉,并直接影响预期的销售目标。性能测试包含一系列不同的测试,这些测试可以分析系统的各个方面。性能测试将告诉您在上线之前需要解决的问题(主要是在各种负载条件下面临的问题)。

    性能测试的类型

    1)负载测试:
          负载测试是一种性能测试,用于检查系统并不断增加系统负载,直到负载达到其阈值为止。在这里,增加负载意味着增加并发用户,事务和检查被测应用程序行为的数量。通常在受控环境下进行以区分两个不同的系统。它也被称为”耐力测试”和“体积测试”。负载测试的主要目的是监视系统在重负载下运行良好时的响应时间和应用程序的保持能力。负载测试属于“;非功能性测试”,它旨在测试软件应用程序的非功能性需求。
    执行负载测试以确保可以承受被测应用程序多少负载。仅在执行指定的测试用例且分配的时间没有任何错误的情况下,负载测试才能成功执行。
    负载测试的简单示例:

    • 通过发送大量作业来测试打印机。

    • 编辑一个非常大的文档以测试文字处理器。

    • 连续读写数据到硬盘。

    • 在服务器上同时运行多个应用程序。

    • 通过访问数千个邮箱来测试邮件服务器

    • 如果是零容量测试,并且系统负载为零。

    2)压力测试:

          压力测试是一种性能测试类型,用于在硬件资源(例如CPU,内存,磁盘空间等)不足时检查软件的稳定性。
                “确定或验证应用程序超出正常或峰值负载条件时的行为。”

          压力测试是一种负面测试,其中我们向软件加载大量并发用户/进程,而系统硬件资源无法处理这些并发用户/进程。此测试也称为疲劳测试,该测试应通过对应用程序的带宽容量进行测试来捕获应用程序的稳定性。
    压力测试背后的主要思想是确定系统故障并密切关注系统如何正常恢复恢复,这种质量称为可恢复性。压力测试属于“;非功能测试;”,它旨在测试软件应用程序的非功能需求。该测试将在启动之前在受控环境下进行,以便我们可以准确地捕获大多数不稳定情况下的系统行为

    3)峰值测试:


          峰值测试是压力测试的子集。当被测系统承受的工作负载模型和负载量在短时间内反复超出预期的生产操作时,将执行峰值测试以验证性能特征。

    4)耐力测试:


          耐力测试是非功能性测试。耐久性测试涉及在很长一段时间内测试具有预期负载量的系统,以发现系统的行为。让我们举一个例子,其中系统被设计为可以工作3个小时,但是同一系统可以忍受6个小时,以检查系统的持久能力。执行最常见的测试用例以检查系统的行为,例如内存泄漏或系统故障或随机行为。有时,耐力测试也称为浸泡测试。

    5)可伸缩性测试:


         可伸缩性测试是非功能性测试的类型,它是对软件应用程序的测试,用于确定其可扩展性的功能,例如其所支持的用户负载,事务数量,数据量等任何非功能性功能。如果进行此测试,其主要目的是了解系统在哪个峰值处阻止更多缩放。

    6)体积测试:

          容量测试是非功能性测试,是指使用大量要处理的数据来测试软件应用程序,以检查应用程序的效率。该测试的主要目标是监视不同数据库容量下应用程序的性能。
    顶级性能测试工具:

    • WebLOAD

    • LoadRunner

    • Apache JMeter

    • NeoLoad

    • LoadUI

    • OpenSTA

    • WAPT

    • LoadImpact

    • Loadster

    • Httperf

    • Rational Performance Tester

    • QEngine (ManageEngine)

    • Testing Anywhere

    • CloudTest

    • Loadstorm

    性能测试流程:


          以下各节讨论在成功的性能测试项目中最常发生的七个活动。下图是通用的性能测试过程

    1)确定您的测试环境–

          进行适当的需求研究并分析测试目标及其目的。还要确定测试范围以及测试启动清单。确定性能测试的逻辑和物理生产体系结构,确定启动性能测试所需的软件,硬件和网络配置。比较测试环境和生产环境,同时确定测试环境。解决与环境有关的问题(如果有),分析是否需要其他工具来进行性能测试。此步骤还有助于确定测试人员在进行性能测试时可能遇到的挑战。

    2)确定验收标准–

          确定应用程序所需的性能特征,例如响应时间,吞吐量和资源利用率。
    3)计划和设计性能测试–

          计划和设计性能测试涉及确定关键的使用方案,确定用户之间的适当可变性,标识和生成测试数据以及指定要收集的指标。最终,这些项目将为工作负载和工作负载配置文件提供基础。此阶段的输出是测试执行准备就绪,所有必需的资源,工具和测试数据准备就绪的前提条件。
    4)配置测试环境–

         在执行之前,使用概念性策略,可用工具,设计好的测试以及测试环境进行准备。此阶段的输出是配置的负载生成环境和资源监视工具。
    5)实施测试设计–

          根据测试计划和设计创建您的性能测试。
    6)执行测试–

    • 收集和分析数据。

    • 问题调查,例如瓶颈(内存,磁盘,处理器,进程,缓存,网络等),资源使用情况(例如内存,CPU,网络等)

    • 生成包含应用程序所有性能属性的性能分析报告。

    • 根据分析准备推荐报告。

    • 修复错误并实施建议后,对从客户端收到的新版本重复上述测试

    7)分析结果,报告并重新测试

           合并,分析和共享测试结果。
           根据测试报告,重新安排测试的优先级并重新执行相同的操作。如果在指定的度量标准限制内有任何特定的测试结果,并且所有结果都在阈值限制之间,则在特定配置上对相同方案的测试将完成。
    常见的性能问题:

           在应用程序的软件测试中,速度是重要的属性之一。用户将不乐意使用缓慢的系统。性能测试发现性能瓶颈和缺陷,以保持用户的兴趣和注意力。这是在软件系统中观察到的最常见的性能问题列表:

    • 响应时间短

    • 加载时间长

    • 瓶颈

    • 可伸缩性差

    • 软件配置问题(针对Web服务器,负载平衡器,数据库)

    • 磁盘使用情况

    • 操作系统限制

    • 网络配置不佳

    • 内存利用率

    • CPU利用率

    • 硬件资源不足

    结论:
         于软件系统的成功而言,性能测试在软件测试生命周期中起着关键作用。它确定了客户的满意度,并确定了产品故障的风险。因此,在进入市场之前进行性能测试非常重要。

  • 相关阅读:
    hadoop-2.6.0-src源码导入Eclipse 转载
    sqoop1.4.6+hadoop2.6.0 转载
    eclipse构建maven+scala+spark工程 转载
    eclipse连hadoop2.x运行wordcount 转载
    Thinking in BigData 系列
    hadoop 安装教程 转载
    JAVA泛型详解2 转载
    Java泛型详解 转载
    HttpClient 版本变化 转载
    HttpClient 与 HtmlParser 简介 转载
  • 原文地址:https://www.cnblogs.com/lixiaoyang/p/11584747.html
Copyright © 2020-2023  润新知