15-性能测试场景

2021-05-27 11:28:12 浏览数 (2)

全链路测试

听起来,很高大上,但是没几家能落地 真正做全链路性能测试,只有大公司才可能落地

全链路:就一个请求,从头到尾所有的环境,都进行性能测试

例如,公司中的一个登录业务,需要经过多少个服务,要调用多少个接口,这个接口的完整数据流是否清楚。

  1. 一个一个接口把性能测试做下来。
  2. 每一个业务的性能测试做下来。
  3. 多个业务的性能测试做下来。

需要解决单个接口,单个业务的性能瓶颈后,才可以开始全链路测试。

模拟生产环境,真实用户对业务使用分配

  1. 各种业务
  2. 各种业务的用户量不相同
  3. 业务覆盖广,深度深

问题

  1. 涉及系统多
  2. 如何模拟用户真实流量分配
  3. 接口业务多

如何开展

  1. 分析生产用户流量
  2. 各个业务接口性能测试脚本开发
  3. 压测环境要模拟生产环境
  4. 压测数据
  5. 实时全流程监控

如何优化

  1. 单系统优化
  2. 关键点优化
  3. 业务流程优化

性能场景设计

  • 性能测试场景
  • 负载测试场景
  • 压力测试场景
  • 面向目标场景
  • 混合场景
  • 波浪形场景

性能场景设计-性能测试场景

  1. 普通线程组
  2. 服务器接口性能测试,一定要是多用户并发
  3. 多用户: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秒

线程属性

运行后查看「聚合报告」

聚合报告

0 人点赞