一.性能测试:目的/意义,误区
功能测试 VS 性能测试:
测试一辆汽车:
功能: 轮子转不转,方向盘转向动不动,点火能不能打开发动机… --使用者,功能能否按照我的想法去正常使用(应用)
性能: 噪音大不大,百公里加速多少秒,发动机省不省油--站在好不好用的基础上
误区:性能测试不是说你会用性能工具就能会的!
性能测试 :场景设计--用工具模仿用户访问我的系统样子
性能测试的时机:上线前!
--性能测试 确定了没有明显bug的时候 做性能测试才有意义!
性能的目的:画出一道预警线,防止开发完的项目线上的时候忽然出问题!
性能的意义: 找到最小的代价,能够正常运行公司的业务.
(最少的服务器投入 -- 最大的用户人数)
开发写完的程序,会部署在服务器上。开发的程序启动,会占用服务器资源
服务器的资源有限 -- 一旦资源被占用满了,服务器会出问题,导致程序无法运行!
二.性能压测指标详解
程序的运行,服务器,客户端
1.程序的运行是什么?
只要有人访问项目 就会占用资源,如果访问的人一多,资源就会被占满,占满--死机
为什么有人访问会占用资源?
请求与服务器的关系:线程,进程
进程:电脑里运行的软件都叫进程 -- QQ 微信 LOL 爱奇艺(.exe软件,不是网页)
线程(例如开发人员写好的代码,打包成了一个jar包,运行起来就是一个进程,然后有人访问了该进程,该进程就会创建一个线程):
每访问一次进程,该进程就会创建一个线程(即一旦有人访问,就会自动创建一个线程);
三.性能好与不好由什么决定
30个人访问 16核CPU的服务器,难道cpu就会100%么?(不会)
原因:线程执行完毕后,会被回收!
只要程序处理(由开发写的代码质量决定)的够快,就能够迅速回收掉多余的线程
一个后端服务,性能好或者不好,由什么决定--由处理速度决定 -- 具体到某一个值(吞吐量)
-进一出 就是吞吐(吞吐量就是看QPS和TPS两个值)
QPS :每秒查询率(不涉及数据变化的操作)
TPS:每秒事务处理数 涉及数据变化的操作
I