参考学习感谢:《精通软件性能测试与LoadRunner实战》

一、典型的性能测试场景

  1. 某个产品要发布了,需要对全市的用户做集中培训。通常在进行培训的时候,老师讲解完成一个业务以后,被培训用户会按照老师讲解的实例同步操作前面讲过的业务操作。这样存在用户并发的问题,我们在培训之前需要考虑被培训用户的人数在场景中设计酌情设置并发用户数量。
  2. 同一系统可以采用两种构架:Java、.Net,决定用哪个。同样的系统用不同的语言、框架实现效果也会有所不同。为了系统能够有更好的性能,在系统实现前期,可以考虑设计一个小的Demo,设计同样的场景,实际考察不同语言、不同框架之间的性能差异,而后选择性能好的语言、框架开发软件产品。

  3. 一门户网站能够支持多少用户并发操作(注册、写博客、看照片、灌水……)。一个门户网站应该是经得起考验的。根据预期的用户量设计相应用户的并发量,同时一个好的网站由于随着用户的逐渐增长以及推广的深入,访问量可能会成数量级的增长。考虑门户网站这些方面的特点,在进行性能测试的时候也需要考虑可靠性测试、失败测试以及安全性测试等。

二、功能测试与性能测试关系

功能测试和性能测试是相辅相成的,对于一款优秀的软件产品来讲,它们是不可减少的2个重要测试环节; 要因地制宜,结合实际需求,选择合适的时间点进行,减少不必要的人力、物力浪费,才能实现利益最大化。

三、性能测试的概念及其分类

  1. 性能测试
  2. 负载测试
  3. 压力测试
  4. 配置测试
  5. 并发测试
  6. 容量测试
  7. 可靠性测试
  8. 失败测试

概念及其分类

  1. 系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括:执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性等。性能测试是为描述测试对象与性能相关的特征并对其进行评价,而实施和执行的一类测试。它主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。通常大家把性能测试、负载测试、压力测试等统称为性能测试。

  2. 负载测试:通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能够承受的最大负载量的测试。简而言之,负载测试是通过逐步加压的方式来确定系统的处理能力、确定系统能够承受的各项阀值。例如:逐步加压,从而得到“响应时间不超过10秒”、“服务器平均CPU利用率低于85%”等指标的阈值。

  3. 压力测试:通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并来获得系统能提供的最大服务级别的测试。压力测试是逐步增加负载,使系统某些资源达到饱和甚至失效。

  4. 配置测试:主要是通过对被测试软件的软硬件配置的测试,找到系统各项资源的最优分配原则。配置测试能充分利用有限的软硬件资源,发挥系统的最佳处理能力,同时可以将其同其它性能测试类型联合应用,从而为系统调优提供重要依据。
  5. 并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,几乎所有的性能测试都会涉及一些并发测试。 因并发测试对时间的要求比较苛刻,通常并发用户的模拟都是借助于工具,采用多线程或多进程方式来模拟多个虚拟用户的并发性操作,在后续讲LoadRunner 工具时,有一个集合点的概念,它就是用来模拟并发的,您可以在VuGen中设置集合点,在Controller中设置其对应的策略,来模拟用例设计的场景。

  6. 容量测试:在一定的软、硬件条件下,在数据库中构造不同数量级的记录数量,通过运行一种或多种业务场景在一定虚拟用户数量的情况下,获取不同数量级别的性能指标从而得到数据库能够处理的最大会话能力、最大容量等。确定系统可处理同时在线的最大用户数,通常和数据库有关。

  7. 可靠性测试:通过给系统加载一定的业务压力(如CPU资源在70%~90%的使用率)的情况下,运行一段时间,检查系统是否稳定。因为运行时间较长,通常可以测试出系统是否有内存泄露等问题。

    通常我们不可能做一次可靠性测试执行1年时间,所以多数情况下,可靠性测试是执行一段时间,如:24小时、3×24小时或7×24小时来模拟长时间运行。

  8. 失败测试:对于有冗余备份和负载均衡的系统,通过这样的测试来检验如果系统局部发生故障用户是否能够继续使用系统,用户受到多大的影响。如:几台机器做均衡负载,一台或几台机器垮掉后系统能够承受的压力。

四、性能指标及相关计算公式

  1. 吞吐量
  2. 并发数
  3. 思考时间
  4. 响应时间
  5. 点击数
  6. 资源利用率
  7. 网络吞吐量
  8. 错误率
  9. 系统稳定性

具体:

  1. 吞吐量(Throughput):指的是单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力。通常情况下,吞吐量用“请求数/秒”或者“页面数/秒”来衡量。从业务角度来看,吞吐量也可以用“业务数/小时”、“业务数/天”、“访问人数/天”、“页面访问量/天”来衡量。从网络角度来看,还可以用“字节数/小时”、“字节数/天”等来衡量网络的流量。
  2. 并发(Concurrency):它最简单的描述就是指多个同时发生的业务操作。例如,100个用户同时单击登录页面的“登录”按钮操作。通常,应用系统会随着用户同时应用某个具体的模块,而导致资源的争用问题,例如,50个用户同时执行统计分析的操作,由于统计业务涉及很多数据提取以及科学计算问题,所以这个时候很有可能内存和CPU会出现瓶颈。并发性测试描述的是多个客户端同时向服务器发出请求,考察服务器端承受能力的一种性能测试方式。

  3. 思考时间(Think Time):它就是在录制脚本过程中,每个请求之间的时间间隔,也就是操作过程中停顿的时间。为了真实地描述用户操作的实际场景,在录制脚本的过程中,通常,LoadRunner也会录制这些思考时间,在脚本中lr_think_time()函数就是实现前面所说的思考时间,它实现了在两个请求之间的停顿。

  4. 响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回结果的响应结束,结果信息展现在客户端,整个过程所耗费的时间。
  5. 点击数是衡量Web服务器处理能力的一个重要指标。它的统计是客户端向Web服务器发了多少次HTTP请求计算的。这里需要说明的是,点击数不是通常一般人认为的访问一个页面就是1次点击数,点击数是该页面包含的元素(如:图片、链接、框架等)向Web服务器发出的请求数数量。通常我们也用每秒点击次数(Hits per Second)指标来衡量Web服务器的处理能力。

  6. 资源利用率,是指系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量×100%”形成资源利用率的数据。通常,系统资源的利用率,结合不同行业系统的需求也有所不同,例如,在银行行业对系统的稳定要求比较严格,结合CPU利用率来讲,其要求不高于60%,而其他行业的系统要求不是很严格CPU利用率不高80%即可。
  7. 网络吞吐量是指在网络工作正常的情况下单位时间内通过的网络的数据数量。通常,该指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则需要考虑升级网络设备,以提升网络处理吞吐量。
  8. 错误率指系统在负载情况下,失败交易的概率。错误率=(失败交易数/交易总数)*100%。不同系统对错误率的要求不同,但一般不超出千分之五。稳定性较好的系统,其错误率应该由超时引起,即为超时率。

  9. 系统稳定性:基于系统本身的重要性,通常要求非常高,要求365×24小时无故障运行,通常系统稳定性关注的内容是稳定运行时间,该指标表示系统在标准压力(系统的预期日常压力)情况下,能够稳定运行的时间。

    因为稳定性测试运行时间长,通常至少连续运行24小时以上,所以平时手工测试或短时间性能测试发现不了的问题,可以在该类型的性能测试过程中发现,如:内存泄漏问题等。

计算公式:

吞吐量  

 并发数  

思考时间

LoadRunner(一)——性能测试基础及性能指标概述的更多相关文章

  1. 第二十六节:复习Java语言基础-Java的概述,匿名对象,封装,构造函数

    Java基础 Java语言概述 Java语言 语言 描述 javaee 企业版 javase 标准版 javame 小型版 JDK JDK(Java开发工具包) Java语言 语言 Java语言 Ja ...

  2. Loadrunner进行性能测试的步骤

    Loadrunner 11是一款免费的性能测试工具,他包含三个大模块 •使用VuGen:创建脚本•运用Controller:设置方案•查看Analysis:分析测试结果 结合软件测试的流程可以知道使用 ...

  3. Loadrunner做性能测试的主要步骤

    Loadrunner做性能测试的主要步骤: Loadrunner将性能测试过程分为计划测试.测试设计.创建VU脚本.创建测试场景.运行测试场景和分析结果6个步骤. 1) 计划测试:主要进行测试需求的收 ...

  4. LoadRunner性能测试基础知识问答

    Q1:什么是负载测试?什么是性能测试? A1:负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试,例如,访问一个页面的响应时间规定不超 ...

  5. 4.1-web前端性能测试基础概述

    网站性能概述 1.网站架构通常分为前端和后台. 2.后台是实现网站功能的,比如:实现用户注册,用户能够为文章发表评论等等. 3.前端属于功能的表现,并且影响用户访问体验的绝大部分来自己前端页面. 4. ...

  6. LoadRunner(二)——性能测试过程概述

    参考学习感谢:<精通软件性能测试与LoadRunner实战> 性能测试过程概述 2.1 性能测试的基本过程 2.2 性能测试需求分析 2.3 性能测试计划 2.4 性能测试用例 2.5 测 ...

  7. Jmeter之性能测试基础

    1.概念:性能测试是通过自动化的测试工具模拟多种正常峰值及负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测试,两者可以结合进行.通过负载测试,确定在各种工作负载下系统的性能,目标 ...

  8. [转][LoadRunner]LR性能测试结果样例分析

    LR性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源 ...

  9. LoadRunner做性能测试 从设计到分析执行

    项目简介:像百度知道系统类似的系统性能测试,是公司的自己产品. 对最近这个系统的性能测试进行总结下: 系统功能介绍: 前台用户可以根据自己的需要对不同的区域提问,提问包括匿名和登陆用户提问 后台不同区 ...

随机推荐

  1. 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)

    抖音很火,楼主使用python随机爬取抖音视频,并且无水印下载,人家都说天下没有爬不到的数据,so,楼主决定试试水,纯属技术爱好,分享给大家.. 1.楼主首先使用Fiddler4来抓取手机抖音app这 ...

  2. C# 解压缩工具类GZip

    using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; using ...

  3. 二, 字符串和编码之 python 格式化

    1),在Python中,采用的格式化方式和C语言是一致的,用%实现,看下例: >>> 'Hello, %s' % 'world' 'Hello, world' >>> ...

  4. flex布局学习

    教程来自阮一峰的flex布局教程实例篇 容器五大属性: flex-direction:容器内项目的排列方向 (1)row:横向从左往右排列(默认) (2)row-reverse:横向从右往左排列 (3 ...

  5. Django models文件模型变更注意事项(表结构的修改)

    表结构的修改 1.表结构修改后,原来表中已存在的数据,就会出现结构混乱,makemigrations更新表的时候就会出错 比如第一次建模型,漏了一个字段,后来补上了.(经常遇到模型字段修改) 重新ma ...

  6. 关于PCB走线能不能走锐角的讨论

    (此文参考吴川斌的博客) 很多PCB工程师都知道Layout走线时忌走直角,那么锐角能走吗? 回答当然是否定的!为什么呢? 这里先不说锐角对高速信号走线会不会造成负面影响,单从PCB DFM(可制造性 ...

  7. hadoop2.x HDFS HA linux环境搭建

    HDFS High Availability Using the Quorum Journal Manager 准备3台机器可以更多   NN  DN  ZK  ZKFC  JN  RM  DM  n ...

  8. C#学习-扩展方法

    并不是所有的方法都可以用作扩展方法,如何分辨代码中定义的是扩展方法还是普通方法呢? 我们需要考察它是否符合下列扩展方法的定义规则: 1.扩展方法必须在一个非嵌套.非泛型的静态类中定义: 2.它至少要有 ...

  9. 使用Netty实现HTTP服务器

    使用Netty实现HTTP服务器,使用Netty实现httpserver,Netty Http Netty是一个异步事件驱动的网络应用程序框架用于快速开发可维护的高性能协议服务器和客户端.Netty经 ...

  10. 关于 gitignore

    前言 通过在一个 gitignore 文件里面添加相关的规则,我们可以让 git 在追踪文件时忽略一些特定的文件(gitignore 文件泛指所有存放忽略规则的文件,不仅仅是指 .gitignore ...