《LoadRunner性能测试巧匠训练营》——1.3 性能术语与指标详解

1.3 性能术语与指标详解

小白理解了性能测试后就开始了性能测试基本概念的学习,首要任务就是深入理解重要的术语和指标,因为对这些术语和指标的理解是否深入、透彻,将直接影响后续的学习效果。
1.并发数
在理解并发数之前,先提出3个常见的概念,分别是系统用户数、在线用户数和并发用户数。小白发现很多人都会把这3个概念混淆,其实是不一样的。以BestTest的论坛作为例子,对应的解释分别如下。

  • 系统用户数:简单地说就是该系统的注册用户数。例如,BestTest论坛里存在6666个注册用户,他们可以是活跃的,也可以是僵尸的。
  • 在线用户数:即登录系统的用户。例如,其中有666个用户的状态为在线,但在线用户并不一定都会对服务器产生压力,因为有的用户登录后什么都不干。
  • 并发用户数:是对服务器产生压力的用户。例如,可能在线的666个用户中,只有20%的用户对服务器产生了压力,这20%的用户数就是并发用户数。

那为什么要关注并发用户数而不是其他用户数呢?上面已经提到过,最直接的原因就是只有并发用户数才对系统产生真正的压力。就好像一个人提1斤的东西不觉得重,但是提150斤的东西,那可就难以提动了。
在实际应用中,并发数可以通过分析服务器日志得以确定,这种方式更加准确。一般常用的日志分析工具有AWStats、Webalizer、Analog、Deep Log Analyzer等。也可以通过业界的一些计算模型得到,后续章节中会学习。
这里再延伸一下并发的概念。一般有两种理解方式:一种为所有用户在同一时刻做同一种操作,主要是为了验证程序或数据库对并发的处理能力;另一种为多个用户对被测系统发起了多个请求,这些请求可以是同一种操作,也可以是不同的操作,类似于混合场景的概念。
2.响应时间
小白通过查找资料发现,大部分资料都是说“响应时间=网络响应时间+应用程序响应时间”诸如此类的解释。小白一时间有点摸不着头脑。于是,静下心来开始认真分析、研究。
我们可以换个角度去看待这个概念。首先从大的方向上可以把一个系统分为前端与后端,而响应时间也可以按照这个划分来理解。让我们先看图1-1再来理解。

通过图1-1可以清楚地看出在没有缓存的情况下,一个请求发出去后,需要经过网络传输、DNS解析等步骤才能到达服务器,服务器处理完后,经由网络传输返回给客户端,而客户端接收到以后,要进行解析渲染展示给用户。这里需要注意,网络时间包括请求传输的时间和响应传输的时间,而服务器也可能是多层处理。
这下逻辑就非常清楚了,可以总结为:响应时间=网络传输(请求)时间+服务器处理(一层或多层)时间+网络传输(响应)时间+页面前端解析渲染时间。小白终于明白响应时间背后的来龙去脉了。
在实际应用过程中,需要明白响应时间的长短取决于用户的实际需求,而不是盲目设定该指标。毕竟在BestTest论坛查找一个帖子和在数据统计系统中查找一个月的数据汇总与明细统计是完全不同的,它们的业务有各自独有的特点,不能简单地一概而论。
前端页面的解析展示时间一般在做非前端性能测试中不太会关注,因为每个浏览器解析页面的方式不一样,时间也会不一样。

  1. 每秒通过事务数
    TPS是指每秒通过事务数,是直接反映系统性能的指标,该值大时,系统性能会比较好,当然每个系统都有它的上限,不可能无限大。将它与平均事务响应时间进行对比,可以分析事务数量对响应时间的影响。
    例如,当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的多少而改变。就好像传说中的北京五道口地铁检票机一样,只有两台进站检票的机器,一次一台机器只能通过一个人,不论是来10个人,还是100个人。
    4.每秒点击数
    每秒点击数代表用户每秒向Web服务器提交的HTTP请求数。但这里需要注意的是提交一个登录请求,对于用户来说感觉是一个请求,但对于后端服务器来说也许是多个请求,所以点击一次不代表就是一个请求。例如,点击一个链接,该操作返回的页面上有6张图片,因为下载每张图片都需要一个HTTP请求,所以这个页面下载完成之后的点击数应该是7。
    每秒点击数从侧面可以反映客户端的状况,每秒点击数不正常,一般可能是网络问题或者脚本问题导致,需要进一步具体分析。
    5.吞吐量
    经常在网上看到“吞吐量”与“吞吐率”的概念,也有不少人把两者混淆。吞吐量是指单位时间内系统处理的请求数量,能直接反映服务器承受的压力,是需要重点关注的指标。而吞吐率一般指用户在给定的一秒内从服务器获得的数据量,简而言之就是服务器返回的数据量。
    例如,一个食品厂的生产效率很高,一天能生产很多食品,但是工厂只有两辆三轮车在运输,不难想象会出现什么样的可怕场景。这个时候工厂运输食品的能力就成为了瓶颈,也就是它的吞吐量/吞吐率出现了瓶颈。
    6.思考时间
    思考时间可以从两个宏观的角度来理解。
    1)思考时间就是用户进行操作时,每个请求或者操作之间的间隔时间,是为了更加真实地模拟用户的操作场景。因为在实际使用中不太可能会出现不断地发送请求,一般都是一个请求后,等待一段时间,然后发送下一个请求,恶意攻击除外。
    2)小白发现在BestTest论坛连续发帖时会提示“两次发帖时间间隔不能小于15秒钟”,这时如果要满足业务的特定需求就需要加上思考时间15s了。这下小白对思考时间有了进一步的认识,很是高兴。
    另外,小白经常在网上看到关于0思考时间的讨论,自己也有点疑惑,于是请教了经理。经理告诉他,如果想了解系统的最大承受能力或者极端情况下系统的性能表现,则可以设置为0思考时间。但如果是预估系统的性能,就应该最大可能地模拟真实思考时间。一般都会加上思考时间,只是在分析时要去掉思考时间。
    7.资源利用率
    小白通过查找资料发现,关于资源利用率的资料太多也太杂,根本无法梳理,而且会越看越乱,无奈之下向经理求助,经理告诉他虽然指标很多,但很多时候每个指标间都是有关联的,而且重点的就是那么几个,只要把这几个理解透彻就行了。小白按照经理的指导开始学习、理解重点的几个指标。
  2. CPU:它就像是人的大脑,主要是进行判断和处理,能反映出系统的繁忙程度,一般分为系统CPU与用户CPU,其中系统CPU是处理系统本身所占用的资源,用户CPU则是处理程序所占用的资源,对象不同。
  3. Load Average:指一段时间内CPU正在处理和等待CPU处理的任务,也就是CPU使用队列的长度的统计信息。这里的Load Average值就好像地铁里等待进站上车的乘客,越多则Load Average值也越大。
  4. Memory:它就像是人大脑的记忆区域,将各种信息收集起来存放。数据从内存中读取要比从磁盘上读取速度快,而内存经常发生内存泄露或内存溢出的现象,是需要重点留意的。不过这里需要注意,短时间的可用内存越来越少,不代表一定有内存泄露或溢出。
  5. 队列:可以理解成地铁进站的排队现象,队列长,说明处理能力可能达到了极限或者遇到了阻塞。
  6. IO:与磁盘的交互,重点关注交换频率和磁盘队列长度。
  7. 网络:重点关注网络的流量,看是否存在网络带宽的瓶颈。
    虽然小白把这些指标的含义都弄清楚了,但是具体用法以及如何判断是否会出现问题还是不太懂,不过小白心里也清楚,这事得一步步来。先把基本概念和重点指标理解清楚了才是最重要的,只有这样,以后分析起来才能有头绪、有突破口,否则会很被动。想到这里小白会心一笑,心里暗想加油吧!
时间: 2025-01-31 07:53:38

《LoadRunner性能测试巧匠训练营》——1.3 性能术语与指标详解的相关文章

《LoadRunner性能测试巧匠训练营》—— 导读

前 言 国内软件测试行业人才缺口已突破20万,并随着需求的不断攀升而挺向30万大关.据悉,国外成熟软件企业,一个软件开发工程师对应1-2个软件测试工程师,而国内软件企业,平均8个软件开发工程师才对应1个软件测试工程师,比例严重失衡.国内测试行业在这一点上与国外的差距比较大.实际上,为了保证软件质量,从项目开始测试人员就要介入,要了解客户需求,参与项目评审,把握测试要点.如果测试人员数量少,软件质量是得不到保证的.测试行业的确需要大量人才,尤其是在性能测试方面有丰富测试经验的人才更加稀缺. 另一方

《LoadRunner性能测试巧匠训练营》——1.4 性能测试分类详解

1.4 性能测试分类详解 小白在学习过程中发现性能测试的种类繁多,但是实际执行起来又很难严格区分,所以小白觉得理解各种分类的特点和概念即可,没必要咬文嚼字. 1.基准测试 基准最简单的理解就是有基础的标准,这样能通过对比发现系统的不同点与变化.一般情况下,基准测试有以下几种应用场景. 1)可以在制定的标准下通过基准测试建立一个性能基准,这样以后当系统的环境.参数发生变化之后,再进行一次相同标准下的测试,即可看出变化对性能的影响.例如,数据库的基准性能测试. 2)系统进行基准测试可以在较早的阶段发

《LoadRunner性能测试巧匠训练营》——第1章 与性能测试的亲密触碰1.1 性能测试的作用以及重要性

第1章 与性能测试的亲密触碰 性能测试的挑战性和趣味性小白早有耳闻,也会经常听到各个公司因为系统性能而引发的一系列严重问题,所以性能测试会越来越受到重视,只是时间的问题.下面就让我们和小白先来了解下性能测试的趣事,再一同学习性能测试的基本知识. 1.1 性能测试的作用以及重要性 随着社会的发展,用户对产品的要求也越来越高,以前可能看重功能方面,现在正在逐步转变为性能方面,同时各大公司也加强了产品的性能测试,因为从这几年发生的事件来看,性能带来的严重问题以及损失不容忽视,而性能测试的重要性也不言而

《LoadRunner性能测试巧匠训练营》——2.6 脚本调试实战

2.6 脚本调试实战 经历完脚本编写的折磨后,小白并没有休息,他想到了平时经常看到同事调试代码时总是用断点.打印日志等方法,不知道LoadRunner的VuGen能不能实现,于是继续研究.2.6.1 message函数详解在前面已经使用过了message函数,但并没有深入了解,下面深入学习. lr_output_message函数该函数一般用于打印输出到控制台和output.txt文件中. 函数用法: lr_output_message( "%s登录成功", lr_eval_strin

《LoadRunner性能测试巧匠训练营》——2.4 脚本编写实战

2.4 脚本编写实战 知识的学习都是从易到难的,所以小白选择了最简单的场景.以提前注册好的用户名besttest,密码123123完成登录.退出的业务.别小看这么简单的场景,也许你也和小白一样遇到了不少问题呢. 通过"开始"菜单下的HP LoadRunner →Application→Virtual User Generator打开并新建一个空白的Web(HTTP/HTML)协议的脚本,首次会出现Task视图界面,如图2-8所示. 初学者可按照图2-8中的步骤学习.因为这里不使用此视图

《LoadRunner性能测试巧匠训练营》——第2章 LoadRunner VuGen实战2.1 LoadRunner快速安装

第2章 LoadRunner VuGen实战 经过上面的学习,小白已深入理解了性能测试,接下来小白需要通过一个性能测试工具来引导他动手实践,毕竟实践才是王道. 经过查找资料,小白发现性能测试工具貌似比较多,但LoadRunner是目前比较流行的,所以小白决定先学习最流行的性能测试工具.下面就和小白一起来见识下LoadRunner 11的强大功能吧! 2.1 LoadRunner快速安装 在Windows下安装软件一般都是4个步骤:下载.安装.配置.验证.小白到HP的官网找到了LoadRunner

《LoadRunner性能测试巧匠训练营》——1.6 本章小结

1.6 本章小结 通过本阶段的学习,小白深入理解了性能测试的作用.重要性以及意义,同时掌握了重要的术语.概念.指标,并把这些知识应用到实际生活场景中,经过深刻学习产出了两个经典模型.虽然第1章为基础知识,但对于学习整体的性能测试知识尤为重要,如果不能很好地理解和掌握这些基础,后续的学习将会变得凌乱不堪,这也是很多读者最容易犯的错误,切忌不要浮躁!接下来小白将学习现在十分流行的商业性能测试工具LoadRunner,他又会遇到什么问题呢?让我们继续往下看吧.

《LoadRunner性能测试巧匠训练营》——2.7 VuGen使用技巧

2.7 VuGen使用技巧 至此,小白可以松口气了,常规的录制.放回.设置.脚本编写已经完全掌握了,终于达到了一个里程碑,值得庆祝.不过闲不住的小白还是想利用休息时间继续看看LoadRunner的VuGen中的各种功能.2.7.1 协议嗅探 Portocol Advisor(协议嗅探)功能是LoadRunner 11中的新增功能,只是为了给大家选择协议时提供参考意见而已,这个功能不能全信,只是在我们没有头绪时,可以参考嗅探出的协议.协议嗅探使用步骤如下. 1)单击菜单File→Protocol→

《LoadRunner性能测试巧匠训练营》——3.2 场景设计实战

3.2 场景设计实战 Controller可以完成多种场景设计,如快增长.慢增长.组模式等,基本可以满足日常的性能测试场景需求.启动Controller后的新建场景界面如图3-1所示. 下面解释图3-1中的主要选项.1)Select Scenario Type:选择场景类型.根据需要,可以选择手工场景和基于目标的场景.各子选项含义如下. Manual Scenario:手工场景.就是手工指定场景如何运行,比较灵活,可以完成绝大多数的场景需求.此处还有一个选项,是否使用百分比模式,一般情况下不勾选