8.控制器--压测场景设计

一:线程组(ctrl+1快速新建http请求)

1.1:在5秒内启动10的线程(10个用户),每个用户循环2次

 

1.2:压测

负载测试---永远和调度器一起勾选用

 

 

 

启动延迟:10(所有已启动的线程组用户延迟10秒开始跑请求

启动时间:如果启动时间在当前北京时间以前(过去的时间),以持续时间为准

启动时间:如果启动时间在当前北京时间以后(未来的时间

     持续时间和启动-结束时间以谁先结束为准

 

 

 

测试使用场景:过去时间配启动延迟和持续时间,未来时间不配延迟和持续时间

 Delay Thread creation until need(延迟分配线程资源):勾选---启动线程是逐步分配资源(针对线程数比较大时要勾选),不勾选---线程资源一次全部分配。

 

二:控制器

 

1.循环控制器

  1.1:永远/不填,代表永远循环

  可以用于接口测试分组,

  遍历变量:Debug Sampler和计数器一起

 

2.简单控制器---比较简单,一般用于文件夹分组的功能

 

3:ForEach控制器---遍历变量

  默认勾选Add取的是${id}取id_1,id_2

  不勾选Add取的是${id}取id1,id2

 

 

 

 4:模块控制器---用于调用控制器不能调用请求(增加了复用性)

  控制器禁用状态,也可以作为模块控制器调用

 

 

 

 

 

 

 

使用场景:跨线程组调用控制器,实现跨线程组之间的cookies传递(http请求登录)

 

5:if控制器

  1.1:不遵从格式

 

      1.2:遵从格式---表达式两边一定要用引号,在用JavaScript,jexl3(用的少),groovy函数嵌套使用

    

 

 

  等于和不等于

  ${__javaScript("${number}"=="0",)}  ${__javaScript("${number}"!="0")} 

  多个条件&&  或是||

      ${__javaScript("${number}"!="0"&&"${number}"!="0")}

  格式提示如下

   

 

 

 

  12.1:__javaScript函数格式

  

 

  12.2:__groovy函数格式

  

 

 

6:while控制器---

 

    条件为空,控制器下的请求一直运行到报错才会停止

    填了条件值,满足条件时,自动运行,直到不满足条件时停止 

      6.1:使用方法和if控制器格式一样

 

7:吞吐量控制器

  1:按总执行数(指定线程数)---Total Execution

       总执行数1000  登录执行一次, 修改项目执行--299次,聚合报告查看

 

 

   2:按总线程数百分比执行---Percent Executions

 

 

 

  3:勾选Per User---每个用户单独执行次数(线程循环次数1000*10%),10个用户总执行次数10*1000*10%(和不勾选时执行的总数是一样,但勾选会区分里面具体用户)--压测

 

 

8:事务控制器(把多个请求封装在一个事务中,打卡的业务流程封装在一个事务中)----压测

    勾选---Generate parent sample  结果只会展示事务控制器(具体请求需要下拉查看)

              业务时间由线程执行时间控制的

 

 

 

 

 

9:权重控制器(和吞吐量类似)---bzm - Weighted Switch Controller

1.1:没有需要下载插件{在插件管理(选项---plugins   Manager)

 

1.2:没有插件管理项---需要在lib/ext导入jar包

 网址:https://jmeter-plugins.org/wiki/PluginsManager/  下载JAR file

 

 

 1.3:bzm - Weighted Switch Controller配置百分比

 

 

9:仅一次控制器,单独在线程组下,由线程数决定次数,如果在循环控制器下,线程数*循环次数(与循环控制器循环次数无关)

2个线程数--2次登录,其他请求按循环总数

 

 

 10:Critical Section Controller控制器---作用是严格按照请求的前后顺序执行,牺牲了tps(每秒事务数)

    循环几次就循环跑控制器下所有请求几次跑有业务场景关联关系

    

    

 

     

 

 

11:bzm - Parallel Controller并行控制器(测试同时编辑提交,测试接口幂等性)

  并行:请求同一毫秒级别运行,     并发:不一定是同一毫秒,所有的进程都在跑,但不能保证都是同一时刻运行

  

 

 

 12:Switch Controller控制器---Switch

 1:默认不填是0,跑第一个请求,1是跑第2个请求

  

 2:线程组勾选永远,Switch为随机数,结果会随机跑

 

  

 

 13:随机控制器

  每次跑随机控制器下的随机一个请求-----(就是变相的Switch+随机数)

  上面加个循环器就可以随机压测

 

14:随机顺序控制器

  每次都运行完控制器下的所有请求,但请求的顺序是随机

  循环一次:

 

 

  循环三次:

 

 

15:交替控制器:每次运行一个请求,循环几次,按上下顺序运行控制器下的几个请求

   运行一次:

 

   运行两次:

 

   运行三次:

 

   

二:聚合报告

Average:平均时间          95%Line:95%的线程在时间范围内          Error%:错误率    涉及到钱要为0%  一般5%就可以

Throughput(tps):每秒处理事务数(个/s)---由产品定标准

 

 

 

 

 

    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2021-12-31 18:21  观呼吸  阅读(361)  评论(0)    收藏  举报