zoukankan      html  css  js  c++  java
  • 性能测试基础知识

    性能测试基础知识

     

    1、软件性能概念

    软件性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。软件的性能是一个很大的概念,覆盖面非常广,对于一个软件系统而言包括了执行效率、资源占用、稳定性、完全性、兼容性、可扩展性、可靠性等等。

     

    2、为什么要做性能测试?

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

     

    (补充:进行性能测试时,要告诉开发在什么样的场景下发生什么现象,最好提供日志。)

     

     

    3、性能指标

    响应时间:指系统响应时间,是指客户发出请求到得到响应的整个过程的时间。

    tps(事务处理能力)每秒系统处理事务的能力

                                     举例:tps=30:每秒处理事务30个,如果有100个用户,则要分批处理,需要3秒多才能处理完

    吞吐量:一次性能测试过程中网络传输数据量的总和,反应带宽情况

    请求数:每秒请求数、总请求数

    并发数:同时发起请求的用户数量

    资源利用率(CPU、内存、IO):cpu:指用户进程与系统进程消耗的CPU时间百分比,长时间情况下,一般可接受上限不超过85%

                                                       内存:内存泄漏,使用系统过程中内存会一直减少直到溢出,内存回收

                                       内存利用率=(1-空闲内存/总内存大小)*100%,一般至少有10%可用内存,内存使用率可接受上限为85%

                                                     IO:磁盘读写,当磁盘读写过于频繁也会影响系统性能

    参考博客http://www.cnblogs.com/fnng/archive/2012/08/17/2644878.html

    http://www.cnblogs.com/fnng/archive/2012/06/29/2570558.html

     

     

    4、性能测试分类

    基准测试

    指在一定的软件、硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或系统评测的选择时提供决策数据

     

    负载测试

    指在一定的软件、硬件及网络环境下,运行一种或多种业务,在不同虚拟用户数量的情况下,测试服务器的性能指标是否在用户要求的范围内,以此确定系统所能承受的最大用户数、最大有效用户数、以及不用户数下的系统响应时间及服务器的资源利用率

     

    压力测试

    指在一定的软件、硬件及网络环境下,模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态下并长时间连续运行,以测试服务器在负载情况下是否能稳定工作

     

    容量测试

    指在一定的软件、硬件及网络环境下,在数据库中构造不同数级别的数据记录,运行一种或多种业务在一定虚拟用户数量的情况下,获取不同数量级别的服务器性能指标,以确定数据库的最佳容量和最大容量

     

    可靠性测试

    通过给系统加载一定的业务压力的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行。

     

     

    5、如何做性能测试

    一、测试准备:

    1、项目性能调研:了解用户需求,产生调研文档

    2、性能需求分析:分析要测试哪些功能(一般是使用频率高的或者是用户量大的功能)

    3、性能测试计划:如何做性能测试

                                     做哪些性能测试(基准、性能、压力、负载、容量)

                                     人力安排

                                    设备安排

                                    进度安排

    4、测试脚本设计开发

     

    二、测试执行:

    1、执行测试脚本

    2、监控性能指标

    3、调优

     

    三、结果分析:

    1、分析测试结果

    2、输出测试报告

     

     

    性能测试工具Loadrunner

    主流版本:LR11(有破解)、LR12

    安装LR11教程:详见我写的《安装虚拟机win7+LR11教程》

    安装LR12教程:http://jingyan.baidu.com/article/3065b3b680a7b2becff8a4cc.html

    Virtual User:用户行为模拟器

    Controller:性能测试指挥中心

    Analysis:分析器,寻找性能瓶颈助手

     

    补充:

    安装LR11的环境要求

    1、不要安装任何杀毒软件,如果安装了杀毒软件,为了方式后期安装LR11出现很多莫名其妙的无力解决的问题,请卸载杀毒软件,最好重装系统,永无后顾之忧。

    2、环境要求:winxp或者win7系统,win8以及以上的系统都不支持

    最佳环境:winXP

    3、一旦安装LR后,很难卸载干净,一般一些安装信息都会写入到注册表中,如果真的要删除,则可以考虑重装系统

    注:(1)如果第二点环境要求不符合,也可以安装在win8或以上系统,但是使用过程中会出现很多问题

            (2)如果解决第2点环境问题,可以在VM中安装虚拟机,在此虚拟机中安装win7系统,在此系统中安装LR11。

     

     

    思考:

    1)在测试环境做还是正式环境做?

    应该都可以,要根据实际情况来。

    如果在正式环境做性能测试,不会对真实数据产生影响,不会影响客户使用还是可以在生产环境进行性能测试的;

    否则要在测试环境做性能测试,需要将测试环境配置的尽量和正式环境一致进行测试,这样可以尽可能的模拟真实环境进行测试。测试环境测试也不会影响正式环境。可以进行各种性能测试操作比如压力、负载等等,产生了数据或者性能下降也没有关系,不会影响到正式环境。

     

    2)功能没有做全的时候做 还是功能全部做好了再做?

    功能全部做完测完才能做性能测试,这样既不会影响功能测试,也不会在进行性能测试过程中出现bug从而影响测试。

     

    3)正式环境和测试环境的区别在哪里?

    正式环境:是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。

    测试环境:一般是克隆一份正式环境的配置,一个程序在测试环境工作不正常,那么肯

    定不能把它发布到生产机上。

     

  • 相关阅读:
    kotlin 通过 下标比对
    textarea元素调整
    jquery给两个标签绑定一个事件
    开发过程中遇到的错误
    response.setHeader各种用法详解
    如何在eclipse里删除一个类 然后SVN服务器也同时删了这个类
    @pathvariable 与@requestparam 写rest接口时遇到的
    $.getJSON
    easyUI学习
    jQuery validator addMethod 动态提示信息
  • 原文地址:https://www.cnblogs.com/dahujidi/p/7601604.html
Copyright © 2011-2022 走看看