性能测试见解1

最近在翻阅性能测试的书籍,想整理性能测试的相关知识,但是发现,很多书籍在性能测试的原理、性能测试的指标、以及性能测试用例设计这一块讲的很少,主要还是围绕工具使用开展的。所以对这一块需要深入的地方比较多,我把重要的地方都圈出来,做一个记录。

1、性能测试的概念

性能测试有很多细分项,比如压力测试、负载测试、稳定性测试、容量测试、并发测试、配置测试等等。

我按照自己的理解整理一下这些测试。性能测试是为了测试系统在不同业务场景下的承受能力。

1.1如果一个系统给出明确的性能指标,比如系统在多少用户的并发下,响应时间达到多少,cpu占用率达到多少。这个就属于并发测试

1.2如果一个系统不明确他能够满足的最大在线人数是多少,可以使通过不断给他增加在线人数的压力,能够承受范围内的最大阀值和业务能力。这个就属于负载测试。如果增加压力,直到系统资源达到饱和或者属于失效状态,就属于压力测试。

1.3如果一个系统在一定的软硬件条件下,加载一定的业务压力(cpu在70%左右)运行一段时间,查看系统是否有内存泄漏,资源抢占等问题。这个为稳定性测试或者可靠性测试

1.4改变系统的软硬件配置,找到系统各项资源的最优分配原则。这个是配置测试。

2、对并发的理解

并发是指虚拟用户同时操作相同的业务或不同业务,对服务器施加压力。这个过程中,虚拟用户“同时”,指的是同一时间点。但是在服务器看来,并不是同一时间点,因为cpu运行完一个线程或进程才会运行下一个,这个时候,其他线程就处于排队等待的状态。如果在这个并发时间过程中,发生业务失败较多,就需要分析业务失败的原因是不是哪个资源不足,或者性能瓶颈。也可以发现这个过程中是不是有内存资源争夺的情况。

3、并发数量的计算

某网站用户数1000人,其中在线用户数200人,即系统一天之内峰值用户数是200人。但是这200人有人在浏览网页,有人在下订单,有人在交易,真正对系统产生压力的用户有多少呢?只有与服务器进行交互的操作才会对系统性能产生影响(所以服务器承受的压力不仅取决于业务并发用户数,还取决与用户的业务场景)。

那么可以通过估算得到:平均用户数=login session数量*login session的平均长度/考察的时间长度。(session:时域、会话。指在一个系统登录到退出系统的时间段。一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间,Session 的作用就是它在 Web服务器上保持用户的状态信息在任何时间从任何设备上的页面进行访问。因为浏览器不需要存储任何这种信息,所以可以使用任何浏览器,即使是像 Pad 或手机这样的浏览器设备。)

例如公司有200人上班,每天8小时的工作时间,其中登录基本都处于刚上班时,RTC一天的使用时间大概是5小时,所以平均用户数=200*5/8=125。

4、吞吐量

是指单位时间内处理的客户端请求数量,可以反应服务器的业务处理能力,可以说明系统的负载能力。

5、吞吐量与并发用户数的关系

在系统没有遇到性能瓶颈时,吞吐量和并发用户数成正比的关系。即单位时间内,并发虚拟用户数*服务器请求数越大,则吞吐量越大。

6、响应时间

响应时间是指客户端向服务器端发送请求,并得到回应的这一段时间。所以页面响应时间=网络传输时间+web服务器的处理时间+数据库服务器的处理时间+客户端的处理时间。(网络传输时间经常不可控,在局域网内做性能测试来规避这个时间)

这里一般都是指系统稳定运行一段时间,统一业务的平均响应时间。

7、点击数

衡量web服务器的处理能力。点击数指客户端向服务器发送的请求数。系统页面的一次鼠标点击一般会发送出多个请求。

8、性能计数器

9、资源利用率

cpu、内存、磁盘

10、错误率

 

posted @ 2019-05-15 16:00  childish  阅读(156)  评论(0编辑  收藏  举报