性能测试场景的学习:controller
Posted my_captain
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试场景的学习:controller相关的知识,希望对你有一定的参考价值。
一. 什么是controller
controller是一个核心组件:简单来说就是调用脚本,模拟用户的真实行为,对服务器产生压力,并且收集服务器资源使用情况,比如:TPS、响应时间、事务数、成功率
二. 场景
1. 手工场景(百分比模式)
2. 面向目标场景
三. 集合点
1. 什么是集合点?
模拟这种并发的操作
集合点放在事务的外面(比如登录事务开始之前)
在脚本里设置集合点
controller中需要重新选择脚本
百分比模式集合点置灰,需要切换到Vuser Group Mode
2. 集合点的策略
A:当所有用户的%X到达集合点时释放
B:当所有正在运行的用户的%X到达集合点时释放
C:当X个用户到达集合点时释放,也就是只要有X个用户到达集合点的时候,就会跑下面的操作,不会等其他用户都加载完再跑
3. 集合点使用的场景
跟你自己的需求来设置:一般用于秒杀,验证一瞬间的承受压力。和你设定的秒杀名额有关,比如秒杀名额只有10个,可以验证一下11个并发的时候,最后1个是不是失败了
但是:并没有100%的并发,在我们日常的性能测试中,很少用的集合点。因为日常并发中已经对服务器产生了很大的压力,已经可以验证很多性能问题了,就不需要一定设置集合点
设置集合点和不设置的区别:设置集合点,在释放的一瞬间的压力比不设置要大
三. Load Generators
1. 为什么要用Generators?
(1) 8G内存,16C,为了减少一台机器的压力,才有多台机器来分担压力
(2) 12306订票系统,分出来:华南、华北、华中,来自不同区域的压力
2. 添加
也可以从这里添加
Ready表示已连接上
3. 每台机器需不需要脚本
(1) HTTP协议:不需要每台机器都有脚本,只要主控机上面有脚本就可以了
(2) java vuser协议:每台机器都要有相同的脚本,文件夹目录和名称都要一直,jar都要上传(jdk版本一致)
(3) LoadRunner版本最后一致,有时出现连接不上,但是高版本可以控制低版本的从机
(4) 从机只要安装了LoadRunner之后,在电脑右下角看到小广播就可以了,不需要做其他设置
4. 网络
(1) 在做性能测试的时候,一定要在局域网做,同一个网段去做
(2) 带宽:最好是1000兆带宽,买一个千兆交换机,现在一般都是千兆网卡了
四. 场景设计模式
手工场景:scenario模式、group模式
(一) scenario模式
scenario模式,是指所有脚本都使用相同的场景模式来运行,只需要分配每个脚本所使用的用户个数就可以
scenario模式分为real-world schedule(真实场景模式)和basic shedule(基础模式)
1. real-world schedule(真实场景模式)
初始化的方式:
增长方式:
快增长
慢增长
指定运行次数(Runtime Settings):迭代5次,跑10个并发用户,一共跑了50个事务
注意:迭代1次跑50个和迭代5次跑10个用户的区别是什么(直到完成这种模式)
(1) 事务数是一样的
(2) 产生的压力是不一样的
2. basic shedule(基础模式)
只能设置一次负载的上升和下降
(二) Group模式
当场景一开始就立即运行
当场景运行后多少再运行
当某个group结束后再运行
一般在什么情况下使用这种group模式:
(1) 也可以说是一种偷懒的模式,在做性能测试回归的时候,设计好这种场景,就可以把很多脚本跑一次,看有没有错误或TPS相应时间,有没有达到之前的要求
(2) 或者下班之后,想在某个时间节点开始跑场景
如何选择?
是一个一个场景跑完之后,再添加另外场景来跑,还是一次把要跑的脚本都设定好,只要一次,直到所有的脚本场景都跑完?
前者如果把所有的脚本都加进来,就变成混合场景了,不是某个脚本单个功能的验证
以上是关于性能测试场景的学习:controller的主要内容,如果未能解决你的问题,请参考以下文章
大开测试:性能-如何在命令行下启动Controller(连载21)