zoukankan      html  css  js  c++  java
  • 《软件性能测试过程详解与案例剖析》读书笔记

    1、软件测试基本概念

    响应时间

    定义:对请求作出响应所需要的时间。是用户视角的软件性能的主要体现,带有主观色彩,没有绝对的长短。 “web页面合理响应时间标准”:2/5/10秒,10秒为上限

    上图将响应时间划分为“呈现时间”和“系统响应时间”。“呈现时间”取决于数据在客户端收到数据后呈现页面所消耗时间,一般性能测试中不关注“呈现时间”,因为其很大程度上取决于客户端表现。因此此处响应时间多为“系统响应时间”。

    页面响应时间可被进一步分解为:“网络传输时间”、“数据库延迟时间”和“应用服务器延迟时间”

    并发数

    业务并发用户数定义:同一时间段内访问系统的用户数量(虽然在访问系统,但不一定对服务端产生压力,比如只是在浏览系统)

    服务端承受的最大并发访问数定义:从服务端承受的压力出发,描述的是同时向客户端发出请求的客户,体现的是服务端承受的最大并发访问数,常结合并发测试,来发现系统中存在的并发引起的资源竞争等问题。

    例:如果一个OA系统有2000名用户,最高峰时有500人在线,其中40%在看系统公告,20%在发呆,20%在进行页面跳转,20%在填写表单。则:系统用户数为2000,在线用户数为500,业务并发用户数为500,服务端承受并发数取决于业务并发用户数及用户业务场景。

    上图用于估算业务并发用户数: 其中,公式1中C为平均并发用户数,n是login session的用户数,L是login session的平均长度,T是考察的时间段的长度,一般为8小时工作时间。公式2给出了并发用户数峰值计算方式,该公式由泊松分布估算得到。若知道平均每个用户发出的请求数u,可估算吞吐量为u*C。

    可通过“日志分析”对应用服务器进行分析,从而了解并发数数据,推荐AWStats开源工具(http://awstats.sourceforge.net/)

    吞吐量

    • 定义:单位时间内系统处理的客户请求的数量,一般web系统用请求数/秒 或 页面数/秒来衡量。从业务角度,可用访问人数/天、业务数/小时衡量,或网络角度字节数/天

    • 在没有遇到性能瓶颈时,吞吐量可计算为:F=(N*R)/T。其中N表示用户个数;R表示每个用户发出的请求数量,T表示性能测试所用的时间。

    • 常用于分析分析吞吐量的图形是“吞吐量——VU数量(虚拟用户数)”的关联图。虽然吞吐量指标被看做系统承受压力的体现,但在不同并发用户数量的情况下,对一个系统施加相同的吞吐量压力,可能得到不同的测试效果。例如,对同一个系统,测试A采用100个VU,每个VU间隔1s发出一个请求;测试B采用1000个并发,每隔10秒发出一个请求;两者吞吐量均为100,但B会更容易出现性能瓶颈。 两个不同系统可能具有不同用户数和用户使用模式,但如果具有基本一致的吞吐量,则可以说他们具有基本相同的平均处理能力。

    性能计数器:内存数、进程时间;资源利用率

    思考时间(Think Time),或休眠时间

    • 用户操作时每个请求间的间隔时间。自动化测试角度来说,必须在测试脚本中让各个操作之间等待一段时间。

    RBI测试方法:Rapid Bottleneck Identify

    性能下降曲线分析法:单用户区域;性能平坦区;压力区域;性能拐点

    LoadRunner的性能测试过程

    2、性能测试的应用领域

    方法分类:

    • 性能测试:模拟业务压力量和使用场景组合,验证系统是否具有所宣称的能力。
    • 负载测试:通过在被测系统上不断增加压力,直到性能指标达到饱和状态,目的是找到系统的处理极限。通过“检测-加压-直到性能指标超过预期”的方法
    • 压力测试:测试系统在一定饱和态下,例如CPU、内存等在饱和态下系统的会话能力,以及系统是否会出错。通过增加访问压力(如并发量),检测系统有无出错信息,以及系统响应时间,以及系统在一段时间内的稳定性。一般会以*“CPU使用率达75%以上,内存使用率达70%以上,系统错误率,响应时间”来作为描述。
    • 配置测试:通过对系统软硬件调整,了解不同配置对系统性能影响程度,从而找到最优分配原则。一般用于性能调优和规划能力
    • 并发测试:通过模拟用户并发访问,测试多用户并发访问一个应用时是否存在死锁或其他性能问题。主要关注内存泄露、线程锁、资源争用等。可针对系统或某种架构设计进行,可在开发各阶段使用。
    • 可靠性测试:通过给系统加载一定的业务压力(如资源在70%~90%使用率),让应用持续运行一段时间,测试系统是否稳定。
    • 失效恢复测试:针对有冗余备份和负载均衡的系统设计,可以用来检验如果系统局部发生故障,用户能否继续使用系统,以及用户将受多大程度的影响。

    应用领域:

    • 能力验证:对一个已部署系统的性能进行验证。如性能测试,可靠性测试,压力测试,失效恢复测试
    • 规划能力:关心如何才能使系统具有我们要求的性能能力,如系统能否支持未来一段时间内的用户增长。 是一种探索性测试。如负载测试,配置测试和压力测试
    • 性能调优:配置测试,负载测试,压力测试和失效恢复测试
    • 发现缺陷:并发测试,压力测试,失效恢复测试

    3、性能计数器及性能分析方法

    操作系统级别、应用服务器级别和数据库级别上查看和记录分析

    操作系统计数器:

    • 内存分析(应用命令vmstat):
    • 处理器分析(命令top):
      1. 查看System\%Total processor Time性能计数器计数值:体现服务器整体的处理器利用率(或平均利用率)。当持续超过90%,则面临瓶颈,需增加处理器
      2. 查看每个CPU的Processor\%Processor Time 和 Processor\%User Time(系统非核心操作消耗的CPU时间,当服务器是数据库服务器时,可能是数据库排序或函数操作消耗时间) 和 Processor\%Privileged Time
      3. 查看 SystemProcessor Queue Length,当其大于CPU数量总数+1时,说明出现处理器阻塞。当Processor\%Process Time较高时一般伴随阻塞,反之则不必然。
    • 磁盘I/O分析方法:针对数据库服务器、或文件服务器、流媒体服务器; Disk/Transfer 介于15~30ms为良好,超过60ms则需考虑更换硬盘等
    • 进程分析方法:查看进程的%Processor Time值,反应进程消耗的处理时间。查看页面失效。
    • 网络分析

      应用服务器计数器:IIS应用服务器,Tomcat

      数据库计数器

    4、性能测试工具原理

    性能测试不等同于性能测试工具;性能测试脚本录制是指录制服务端和应用之间的通信数据,而非GUI操作,需先选择录制的协议

    性能测试架构(以load runner为例)

    • 虚拟用户脚本生成器
    • 压力产生器:用于根据校本内容产生实际的负载。(一般一台具有512MB内存的PC机可顺利运行200个左右的VU)
    • 用户代理:是运行在负载机上的进程(可被看作压力产生器的组成部分),一般以后台方式在负载机上运行
    • 压力调度和监控系统
    • 压力结果分析功能
  • 相关阅读:
    ICONS-图标库
    图形资源
    vue项目中,如果修改了组件名称,vscode编辑器会在引入修改组件的名字处提示红色波浪线 The file is in the program because:Imported via xxx Root file specified for compilation .
    接口在dev环境报跨域问题(has been blocked by CORS policy:Response to preflight request doesn't pass access control check:No 'Access-Control-Allow-Origin' header ispresent on the requested resource.),qa环境正常
    阿里云occ的图片文件URL用浏览器直接打开无法访问,提示This XML file does noe appear to have any style information associated with it. The document tree is shown below.
    vue 项目使用element ui 中tree组件 check-strictly 用法(父子不互相关联的反显情况)
    高德地图进行线路规划绘制标记点操作(vue)
    vue中实现拖拽调整顺序功能
    2021-01-22 浏览器相关知识
    2021-01-22 js 相关知识点
  • 原文地址:https://www.cnblogs.com/LemonTing/p/4807900.html
Copyright © 2011-2022 走看看