性能学习之一--基础知识,三大性能测试指标

Posted panpan0301

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能学习之一--基础知识,三大性能测试指标相关的知识,希望对你有一定的参考价值。

一.什么是性能测试

什么是软件性能?

对于一个使用者来说,性能就是响应速度的快和慢.但是对于性能测试人员来说,性能指的不光是响应时间,还包括稳定性,并发,同时在线人数,内存使用情况,是否能横向扩展,资源的使用率,应用服务器使用率,cpu,内存,磁盘等.

在实际使用过程中,cpu使用率不能达到100%.

软件性能(资源利用率):应用程序线程池:当连接池占满后,应用服务器的请求不能再发

    数据库连接池:一个数据库的对外提供的连接池,一个是应用程序里面建立的通道,一般我们说的数据库连接池指的是这个.当数据库连接池满了之后,在新的请求过来之后要等待.

表面性能:响应时间   并发用户数  tps

底层性能:硬件的资源利用率(cpu,mem,I/O,network) 软件的资源利用率(线程池,数据库连接池,sql执行效率,JVM)

一般公司的并发:

单机--------业务(走业务逻辑,最终访问关系型数据库(表跟表之间有关联关系))---------接口/功能      并发/tps       20-200用户/每秒

单机     接口                  非关系型数据库          并发/TPS            1000+

关系型数据库:采用关系模型来组织数据,数据之间有关联关系,将数据对应起来

  mysql,orcal,数据存储是存在硬盘中,如果存 到缓存,一重启电脑就没了.当进行sql查询时,从硬盘里面读数据到内存里面

  一般数据存储使用关系型数据库

非关系型数据库:键值对

  读取时从内存里读,读取速度快.数据之间没有关联关系,只存键值对.

  一般当做缓存来使用,临时存放.

软件性能需要快慢,稳定性,并发都属于软件性能,另外比如说是否能进行横向扩展,硬件资源使用率,应用服务器使用率,软件资源使用率(web容器的线程池,数据库连接池)

线程池:

什么是软件性能测试?

性能测试主要是通过自劢化的测试工具或者手段对服务器模拟发起多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试.

软件性能测试的目的

1.使软件达到一个正常的性能指标要求

2.在异常情况下能否正常使用

3.系统在长时间稳定情况下是否能正常使用

4.找到系统的瓶颈并进行优化

 

 性能测试三大指标

二.并发

狭义并发:在同一个瞬间或者同一 时刻对同一个应用的同一个接口发起相同的访问.

  同一时刻  同一应用  同一接口  同时发起请求

广义并发:在同一个时间段内向同一个应用发起请求.

  同一个时间段内  向同一个应用

并发用户数:同一时间段内向服务器发起请求的数量.

eg.3人  1h内  15min每人  并发用户数是60min/15min=4

此时,用户角度是3个并发,但是在性能角度讲是4个并发.做性能测试要从性能角度考虑

eg2.

LR10个并发访问  登录   响应时间0.2s    并发用户数:此时不能计算并发数,因为没有时间段.

若计算1s内,则并发用户数=1s/0.2s*10=50个并发用户/s(服务器角度:每秒钟处理50个请求)

                2s      1s    1s/2s*10=5个并发用户/s(服务器角度:每秒处理5个请求)

故:计算并发用户数的三要素:时间段,多少个并发,响应时间

 

总结:并发用户数三要素  用户角度/工具角度  系统角度(级别)

 

三.响应时间

性能测试时间----响应时间(reseponse time)

请求的响应时间:从开始发送请求到接收到整个返回结果,叫做响应时间.如下图,响应时间=(N1+N2+N3+N4)+(A1+A2+A3+A4)

服务器的响应时间(服务器处理时间):从服务器拿到请求开始到服务器接到请求.服务器响应时间=A1+N2+A2+N3+A3

LR计算的响应时间是:请求的响应时间

技术分享图片

当请求开始进入数据库处理后应用程序处理暂时停止,线程或者进程暂时停止,将线程给下一个请求,数据库开始执行sql语句

执行sql语句时,数据库先进行语法检查--语义分析(检查权限)--打开所操作的表--检查缓存利用率(如果有直接从缓存里面去,如果没有)--执行sql语句.--表关闭--关闭连接

通过网络返回给服务器

这个时候线程恢复工作,继续执行

四.TPS(transacation processing systems)

每秒通过的事务数

事务:计时开始到计时结束,可以放一个请求,也可以放多个请求,建议一个事务放一个请求.

事务不是对页面的一次操作,事务是自己定义的一个行为.

eg.事务开始(登录)--url=登录--事务结束(登录)

tps:每秒钟可以处理的事务

LR  10个并发    登录    响应时间2s    并发用户数:每秒处理5个用户    tps=5/s

                  响应时间0.2s  并发用户数:每秒处理50个用户  tps=50/s

 

eg.

一个售票窗口,10个人去买票,每1s卖一张票,平均响应时间多少  

[测响应时间要在一个特定的并发用户数前提条件下,测哪个接口]

请求响应时间=(1+2+3+4+5+6+7+8+9+10)/10

服务器响应时间:1s

技术分享图片

 

答案:

1题:

一个人买票,响应时间1s.

3题:

同上面的例子.不是卖票慢了,也不是处理慢了,解决方法:可以增加售票窗口

4题:

平均RT=1s

5题:

平均RT=(1+2+3...+15)/15=(150个并发,10个线程)

10个并发用户数,10个线程处理,一块处理.150个并发,10个线程来处理,每个线程15个人

 

 

 

以上是关于性能学习之一--基础知识,三大性能测试指标的主要内容,如果未能解决你的问题,请参考以下文章

聊一聊性能测试指标

性能测试 基础概念

大话性能测试---基础篇

后台性能测试规范

性能测试学习总结

性能测试 案例+报告 模板