• Jmeter组件介绍


    一,JMeter组件执行顺序

    1. 配置节点
    2. 前置处理器
    3. 定时器
    4. 取样器
    5. 后置处理器(只在有结果可用情况下执行)
    6. 断言(只在有结果可用情况下执行)
    7. 监听器(只在有结果可用情况下执行)

    二,JMeter组件详解

    1,线程

    • 线程数:虚拟用户数
    • Ramp-Up Period:生成所有虚拟用户的时间。Ramp-Up Period 设置成0,那么所有的用户将会同时立即产生
    • 循环数:要么N次,要么永远
    • 调度器:定时执行的设置方式,可以设置在未来的某个时间开始执行也可以设置多少秒后开始执行。在按下执行按钮后,调度器才生效

    2,取样器

      取样器(Samples)是Jmeter真正产生请求的组件。常用的取样器是HTTP请求取样器

    • 编码:在HTTP取样器里,在变量一行可以勾选编码。如果变量的值包含了非Ascii码中的字符(比如汉字)或者包含Ascii码中的特殊字符(比如空格问号之类),那么就要勾选编码。

    3,控制器

    • 逻辑控制器:用来控制取样器的执行顺序。除了仅一次控制器外,其他控制器下可以嵌套别的种类的逻辑控制器。
    • 循环控制器:定义一个循环规则。
      • 名称:控制器名称
      • 注释:随意设置
      • 输入变量前缀:可以在“用户自定义变量”中定义一组变量,循环控制器可以从中获取到变量对应的值,然后作为循环控制器的循环条件,还可以输出变量作为取样器的参数。
      • Start index for loop:循环变量下标起点
      • End index for loop:循环变量下标终点
      • 输出变量名称:循环控制器生成的变量名称
      • Add “_” before number?:变量前缀后是否加"_"作为分隔符
    • 录制控制器:脚本录制时自动生成的请求都在这个控制器下面
    • 事务控制器:假设提交一个工单需要3个步骤(step1,step2,step3),每一步都需要发送一个请求到服务器,为了获取3个请求的总时间,可以使用事务控制器将这3个请求聚合,把3个请求作为事务控制器的子组件。 所以事务控制器实际就是聚合逻辑上应该合并在一起的N个请求的总响应时间。

    4,函数

      函数是一个编程的概念,类似于一个盒子,我们输入一些值后,这个盒子输出一些值。

    • Random函数:这个函数需要我们输入2个值,1个是随机范围的最小值,另1个是随机范围的最大值(如 ${_Random(1,3)}是随机生成1~3之间的整数;key${_Random(1,3)}是随机生成key1,key2,key3中的任意1个字符串)

    5,配置元件

      配置元件是用来存放配置信息的,Jmeter提供了丰富的配置元件来帮助我们构建测试脚本。常用的配置元件有用户自定义变量元件,HTTP请求默认值元件等。

    • CSV数据文件设置:这个组件可以从指定的文件中一行一行地提取文本内容,根据分隔符拆解这一行内容并把内容与变量名对应上,然后这些变量就可以供取样器引用了。
      • 名称:随意设置
      • 注释:随意设置,可以为空
      • 文件名:引用的参数文件地址
      • 文件编码:读取参数文件用到的编码格式,建议用UTF-8格式保存参数文件
      • 变量名称:定义的参数名称,用逗号隔开,顺序与参数文件中的参数对应
      • 忽略首行:若参数文件首行是标题,则设置为True,反之为False
      • 分隔符:用来分割参数文件的分隔符(默认为逗号,也可以用tab来分隔,如果参数文件用tab分隔,在此应该填写“ ”)
      • 是否允许带引号:如果选True,
      • 遇到文件结束符再次循环?:
      • 遇到文件结束符停止线程?:
      • 线程共享模式:
    • HTTP信息头管理器:这个组件的作用就是以Key-Value的格式设置http请求的header,一般来说我们通过录制的方式获取http请求的header。另外每个请求下面挂一个header信息配置器不利于我们统一的控制线程组中的所有请求,我们可以只在线程组下面挂一个header管理器,这样线程组下的所有http请求都具有同样的header了。
    • 随机变量:这个组件的作用是生成字符+随机数字格式的字符串,并保存在变量中,以便后续使用。(如01-selenium,selenium-01,se001lenium)如果同时有两个HTTP请求,这两个HTTP请求取得是同一个随机变量。

    6,监听器

      监听器可以理解为测试报告

    7,定时器

      定时器的作用就是给用户每一步操作之前加上“思考”时间,使模拟的用户行为更接近真实用户的行为。

    • 固定定时器:这个组件的作用是暂停线程执行,将定时器放在两个请求之间,思考一段固定的时间。

    8,前置处理器

       前置处理器用来做一些环境或者参数的准备工作,比如在对数据库进行操作前需要先建立一个数据库连接,那么前置处理器就可以完成这个功能。

    9,后置处理器

       后置处理器一般放在取样器之后,可以帮助我们从服务器响应数据中查找到我们需要的数据。

    • 正则表达式提取器
      • 名称:随意设置
      • 注释:随意设置
      • Apply to:应用范围(四个选项)
      1. Main Sample and sub-samples:匹配范围包括当前父取样器并覆盖子取样器
      2. Main sample only:匹配范围是当前父取样器
      3. Sub-samples only:仅匹配子取样器
      4. JMeter Variable:支持对JMeter变量值进行匹配
      • 要检查的响应字段:针对响应数据的不同部分进行匹配,共7个选项
      1. 主体:响应数据的主体部分,排除Header部分;Http协议返回请求的主体部分就是Body
      2. Body(unescaped):针对替换了转义码的Body部分
      3. Body as a Document:返回内容作为一个文档进行匹配
      4. 信息头:只匹配信息头部分的内容
      5. URL:只匹配URL链接
      6. 响应代码:匹配响应代码,比如HTTP协议返回码200代表成功
      7. 响应信息:匹配响应信息,比如处理成功返回”成功“字样,或者”OK“字样
      • 引用名称:匹配出来的信息通过此名称进行访问,类似${引用名称}进行访问
      • 正则表达式:正则表达式提取器使用此串进行信息匹配
      • 模板:正则表达式可以设置多个模板进行匹配,在此只可指定运用哪个模板,模板自动编号。$1$指第一个模板,$2$指第二个模板,以此类推,$0$指全文匹配。
      • 匹配数字:在匹配时往往会出现多个值匹配的情况,如果匹配数为0则代表随机取匹配值;不同模板可能会匹配一组值,那么可以用匹配数字来确定取这一组值中的哪一个;负数取所有值,可以与For Each Controller一起使用来遍历。
      • 默认值:如果没有匹配到可以制定一个默认值。

    10,断言

      断言用来验证结果是否正确,用一个预设的结果(值,表达式,时间长短等条件)与实际结果匹配,匹配到则成功,反之失败。断言元件有:

    • 响应断言
    • XML断言
    • BeanShell断言

     11,Test Fragment

      Test Fragment是一个辅助的组件,在脚本开发过程中可以用来备份元件;Test Fragment下的元件可以被模块控制器调用,可以利用它来模块化请求(把一个业务封装成一个方法供复用)供模块控制器调用。

  • 相关阅读:
    图匹配板子
    线性基
    Berlekamp-Massey algorithm
    组合/概率/形式幂级数/多项式/集合幂级数的题
    费用流 Dijkstra 原始对偶方法(primal-dual method)
    UVA-12304
    二项式系数
    卡特兰数
    多项式模板
    工具
  • 原文地址:https://www.cnblogs.com/xiaopc/p/11096499.html
Copyright © 2020-2023  润新知