性能测试基本概念

性能测试须要掌握的知识:java

一、性能测试工具mysql

二、操做系统(windows,Linux(CPU,磁盘,网络,内存))redis

三、编程语言(java简单代码(jvm))sql

四、网络知识数据库

五、数据库(mysql、Oracle、redis、mongoDb)编程

六、中间件(Nginx,Tomcat)windows

七、架构(能够从项目的数据流向开始了解)浏览器

 

性能测试关注的经常使用指标(重点)tomcat

一、并发服务器

二、并发用户数

三、事务

四、响应时间

五、TPS

六、吞吐量

七、点击率

八、资源利用率

 

性能测试基础:

1、什么是软件性能测试

性能测试是指被测系统,在必定的负载下运行,监控系统的各项指标,是否符合需求(指标,指的CPU,内存,事务响应时间,等)若是不符合,就发现了系统的性能瓶颈

衡量指标有俩个方面:响应时间及时处理能力

2、性能测试的目的

 一、评估系统处理能力:验证系统处理能力是否达到规划时的水平

二、发现系统的性能瓶颈:某个接口响应时间是否很长,tps很低,硬件方面是否是能够支持

三、验证系统稳定性和可靠性:长时间的测试会不会致使内存溢出

四、系统调优:重复执行性能测试,来验证系统调优是否取得预期结果

 

问题分析:

中间件:优化链接数(Nginx,tomcat)

tps低:须要看服务器资源使用状况,若是资源使用状况很低,那么通常都是链接数致使的,须要调大你的链接数(包括中间件的链接数,数据库的链接数),

若是时资源使用很高,须要定位是哪一个进程致使的

 

3、性能测试方法

 

常规性能测试:a点到b点的性能测试,指以系统预期性能指标为前提,对系统不断增长压力,以验证系统可否达到预期性能。

负载测试:不断的增长系统的并发用户数(10-30-50),给系统不断的增长压力,直到性能指标(例如响应时间)超过预期值,或者系统已达到饱和状态

负载测试主要目的:是找到系统处理能力的极限在哪里

 

压力测试:负载必定的状况下(例如100),持续的运行一段时间(例如n*24小时),来验证系统的稳定性

 

4、性能测试的步骤

 性能测试的时候,先作单接口的性能测试场景,方便定位性能问题,

再作混合场景的性能测试,看有没有新的性能问题

 

5、性能测试应该关注的指标

用户关注的:系统的响应时间

响应时间的组成:网络( N1+N2+N3+N4)+服务器(A1+A2+A3)

 

测试(管理)人员关注的性能点:

性能关注点  

应用服务器/数据库服务器资源使用是否合理

资源利用率               

系统可否实现可扩展

可扩展性

系统最多支持多少用户

系统容量

系统最大业务处理能力

tps(每秒服务器可以处理的请求数)

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

数据库慢查询等

更换哪些设备可以提升系统性能

cup核数加大,内存加大,固态硬盘等,特殊节日堆服务器等

稳定性,可否支持7*24小时的业务访问

通常跑8小时,12小时

 

 

 

 

 

 

 

 

 

 

 

开发人员关注的性能:

架构设计是否合理

系统架构 (架构数据流向)

数据库设计是否合理

数据库设计(监控是否是有慢查询)

代码是否存在性能问题

代码(多个事务一块儿跑)

代码是否存在不合理的内存使用方法

代码(监控内容是否有内存溢出)
   

 

 

 

 

 

 

 

性能测试工具对比:(100以上均算大并发)

LR jmeter

专业化的工具,须要购买序列号,或者用破解版(国内目前可用lr11)

开源的性能测试工具
学习成本低,只需学习三大部分 作一个请求就须要设计不少插件                           
脚本:lr支持录制,但不建议录制(对浏览器版本依赖强,可能录制不成功) 录制功能须要借助badboy,不建议录制
报表:自带的监控信息很全 须要本身装插件
大并发时数据比较准确 大并发时数据不是很准确
支持线程和进程 只支持线程,不支持进程
数据库处理比较麻烦 sql处理很方便

 

 

 

 

 

 

 

 

 术语解释:

并发,分为狭义广义俩种并发:

狭义并发:全部用户在同一时间请求同一接口

广义并发:多个用户在同一时间请求不一样的接口

在性能测试中,通常时先进行狭义并发,再进行广义并发

性能测试的时候,先作单接口的性能测试场景,方便定位性能问题,再作混合场景的性能测试,看有没有新的性能问题

 

并发用户数:

系统用户数:注册过系统的全部用户,包括天天的活跃用户数以及僵尸用户数

在线用户数:登陆系统的用户,但不必定会对服务器产生压力,例如:有N个用户状态为在线状态,可是并不必定都会有请求,对服务器形成压力

并发用户数:对服务器产生压力的用户,例如:可能在线的N个用户中,只有20%的用户对服务器产生了压力,也就是说这个接口只有20%的用户是并发用户

相关文章
相关标签/搜索