zoukankan      html  css  js  c++  java
  • 性能测试场景的学习: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) 或者下班之后,想在某个时间节点开始跑场景

    如何选择?

    是一个一个场景跑完之后,再添加另外场景来跑,还是一次把要跑的脚本都设定好,只要一次,直到所有的脚本场景都跑完?

    前者如果把所有的脚本都加进来,就变成混合场景了,不是某个脚本单个功能的验证

  • 相关阅读:
    平衡二叉树
    Vue--钩子函数,$refs,$nextTick
    Vue--组件,props传参,过滤器,侦听属性
    Vue--指令系统
    Vue-es6语法
    Python常用内建模块-itertools
    Python常用内建模块-hashlib
    Python常用内建模块-struct
    Python常用内建模块-base64
    Python常用内建模块-collections
  • 原文地址:https://www.cnblogs.com/my_captain/p/12636870.html
Copyright © 2011-2022 走看看