zoukankan      html  css  js  c++  java
  • Jmeter 性能测试的基础了解

    最近项目上在对网站和wap做性能优化(目标是支持200个并发,在登录和课程详情页的相关操作),借此机会学习性能测试

    1.了解性能测试的基础知识

    2.性能测试的流程;

    3.怎么样录制脚本;

    4.怎样配置参数,实施压测;

    5.怎么输出报告;

    6.怎么分析报告;

    1、《性能测试基础知识》 https://www.cnblogs.com/imyalost/p/5640818.html

    1、定义

    对响应时间的评估、分析,结合应用的架构和实现细节找出问题,并最终确认问题得到解决的过程 

    2、影响软件性能的因素

    网络环境、数据库服务器、应用服务器、业务逻辑的实现方式、系统采用的架构、代码的优化程度、使用者的使用方式等

    3、测试模型

    通用的软件测试过程模型(PTGM)、敏捷软件测试模型(ATPM)

    4、软件性能测试的应用领域 

    能力验证、规划能力、性能调优、瓶颈发现、性能基准比较

     

    一:基础篇

    1、软件性能测试的基本概念

    1.1 性能是一种指标(软件性能对其及时性要求的符合程度)

        性能的及时性用响应时间或者吞吐量表示

        响应时间:对请求做出响应所需要的时间

    例子:交互式的应用(web):用户感受到的响应时间

         非交互式的应用(嵌入式或者银行等业务处理系统):系统对事件产生响应的time

    1.1.1 用户视角的软件性能

    端→端

    用户操作——数据操作请求——(应用服务器)服务端响应——返回数据——用户端

    1.1.2 管理员视角的软件性能 

    服务器资源使用状况是否合理                       资源利用率

    数据库资源使用状况是否合理                       资源利用率

    系统能否可以实现扩展                            系统可扩展性

    系统的最大并发,压力是多少                       

    并发:最多能支持多少用户访问                     系统容量

    压力:最大的业务处理量

    系统可能的瓶颈在哪里                            系统可扩展性

    更换什么设备能提升系能                          系统可扩展性

    能否支持7*24小时的业务访问                      系统稳定性

    1.1.3 开发视角的软件性能 ???

    架构设计是否合理                               系统架构

    数据库设计是否存在问题                          数据库设计

    代码是否存在性能方面的问题                       代码

    系统中是否存在不合理的内存使用方式                代码

    系统中是否存在不合理的线程同步方式                设计与代码

    系统中是否存在不合理的资源竞争                   设计与代码 

    1.1.4 web前端性能

    Web应用的前端响应时间:页面加载时间

    其中包括:

    1.对HTML的解析读取

    2.对页面图片及CSS等文件的获取和加载

    3.客户端脚本(JavaScript)的执行时间

    4.对页面进行展现所花的时间 

     

    1.2软件性能的几个主要术语

    1.2.1 

    合理的响应时间取决于实际用户需求

    1.2.2 

    并发用户数:N数值的用户同时访问系统

    1.服务器实际承受的压力不只取决于并发用户数,还取决于用户的业务场景

    2.服务端承受的最大并发访问数取决于并发用户数+业务场景

    业务场景:通过服务器日志的分析得出的结果

    1.2.3 吞吐量

    定义:单位时间内系统处理客户请求的数量

    一般来说,请求数/每秒OR页面数/每秒来衡量

    从业务角度来说,访问人数/天OR处理的业务数/小时来衡量(PV、UV)

    从网络角度来说,字节数/天来考察网络流量 

    对于交互式应用,吞吐量指标反映服务器承受的压力,在容量规划测试中,吞吐量是个很重要的指标,因为它能说明系统级别的负载能力

    Web系统的性能测试中,吞吐量指标可以在两个方面发挥作用

    1.协助设计性能测试场景,以及衡量性能测试场景是否达到预期的设计目标

    2.协助分析性能瓶颈

    PS:大部分性能测试中,单击数(Hits)指客户端发出的HTTP的请求数量,而不是指用户在页面上的一次单击事件。

    比如:一次单击事件请求页面A,页面A包含3张图片和一个框架(Frame),则这次单击共产生了5个Hits(包括对页面A本身的请求) 

    1.2.4性能计数器(Counter)

    定义:描述服务器或者操作系统性能的一些数据指标

    作用:监控、分析

    分析系统可扩展性,进行性能瓶颈的定位时,计数器取值非常关键

    相关指标:资源利用率:系统各种资源的使用情况 

    1.2.5思考时间(Think Time)

    休眠时间:用户操作时间每个请求的间隔时间

    体现在脚本中,就是操作之间放一个Think函数,使脚本在执行两个操作之间等待一段时间

      R=T/Ts   (请求数=时间/请求间隔时间)

    推荐一个计算思考时间的方法:

    1.首先计算出系统的并发用户数

    2.统计出系统平均的吞吐量

    3.统计出平均每用户发出的请求数量

    4.根据上面的公式得出请求时间

     

    2、《性能测试类型》  https://www.cnblogs.com/imyalost/p/5653342.html

    1、负载测试(可置性测试)

    定义:在被测系统上不断增加压力,直到性能指标(如响应时间)超过预期指标或者某种资源使用已经达到饱和状态。可以找到系统的处理极限,为系统调优提供数据

    特点:

    1):该方法主要目的是找到系统处理能力的极限

    2):该方法在给定的测试环境下进行,通常需要考虑被测系统的业务压力量和典型场景

    3):该方法一般用来了解系统的性能容量,或者是配合性能调优来使用

    性能容量:系统在保证一定响应时间的情况下能够允许多少并发用户的访问

    2、压力测试

    定义:系统在一定饱和状态下,例如CPU、内存等饱和情况下,系统能够处理的会话能力,以及系统是否会出现错误

    特点:

    1)该方法一般通过模拟负载等方法,使得系统的资源使用达到较高的水平

    2)该方法的主要目的是检查系统处于压力情况下是应用的性能表现

       该方法通过增加访问压力,是系统资源使用保持在一定水平,检验此时应用的表现,重点在于有误出错信息产生,系统对应用的响应时间等

    并发测试:简单理解就是业务场景短时间内有大量的请求需要处理,一般出现在登陆或者某些比较重要的模块,按钮

    4、配置测试

    定义:通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则

    特点:

    1)该方法主要目的是了解各种不同因素对系统系能影响的程度,从而判断出最值得进行的调优操作

    2)该方法一般在对系统性能状况有初步了解后进行

       需要在确定的环境、操作步骤和压力条件下进行

    3)该方法一般用于性能调优和规划能力

    5、并发测试

    定义:模拟多用户并发访问同一个应用、模块或者数据记录时是否存在死锁或者其他性能问题

    特点:

    1)该方法主要目的是发现系统中可能存在的并发访问时的问题

    2)该方法主要关注系统中可能存在的并发问题。比如:内存泄漏、线程锁和资源争用等问题

    3)该方法可以在开发的各个阶段使用,需要相关的测试工具的配合和支持

    常用工具:商业软件loadrunner:功能完整强大,内存占用大,需要收费

            开源工具jmeter:开源免费,自由,操作较简单,能辅助完成日常的一些测试工作

    6、可靠性测试

    定义:给系统施加一定的业务压力,让其持续运行一段时间,测试在这种条件下能否稳定运行

    特点:

    1)该方法的主要目的是验证系统是否支持长期稳定的运行

    2)该方法需要在压力下持续一段时间的运行

    3)测试过程中需要关注系统的运行情况

       比如:内存使用或者其他资源的使用以及响应时间有无明显变化

    -----------------------------------------Have a good day!---------------------------------------------------------------------------------------------------
  • 相关阅读:
    oracle的安装与plsql的环境配置
    Working with MSDTC
    soapui-java.lang.Exception Failed to load url
    Oracle 一个owner访问另一个owner的table,不加owner
    Call API relation to TLS 1.2
    Call API HTTP header Authorization: Basic
    VS2008 .csproj cannot be opened.The project type is not supported by this installat
    The changes couldn't be completed.Please reboot your computer and try again.
    Create DB Table View Procedure
    DB Change
  • 原文地址:https://www.cnblogs.com/ww-xiaowei/p/10278449.html
Copyright © 2011-2022 走看看