全链路测试
听起来,很高大上,但是没几家能落地 真正做全链路性能测试,只有大公司才可能落地
全链路:就一个请求,从头到尾所有的环境,都进行性能测试
例如,公司中的一个登录业务,需要经过多少个服务,要调用多少个接口,这个接口的完整数据流是否清楚。
- 一个一个接口把性能测试做下来。
- 每一个业务的性能测试做下来。
- 多个业务的性能测试做下来。
需要解决单个接口,单个业务的性能瓶颈后,才可以开始全链路测试。
模拟生产环境,真实用户对业务使用分配
- 各种业务
- 各种业务的用户量不相同
- 业务覆盖广,深度深
问题
- 涉及系统多
- 如何模拟用户真实流量分配
- 接口业务多
如何开展
- 分析生产用户流量
- 各个业务接口性能测试脚本开发
- 压测环境要模拟生产环境
- 压测数据
- 实时全流程监控
如何优化
- 单系统优化
- 关键点优化
- 业务流程优化
性能场景设计
- 性能测试场景
- 负载测试场景
- 压力测试场景
- 面向目标场景
- 混合场景
- 波浪形场景
性能场景设计-性能测试场景
- 普通线程组
- 服务器接口性能测试,一定要是多用户并发
- 多用户:jmeter线程组中的「线程数」
- 多用户并发=多个人
- 在性能测试中,这个「人」是如何模拟的?
一个软件、程序、代码运行起来,就会生产一个进程 一个进程中真正干活的是线程 性能测试中,模拟多用户并发,不同工具可能使用不同的方式。 jmeter使用的是线程 loadrunner可以使用进程、线程,默认是线程 locust使用的是协程
线程组
线程数:相当于用户个数
Ramp-Up时间(秒):启动所有线程数的时间。在这个时间内,线程只要启动了,就去执行请求,是广义的并发
例如:当「Ramp-Up」设置为2,「线程数」设置为10:在2秒钟结束,10个用户都启动好。不保证在2秒钟过程中,到底是怎么启动的。
理论上 Jmeter没有显示线程数的数量,可以设置为任意大的数字。
实际上,受电脑本身的资源影响,不可能无限大。
一台电脑,cpu的频率直接影响线程数量,一般而言,一台电脑jmeter(http协议)能创建的线程数,大约在2000左右,保守在1000-1500
ramp-up设置:
- 线程数<100,1s
- 线程数<200,2~3s
- 200<线程数<1000 3~5s
循环次数:至少设置为1
永远:勾选后会持续运行直到手动停止
调度器:需要配合「永远」一起使用。输入一个持续时间可以指定任务运行一段时间后停止
启动延迟:线程起来后等待一段时间后再执行
运行测试
配置「线程数」10,「Ramp-U」p为2,「循环次数」为「永远」,勾选「调度器」,设置「持续时间」为180秒
线程属性
运行后查看「聚合报告」
聚合报告