03_jmeter_控制器

简介: 简单控制器、if控制器、一次控制器,循环控制器、线程组中配置执行次数、聚合报告

  1. 浅谈线程组

① 线程数: 并发数,模拟多用户发送请求
② 所有线程启动时间-秒: N线程 N秒内启动
③ 循环次数: 是每个线程都执行的次数,如果循环次数设置5次,线程10个,结果: 10个线程,每个都执行5次循环,一个50个请求
④ 调度器: 勾选后执行调度器配置中的数据
⑤ 持续时间: 线程启动后,在规定时间内执行线程属性中配置的条件,持续时间内未执行完循环,则强制停止
⑥ 启动延迟:线程延迟时间内,多线程按照②中给的时间进行启动,但是启动的线程不会立马执行请求,等启动延迟时间结束后,启动的线程同时开始发送请求

  • 在线程组中设置并发数
    线程启动是需要一点的时间,系统资源本身就那么多,不可能一次启动所有的线程,当线程全部启动的时候才是正真执行并发的时候

如果在做多并发的测试,最好能多加一点循环次数,不然无法真正的实现并发!

下面是10个线程 1秒启动的例子!可以看见线程一和线程10的启动时间相差了快1秒钟,因为我没有设置http请求参数,线程一0.004秒就完成了(请求几百毫秒之间完成很普遍),就像上图,线程一都完成了,别的线程还没有开始启动

  1. 循环控制器

循环控制器:线程组每执行一次,循环控制器都会执行自身配置的循环次数
线程组:线程数:1、循环次数:1
循环线程器:循环次数:2
执行次数,循环线程器中的http请求执行两次
循环控制器执行次数=线程数*循环次数
循环控制器中http请求执行次数=线程数*循环次数*循环线程器的循环次数

CSV小坑之“CSV 数据文件设置” 位置

做接口测试的时候需要准备大量的数据,有时候用到CSV 数据文件设置读取本地CSV文件中的数据,存到变量中!

  • 如果因为某个场景,有一个接口需要用到循环控制器,循环控制器中http请求要用到CSV文件,这个时候你配置的“CSV 数据文件设置”最好放在内置的循环控制器中,下面介绍一下效果!

  • CSV 数据文件设置在线程组中 : 每执行一次线程组,会读取CSV文件中的一行数据,存到定义变量中,线程组中的循环控制器要调用这个变量的话,取的都会 是同一个值

注:线程是一条一条往下执行的,顺序很重要,对于一些读取数据的工具,执行一次取一次数据并存到变量中,只有重复执行才会更改变量的值,下图,csv在循环控制器下,没执行一次循环就会执行一次csv,所以每次的数据都不一样
  1. if 控制器
    与“后置处理器--正则表达式提取器”结合使用:把上一个请求的响应报文中某个字段提取出来,做一个判断
  • 如果为true执行if控制器,否则跳过if控制器
    if控制器中条件的意思:正则表达式提取的实际结果==预期的结果,预期的结果肯定是提前知道的。
    if判断如果成功,就执行“if控制器”下的子case,然后去执行下面的case;
    if判断如果不成功,则不执行“if控制器”下的子case,直接去执行下面的case;
  1. 仅一次控制器

多线程,每个线程执行一次,但是无论线程循环多少次,每个线程只会执行一次“仅一次控制器”,

5个线程循环10次,“仅一次控制器”只会执行5次,按线程数算

  1. 简单控制器

我的理解:简单控制器就起到分组的作用,分组存放http请求,分组管理启用、禁用,无任何特殊的特性

  1. 聚合报告

在做压测和负载的时候添加,压测和负载测试的性能报告!

Samples : 样本,执行了多少次请求
Average : 所有样本的平均响应时间,毫秒级
Median : 所有的中值
90%Line:90%的响应时间小于
95%Line:95%的响应时间小于
99%Line:99%的响应时间小于
Min :最小响应时间
Max :最大响应时间
Error %:错误率
Throughout:吞吐量

你可能感兴趣的:(03_jmeter_控制器)