整体内容
- Jmeter性能测试-性能测试基础
- Jmeter性能测试-环境配置与脚本制作
- Jmeter性能测试-脚本制作与优化
- Jmeter场景执行与分布式
- Jmeter分布式与持续集成
- Jmeter性能分析与性能测试流程
本篇内容
- 性能测试导论
- 什么是性能测试
- 性能测试前提(重点)
- 性能测试主要指标(重点)
- 响应时间
- 并发数
- 吞吐率
- 资源使用率
- 性能测试工具
- 自研工具
- loadrunner
- jmeter
重点:
- 性能测试前提
- 性能测试主要指标
难点: - 常说的性能测试相关概念区别
定位
- 性能测试 初级+中级
- 掌握性能 测试流程,一般性能测试比功能测试和自动化测试的流程要长
- 懂得性能测试 脚本开发
- 懂得性能 场景设计 与资源监控
- 懂得 高并发 性能测试执行
- 性能测试 高级
- 性能分析
什么是(软件)性能测试
软件性能测试:是用一定的技术工具,找出或验证某些性能指标值的测试。
(通过接口测服务器的性能,通过接口向服务器发起请求,测试服务器的性能情况)
- 工具:python+locust库
- 找出:模拟N多个人来访问,在他可接受的时间里面,给他正常的响应结果,不是都要准确无误的结果。大部分正常,部分错误,不能说是bug,只能说性能指标不能满足要求。
包括可接受的时间范围(响应时间),就是性能测试中的性能指标。
在项目、某个借口从来没有做过性能测试时,要获取性能指标值作为基准值。
性能指标值:响应时间、并发用户数、服务器处理能力(TPS)、网络传输情况(吞吐量、吞吐率)、资源利用率 - 验证:性能变化趋势,提升or降低,和之前的做对比
广义(软件)性能测试
- “看看你有几斤几量”(负载测试):逐步增加并发用户数,发起请求,找到我们系统的拐点区间。
关键词:逐步加压
用97个并发用户数正常,用98个并发用户数出现异常。用97个并发用户数,持续运行一段时间,得到平均响应时间、服务器处理能力TPS、资源监控值、网络吞吐量/吞吐率,这就是当前性能测试的结果。 - “鸭梨好大哦!”(压力测试):通过一定并发用户数,持续比较长的时间请求,查看我们服务器的稳定性。
关键词:比较大的压力 + 比较长的时间 * 24
以前做压测,是7天乘以24小时,现在的话,都是互联网敏捷项目,可以压一晚上,也至少可以有12个小时。6点下班压到9点上班,也超过12小时了,不耽误白天上班时间。
97并发用户数的20%-30%持续比较长的时间,如果是97并发用户数的70%-80%持续时间可能就比较短一些了。一般不会用100%的最大并发用户数去做。
压测/负载/性能=负载测试(指标区间)+性能测试(准确的性能指标值)==>>测试报告
负载测试(并发用户区间)在前,压力测试(稳定性)在后。
生产服务器不稳定,三天两头宕机,这时候要做的是负载测试+性能测试+压力测试==>>测试报告
性能测试的前提
- 性能测试的必要性研究——关键项评估
- 主管部门、监管部门审查
- 涉及生命财产安全:银行系统、安防系统、医疗系统,电商系统中涉及到钱涉及到购买商品
- 大型新系统
- 核心系统
- 架构调整
- 业务副增:搞活动的时候,可能是一个页面或者某一些业务量剧增,对于活动页面或者可能剧增的关联业务进行性能测试
- 重大缺陷修复
- 可测性——可以量化为性能指标值
要求:活动页面,能够支持10w人访问。
缺少了关键要素,比如多长时间支持10w。
日均访问10w/t,不需要要求接口支持500并发用户,或者100并发用户。
一般企业,每个接口的并发用户达到50个,基本上可以满足了。
性能测试的基本原则
首先,单接口,再多接口。
然后,多接口构成业务/模块。
然后,多业务混合。
然后,再系统。
最后,全链路。
性能测试的必备条件
- 独立服务器
- 独立网络
性能测试的主要指标
- 并发/并发数/并发用户数
并发:
狭义:同一时间做相同事情
广义:同一时间做不同事情,混合场景
并发数:单位时间内向服务器发起请求的用户数 virtual user
并发用户数:用于模拟真实用户向服务器发起请求的性能测试虚拟用户数量
系统用户数:只要访问过系统的用户,可能含一次性访问的用户
在线用户数:当前正访问系统的用户,不一定有压力
- 响应时间 t1+t2+t3+t4 重要
从发起请求到收到请求响应的时间
网络传输时间 t1 t4
服务器处理时间 t2 t3
- 吞吐量/吞吐率(事物/s Kb/s)====衡量 网络的重要指标
吞吐量
事务数
吞吐率
数据量 - TPS(Transaction per second)——(服务器)最主要的性能指标
服务器每秒通过事务数
服务器处理事务数
服务器综合能力的体现,这个指标是测出来的,不是算出来的。
TPS和QPS的区别?
QPS query per second,每秒查询率。
有些企业,TPS等于QPS,是简化版。不等于数据库的查询次数,也可以查询redis缓存,找文件缓存,就不走数据库。
- 资源利用率(靠监控)
资源
cpu
内存
磁盘
i/o
性能测试的工具
- jmeter
- loadrunner
- 自研+python+locust