性能测试基础笔记
- 什么是性能
用户角度:软件反应速度快慢
开发角度:系统架构和数据的设计
运维角度:系统最大的承载能力,能否扩容。
测试角度:基础前3个综合考虑。全都要
生活中测试的例子:彩排
- 性能测试的时机--什么情况下做
第一个版本不需要做 ----> 第一次双11
什么时候开始做?------->当用户数量达到一定程度时候,介入性能测试
或者做局部功能的性能测试
性能测试一般是放在功能测试以后。
- 性能测试的分类
在性能测试基础文档中
4.性能测试指标
4.1并发用户数
多个用户对某个功能同时操作 (单一场景)
多个用户对多个功能同时操作 (复合场景)
4.2响应时间
从我们点击使用发送请求到服务器(开始)---返回到客户端的(结束) 时间。
返回到客户端:1.网络传输时间2.服务器的处理时间3.客户端的呈现时间
4.3吞吐量
指在一次性能测试过程中网络上传输的数据量的总和。发送数据量+接收数据量
前3个指标指的都是软件方面的性能
并发用户数和响应时间的关系
TPS :每秒钟系统能够处理事务或交易的数量
TPS =并发用户数/响应时间
4.4资源利用率,针对服务器的硬件
指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量
5.同一时间的用户数量
并发用户数量 在线用户数量 注册用户量(最大)
- 选择服务器所需要的配置
Cpu :主要解释计算机指令以及处理计算机软件中的数据 80%
内存:与cpu沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存分为物理内存页面交换(Paging),SWAP内存(虚拟内存) 80%
网络:即带宽
磁盘 80%
中间件:常用的中间件例如web服务器Tomcat,Weblogic web服务器,JVM(java虚拟机),ThreadPool线程池,JDBC数据驱动 IIS
数据库:mysql
程序
- 最佳并发用户数和最大并发用户数
最佳并发用户数≥系统平均负载
最大并发用户数≥系统峰值负载
要求一个原则:
在系统日常运行过程中,保证系统状态稳定。
在峰值的时候,包装系统不会出错。
- 性能测试流程
来源:注意一个原则2 8原则:80%的订单发生在每天20%的时间里面
8.1非功能性需求
- 客户要求的
- 根据以前的数据测试----近3个月
- 借鉴同类型的项目
8.2性能需求提取加工
- 性能测试点---测试场景---用户使用频繁的业务----登录
- 性能测试点---测试场景--消耗的资源较大的业务---购物车
- 性能测试点---测试场景--绝对不能出错的业务----支付
8.3测试哪些数据
响应时间
TPS
并发用户数
- 系统架构分析
9.1应用服务器:存储处理业务的功能代码
数据库服务器:数据库mysql
应用服务器和数据库服务器分开(资源竞争的问题)
9.2本地缓存和分布式(多个服务器共同存储)缓存(减轻数据库读写压力)
9.3方向代理和负载均衡(Tomcat)
代理:
方向代理:
负载均衡:增加更多的服务器,减轻压力。如果其中一台服务器挂掉了,其他服务器把任务接过来继续。数据库同比,通过日志同步。
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调优----------------找到代码中的具体类/方法