性能测试场景的学习: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及结果分析

性能测试_LR11_Controller

大开测试:性能-如何在命令行下启动Controller(连载21)

大开测试:性能-如何在命令行下启动Controller(连载21)

性能测试学习09_分析基础知识

性能测试学习总结