软件性能测试的基本概念和计算公式

一、软件性能的关注点

对一个软件做性能测试时需要关注那些性能呢?

我们想想在软件设计、部署、使用、维护中一共有哪些角色的参与,然后再考虑这些角色各自关注的性能点是什么,作为一个软件性能测试工程师,我们又该关注什么?

首先,开发软件的目的是为了让用户使用,我们先站在用户的角度分析一下,用户需要关注哪些性能。

对于用户来说,当点击一个按钮、链接或发出一条指令开始,到系统把结果已用户感知的形式展现出来为止,这个过程所消耗的时间是用户对这个软件性能的直观印象。也就是我们所说的响应时间,当相应时间较小时,用户体验是很好的,当然用户体验的响应时间包括个人主观因素和客观响应时间,在设计软件时,我们就需要考虑到如何更好地结合这两部分达到用户最佳的体验。如:用户在大数据量查询时,我们可以将先提取出来的数据展示给用户,在用户看的过程中继续进行数据检索,这时用户并不知道我们后台在做什么。

用户关注的是用户操作的相应时间。

其次,我们站在管理员的角度考虑需要关注的性能点。

1、 相应时间

2、 服务器资源使用情况是否合理

3、 应用服务器和数据库资源使用是否合理

4、 系统能否实现扩展

5、 系统最多支持多少用户访问、系统最大业务处理量是多少

6、 系统性能可能存在的瓶颈在哪里

7、 更换那些设备可以提高性能

8、 系统能否支持7×24小时的业务访问

再次,站在开发(设计)人员角度去考虑。

1、 架构设计是否合理

2、 数据库设计是否合理

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

4、 系统中是否有不合理的内存使用方式

5、 系统中是否存在不合理的线程同步方式

6、 系统中是否存在不合理的资源竞争

那么站在性能测试工程师的角度,我们要关注什么呢?

一句话,我们要关注以上所有的性能点。

二、软件性能的几个主要术语

1、响应时间:对请求作出响应所需要的时间

网络传输时间:N1+N2+N3+N4

应用服务器处理时间:A1+A3

数据库服务器处理时间:A2

响应时间=N1+N2+N3+N4+A1+A3+A2

2、并发用户数的计算公式

系统用户数:系统额定的用户数量,如一个OA系统,可能使用该系统的用户总数是5000个,那么这个数量,就是系统用户数。

同时在线用户数:在一定的时间范围内,最大的同时在线用户数量。

同时在线用户数=每秒请求数RPS(吞吐量)+并发连接数+平均用户思考时间

平均并发用户数的计算:C=nL / T

其中C是平均的并发用户数,n是平均每天访问用户数(login session),L是一天内用户从登录到退出的平均时间(login session的平均时间),T是考察时间长度(一天内多长时间有用户使用系统)

并发用户数峰值计算:C^约等于C + 3*根号C

其中C^是并发用户峰值,C是平均并发用户数,该公式遵循泊松分布理论。

3、吞吐量的计算公式

指单位时间内系统处理用户的请求数

从业务角度看,吞吐量可以用:请求数/秒、页面数/秒、人数/天或处理业务数/小时等单位来衡量

从网络角度看,吞吐量可以用:字节/秒来衡量

对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,他能够说明系统的负载能力

以不同方式表达的吞吐量可以说明不同层次的问题,例如,以字节数/秒方式可以表示数要受网络基础设施、服务器架构、应用服务器制约等方面的瓶颈;已请求数/秒的方式表示主要是受应用服务器和应用代码的制约体现出的瓶颈。

当没有遇到性能瓶颈的时候,吞吐量与虚拟用户数之间存在一定的联系,可以采用以下公式计算:F=VU * R /

其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间

4、性能计数器

是描述服务器或操作系统性能的一些数据指标,如使用内存数、进程时间,在性能测试中发挥着“监控和分析”的作用,尤其是在分析统统可扩展性、进行新能瓶颈定位时有着非常关键的作用。

资源利用率:指系统各种资源的使用情况,如cpu占用率为68%,内存占用率为55%,一般使用“资源实际使用/总的资源可用量”形成资源利用率。

5、思考时间的计算公式

Think Time,从业务角度来看,这个时间指用户进行操作时每个请求之间的时间间隔,而在做新能测试时,为了模拟这样的时间间隔,引入了思考时间这个概念,来更加真实的模拟用户的操作。

在吞吐量这个公式中F=VU * R / T说明吞吐量F是VU数量、每个用户发出的请求数R和时间T的函数,而其中的R又可以用时间T和用户思考时间TS来计算:R = T / TS

下面给出一个计算思考时间的一般步骤:

A、首先计算出系统的并发用户数

C=nL / T F=R×C

B、统计出系统平均的吞吐量

F=VU * R / T R×C = VU * R / T

C、统计出平均每个用户发出的请求数量

R=u*C*T/VU

D、根据公式计算出思考时间

TS=T/R

针对一个web性能测试常见的指标

1、注册用户数

注册用户数指软件中已经注册的用户,这些用户是系统的潜在用户,随时都有可能上线。这个指标的意义在于让测试工程师了解系统数据中的数据总量和系统最大可能有多少用户同时在线。

2、在线用户数

在线用户数是指某一时刻已经登录系统的用户数量。在线用户数只是统计了登录系统的用户数量,这些用户不一定都对系统进行操作,对服务器产生压力。

3、并发用户数

不同于在线用户数,并发用户数是指某一时刻向服务器发送请求的在线用户数,他是衡量服务器并发容量和同步协调能力的重要指标,从这个含义上讲,我们可能会如下两种理解:

同一时刻向服务器发送相同或者不同请求的用户数,也就是说,既可以包括对某一业务的相同请求,也可以包括对多个业务的不同请求

同一时刻向服务器发送相同请求的用户数,仅限于某一业务的相同请求

4、请求的相应时间

相应时间就是用户感受软件系统为其服务所消耗的时间。对于web系统,请求的相应时间指的是从客户端发起的一个请求时间,到客户端接收到从服务器返回的相应结束。

(1)在3秒之内,页面给予用户相应所有显示,可认为是very nice(非常好)

(2)在3-5秒之内,页面给予用户相应所有显示,可认为是Not bad(还不错)

(3)在5-10秒之内,页面给予用户相应所有提示,可认为是accept reluctantly(勉强接受)

(4)超过10秒后就有点让人不耐烦, 用户可能会对网页说Bye Bye(再见)

5、事务的相应时间

事务可能由一系列请求组成,事务的响应时间主要是针对用户而言,属于宏观上的概念,是为了向用户说明业务响应时间而提出的.例如:跨行取款事务的响应时间就是由一系列的请求组成的.事务响应时间是直接衡量系统性能的参数.

6、每秒点击数

每秒点击数是指每秒钟像web服务器提交的HTTP请求数,它是衡量服务器处理能力的一个常用指标。需要注意的是,这里的相应时间并非鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个HTTP请求,切勿混淆。

7、吞吐率

吞吐率通常指单位时间内从服务器返回的字节数,也可以单位时间内客户提交的请求数。吞吐率是大型web系统衡量自身负载能力的一个重要指标,一般来说,吞吐率越大,单位时间内处理的数据就越多,系统的负载能力也强。吞吐率yu很多因素有关,服务器的硬件配置,网络的宽带及拓扑结构,软件的技术架构等。

8、业务成功率

指多用户对某一业务发起操作的成功率。例如,测试网络订票系统的并发处理性能,在早上8:00——8:30半小时的高峰里,要求能支持10万比订票业务,其中成功率不少于98%。也就是说系统允许200笔订票业务超时或者因其他原因导致未能订票成功。

9、TPS

TPS表示服务器每秒处理的事务数,他是衡量系统处理能力的一个非常重要的指标,在性能测试中,通过检测不同用户的TPS,可以估算出系统处理能力的拐点。

10、资源利用率

指的是对不同的系统资源的使用程度,例如服务器的CPU利用率,磁盘利用率等.资源利用率是分析系统性能指标进而改善性能的主要依据,因此是WEB性能测试工作的重点.

资源利用率主要针对WEB服务器、操作系统、数据库务器,网络等,是测试和分析瓶颈的主要参考.在WEB性能测试中,更根据需要采集相应的参数进行分析。

Web服务器指标
指标 说明
Requests Per Second(Avg Rps) 平均每秒钟响应次数=总请求时间 / 秒数
Avg time to last byte per terstion (mstes) 平均每秒业务脚本的迭代次数 ,有人会把上面那个混淆
Successful Rounds 成功的请求
Failed Requests 失败的请求
Successful Hits 成功的点击次数
Failed Hits 失败的点击次数
Hits Per Second 每秒点击次数
Successful Hits Per Second 每秒成功的点击次数
Failed Hits Per Second 每秒失败的点击次数
Attempted Connections 尝试链接数
数据库服务器性能指标
指标  说明
User 0 Connections 用户连接数,也就是数据库的连接数量
Number of deadlocks 数据库死锁
Butter Cache hit 数据库Cache的命中情况
系统的瓶颈定义
性能项 命令 指标
CPU限制 vmstat 当%user+%sys超过80%时
磁盘I/O限制 Vmstat 当%iowait超过40%(AIX4.3.3或更高版本)时
应用磁盘限制 Iostat 当%tm_act超过70%时
虚存空间少 Lsps,-a 当分页空间的活动率超过70%时
换页限制 Iostat, stat 虚存逻辑卷%tm_act超过I/O(iostat)的30%,激活的虚存率超过CPU数量(vmstat)的10倍时
系统失效 Vmstat, sar 页交换增大、CPU等待并运行队列
稳定系统的资源状态
性能项 资源 评价
CPU占用率 70%
85%
90%+ 很差
磁盘I/0 <30%
<40%
<50%+ 很差
网络 <30% 带宽
运行队列 <2*CPU数量
内存 没有页交换
每个CPU每秒10个页交换
更多的页交换 很差

通俗理解:

  日访问量

  常用页面最大并发数

  同时在线人数

  访问相应时间

网站测试标准

性能测试通过标准 

1、所有计划的测试已经完成。

2、所有计划收集的性能数据已经获得。

3、所有性能瓶颈得到改善并达到设计要求。

性能测试用例(可能写的不太好,大概是这个意思)

性能测试通过标准

1、所有计划的测试已经完成。

2、所有计划收集的性能数据已经获得。

3、所有性能瓶颈得到改善并达到设计要求。

性能测试 - - 常见的性能测试指标相关推荐

  1. 性能测试:性能测试常见指标

    前言 性能测试的基础:就是在确保功能实现正确的前提下,通过合适的性能测试加压方式和策略,并收集考察服务端应用程序的各项性能指标,以及服务器硬件资源的使用情况,来评估是否存在性能问题隐患. 那今天作为性 ...

  2. App测试中有哪些常见的性能测试指标?出具App测试报告的软件测试机构推荐

    1.App常见的性能测试指标主要有以下几个: 响应:响应时间和响应速度直接影响到用户的体验度,进而影响到产品的日活.留存.应用程序的响应时间包括安装.卸载.启动.切换各功能页面的耗时. 内存:在And ...

  3. 性能测试:概念,性能指标,监控指标,常见的性能测试,新测试模型,性能测试策略

    目录 1. 什么是性能测试 Performance Testing 1.1 性能概念 1.2 性能测试概念 1.3 软件效率是指什么 1.4 软件效率的哪些方面可以用来衡量软件的性能 1.5  要解决 ...

  4. 软件性能测试常见指标

    软件性能测试是指测试I程师运用各种自动化测试工具在正常.峰值或者特殊异常情况下对系统软件进行测试,以检测系统的性能指标.性能测 也被称为多用户并发性能测试,负载测试.稳定性测试.压力测试.可靠性测试等 ...

  5. 【软件测试基础知识】性能测试常见指标有哪些

    性能测试指标一般可以划分为:业务指标和系统资源指标两大部分,对于一般用户而言,对于系统性能的要求主要是业务指标,而系统性能指标是系统性能的一个反应,它可以帮助分析系统性能瓶颈,优化系统或去发现一些隐形 ...

  6. 性能测试常见指标有哪些

    1.性能指标分类 系统性能指标 资源性能指标 中间件指标 数据库指标 稳定性指标 可扩展性指标 可靠性指标 2.系统性能指标 响应时间 系统处理能力 吞吐量 并发用户数 错误率 2.1 响应时间 Re ...

  7. 【性能测试】常见的性能测试指标

    从性能测试分析度量的角度,性能指标的维度如下: 系统性能指标 资源性能指标 中间件指标 数据库指标 稳定性指标 可扩展性指标 可靠性指标 接下来从各自维度常见指标及指标含义看看各个性能测试指标 一.系 ...

  8. 转:性能测试常见术语

    内容来自<LoadRunner性能测试实战>一书. 性能测试常见的术语主要有并发.并发用户数量.请求响应时间.吞吐量.吞吐率.TPS.点击率.资源利用率等 并发 狭义的并发一般分两种情况. ...

  9. 性能测试常见瓶颈分析及调优方法

    性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库.从操作系统(CPU调度,内存管理,进程调度,磁盘I/O).网络.协议(HTTP, TCP/IP ),还是从应用程序代码,数据库调优,中间件配 ...

最新文章

  1. 什么是JAVA语言为什么要学习JAVA
  2. 看完这个你还不理解右值引用和移动构造 你就可以来咬我(下)
  3. linux cmake 安装mysql5.5.11_以及更高版本_linux cmake 安装mysql5.5.11,以及更高版本
  4. mysql+linux+无法启动服务无法启动不了_Linux实例中MySQL服务常见的无法启动或启动异常处理...
  5. 二进制文件mysql创表_MySQL_MYSQL中如何存取二进制文件,首先创建测试表testtable CREATE TA - phpStudy...
  6. router vue 动态改变url_vue里router-link标签设置动态路由的3个方法
  7. 女程序员口述:我活最好,年薪35万!
  8. 数据产品-数据可视化大作“数据大屏”
  9. Visio中图进行任意区域进行颜色填充
  10. PHP curl函数制 exec_ch和get_headers
  11. Atitit 读取文本文件内容功能的实现 艾提拉 总结 attilax总结 1.1. FileUtilsAti.readFileToStringAutoDetectEncode(txtF); 1 1
  12. 【Axure原型】新闻资讯客户端APP原型 今日头条同类APP实战原型
  13. Redis下载与安装 详细教程
  14. ForkJoinPool线程池原理分析
  15. 自旋量子计算机,人类首次直接“看到”量子自旋效应
  16. a标签去下划线 菜鸟教程_HTML下划线标签示例教程
  17. Latex中表格过长如何实现跨页表格——跨页表格宏包longtable的使用?
  18. 关于C++ variant 类型问题
  19. python手写字体程序_深度学习---手写字体识别程序分析(python)
  20. Ceph入门到精通-rados bench性能基准测试

热门文章

  1. BootLoader有什么作用?
  2. 解决Mac无法关闭80端口,无法将hosts域名指向本地80端口
  3. PCI设备的访问方法_桥设备(type1)
  4. SpringBoot整合redis使用setnx完成分布式锁
  5. 香港公司银行开户需要注意。
  6. Java8 时间日期使用总结
  7. 宿小程民序的开发有哪些功能
  8. java aes 中文_从Java到Python的AES加密
  9. ventory做U盘启动,使用vmware进行测试U盘系统盘是否制作成功
  10. 伯努利朴素贝叶斯【机器学习算法一朴素贝叶斯2】