1.什么是性能
用户角度:软件反应速度快慢
开发角度:系统架构和数据的设计
运维角度:系统最大的承载能力,能否扩容。
测试角度:基础前2个综合考虑。全都要
生活中测试的例子:彩排
2.测试的时机--什么情况下做
第一个版本不需要做 - 第一次双11
什么时候开始做 -当用户数量达到一定程度时候,介入性能测试或者做局部功能的性能测试
性能测试一般是放在功能测试以后
3.性能测试的分类
4.性能测试指标
4.1并发用户数
多个用户对某个功能同时操作(单一场景)
多个用户对多个功能同时操作 (符合场景)
4.2响应时间
从我们点击使用发送请求到服务器(开始)--返回到客户端的(结束)时间。
返回到客户端:1.网络传输时间 2.服务器的处理时间 3.客户端的呈现时间
4.3 吞吐量
指在一次性能测试过程中网络上传输的数据量的总和。发送数据量+接收数据量
前3个指标指的都是软件方面的性能
并发用户数和响应时间的关系
TPS:每秒钟系统能够处理事务或交易的数量
TPS:并发用户数/响应时间
4.4资源利用率,针对服务器的硬件
指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量
5.同一时间的用户数量
并发用户数量 在线用户数量 注册用户数量(最大)
6.选择服务器所需要的配置
cpu:主要解释计算机指令以及处理计算机软件中的数据
内存:与cpu沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存分为物理内存、页面交换(Paging),SWAP内存(虚拟内存)
磁盘
网络:即带宽
中间件:常用的中间件例如web服务器Tomcat,weblogic web服务器,JVM(java虚拟机)、ThreadPool线程池,JDBC数据驱动 IIS
数据库:mysql
程序
7.最佳并发用户数和最大并发用户数
最佳并发用户数>=系统平均负载
最大并发用户数>=系统峰值负载
要求一个原则:
在系统日常运行过程中,保证系统状态稳定,
在峰值的时候,保证系统不会出错,
9.系统架构分析
9.1应用服务器:存储处理业务的功能代码
数据库服务器,数据库mysql
应用服务器和数据库服务器分开(资源竞争的问题)
9.2 v v本地缓存和分布式(多个服务器共同存储)缓存 (减轻数据库读写压力)
9.3反向代理和负载均衡
代理:
方向代理:
负载均衡:增加更多的服务器,减轻压力。如果其中一台服务器挂掉了,其他服务器把任务接过来继续。数据库同比,通过日志同步。
9.3数据库服务器优化
查询(select)和写(删改加)分类
分类 ---业务分类
分表 ---QQ的所有用户----根据注册月份来分表
- 性能测试计划
10.1项目介绍
10.2性能测试范围
根据性能需求来确定
10.3性能测试化环境
和生产环境不是一个,除了IP不一样其他一样(独立)
10.4性能测试环境--数据准备
人为制造-用于模拟生产环境的运行场景
10.5性能测试的工具选择
开源免费------------------选择使用频率高的工具 jmeter
付费------------------------有售后的,有人教(收费高)loadRunner 2/3W 有保障
10.6性能测试执行(策略)
测试20亿用户同时使用会不会崩溃
压力由低到高 1 10 100 300 800 1000 1500 2000
场景从单一场景----------组合起来测试
10.7人力安排
不仅仅安排测试工作,开发运维配合
11性能测试环境搭建要求
功能测试环境 -------是由多个项目共用一个服务器
性能测试环境(理想状态)
干净。独立-----单独的服务器部署
和生产环境一样除了IP
硬件设备一样
软件设备一样
版本一致 中间件一直 数据库版本一直 系统一致
磁盘一致 数据库大小一致
12建模
低配模仿高配
用个体模拟集群
在建模过程中,会有损耗
13性能执行与调优
中间件调优-----------修改配置文件
数据库调优-----------找到sql
Jvm调优----------------找到代码中的具体类/方法