zoukankan      html  css  js  c++  java
  • 性能03篇-性能的分类和基本流程

    性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,以优化软件,最后祈祷优化系统的目的。

    1)评估系统的能力:测试中得到的负荷和响应时长数据可以被用于验证所计划的模型的能力,并帮助做出决策。

    2)识别体系中的弱点:受控的负荷可以被增加到一个极端的水平并突破它,从而修复体系的瓶颈或薄弱的地方。

    3)系统调优:重复运行测试,验证调整系统的获得是否得到了预期的结果,从而改进性能。

    4)检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄漏引起的失败,揭示程序中隐含的问题或冲突。

    5)验证稳定性、可靠性:在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性的唯一方法。

    性能测试的常见分类:

    1)负载测试:负载测试是指通过测试系统在资源超负荷情况下的表现,来发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承受不同的工作量。以评测和评估测试对象在不同工作量条件下的性能行为,以及维持正常运行的能力。负载测试的目标是确定系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,如响应时长,事务处理速率和其他时间相关的性能指标。

    2)压力测试:在软件工程中,压力测试是对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能 提供的最大服务级别的测试。例如测试一个Web站点在大量的负荷下,何时系统的响应会退化或失败。

    3)容量测试:容量测试确定系统可处理同时在线的最大用户数。

    性能测试的常见指标:

    1)Avg Rps:平均每秒钟的响应次数=总请求次数/秒数。

    2)Avg time to last byte per tersion(mstes):平均每秒业务脚本的迭代次数。

    3)Successful Rounds:成功的请求。

    4)Failed Rounds:失败的请求。

    5)Hits Per Second:每秒点击次数。

    6)Successful Hits Per Second:每秒成功的点击次数。

    7)Failed Hits Per Second:每秒失败的点击次数。

    8)Attenmpted Connections:尝试连接数。

    9)Thoughput:吞吐量

    对于C/S架构的程序,由于软件后台通常为数据库,所以我们更侧重数据库的性能指标。

    1)User Connections:用户连接数,也就是数据库的连接数量。

    2)Number of Deadlocks:数据库死锁。

    3)Butter Cache Hit:数据库Cache的命中情况。

    另,CPU占用率、内存占用率、数据库连接池等。

    明确性能测试的基本流程:

    1、明确性能测试需求

    明确性能测试需求是性能测试的第一步,有了好的开始,事情就成功了一半。性能测试需求应该明确测试涉及的功能点。

    2、制定性能测试方案

    性能测试方案应该详尽地描述如何进行性能测试,,其中应该至少包括:测试背景、测试目的、测试范围、测试进入条件、测试退出条件、测试策略、测试风险、测试资源尤为重要。

    一个性能测试方案的简单例子:

    1)测试进入条件

    (1)不遗留L1的缺陷。

    (2)性能测试数据准备完毕。

    (3)系统功能测试已结束

    2)测试退出条件

    (1)各场景执行时间达到测试场景要求。

    (2)系统出现大量错误,暂停执行性能测试。

    3)性能指标要求

    关键功能、平均用户数、高峰段用户数、平均响应时长、可接受最长响应时长、使用时间段。

    3)测试测咯

    测试环境指标折算:

    测试环境平均并发数 = (最大在线人数*10%)/n

    式中,n是生产环境和测试环境服务器配置折算比,例如 n = 公倍数((生产Web服务器数/测试Web服务器数),(生产APP服务器数/测试APP服务器数))*(生产服务器内存/测试服务器内存),一般算下来n=4.

    存量数据:

    按照日均某任务量来推算存量数据。为了确保系统高可用率及迅速响应,系统会对数据做定期归档,存量数据类型和归档时间统计。

    组合场景测试:

    (1)用下一任务功能获取优先级最高的任务。

    (2)编辑客户信息。

    (3)保费计算。

    (4)投保单录入。

    (5)记录电销结果。

    这5项内容应该是坐席操作最多的功能,例如(1):(2):(3):(4):(5)=3:2:2:1:3.

    测试通过标准:

    (1)平均响应时长满足测试指标要求。

    (2)90%响应时长满足测试指标要求。

    (3)2小时压力测试中脚本没有报错。

    测试场景总的指导原则:

    场景设置:每1秒增加5个用户,以x个并发为基础,逐渐递增至目标并发数,直到服务器吞吐率不再增加,响应时长随用户增加比例稳定同比增加。达到并发量之后再持续运行脚本x小时左右。场景中的并发用户匀速启动和停止。

    后台监控:

    监控对象:Web、APP主机、数据库服务器、数据库、中间件等

    监控指标:CPU、MEMORY、I/O、TOP、SQL、等待队列等

    使用工具:openview、APM、CONSOLE

    3、编写性能测试案例

    测试人员应该以性能测试需求和性能测试方案作为输入,以便产出性能测试案例。

    包括:测试案例名称、测试步骤、相关描述、预期结果

    4、执行性能测试案例

    性能测试案例只是一个指导性的测试文件,具体如何完成性能测试工作,要依赖于测试人员的技能和具体的性能测试工具。

    5、分析性能测试结果

    毫无疑问,分析性能测试结果非常重要,而且很有难度。可以这么说,会执行性能测试案例的人是“徒弟”,能够准确全面分析性能测试结果的人是“师傅”。

    6、生产性能测试报告

    如何生成一份准确严谨的性能测试报告,是一项技巧性的工作。一份性能测试报告,至少应该包含以下内容:

    1)测试基本信息:包含项目目的、报告目标读者、术语定义、参考资料。

    2)测试环境描述:包含服务器软/硬件环境、网络环境、执行工具、测试人员。

    性能测试案例执行分析:需要详细描述每个测试案例的执行情况,以及对应的测试结果分析。

    3)测试结果综合分析及建议:对本次性能测试做综合分析,并给出测试结论和改进建议。

    4)测试经验总结。


            长按二维码识别关注,您的支持是我们最大的动力。       

            公众号:测试梦工厂

            QQ一群:300897805

      



  • 相关阅读:
    pip 提示import error,cannot import name locations
    Selenium 报错 提示“unable to find an ant file to run”
    python-unexpected content storage modification出错
    C++对象的动态建立与释放
    C++构造函数和析构函数
    C++类的访问控制关键字
    C++之namespace、bool
    C++ 学习笔记
    内存泄漏
    内存回收机制
  • 原文地址:https://www.cnblogs.com/testdream/p/6486955.html
Copyright © 2011-2022 走看看