• jmeter 学习笔记


    1、CSV Data Set Config

    D盘中,data.txt 的内容:

    在这里插入图片描述

    CSV Data Set Config 的配置如下:

    请添加图片描述

    各参数说明:

    • Filename(文件名) : 支持相对和绝对路径。相对路径是以脚本保存的路径为当前的相对路径的

    • Variable Name(变量名) :有多少列数据我们就设置多少个变量,以逗号分隔。
      如果这一项为空,jemter会去解析csv文件的header,也就是说,如果你的csv文件是有表头的,那么你可以不设置变量名,jmeter会自动将表头的名称解析成变量。

    • Allow quoted data : 如果你的csv文件的内容里包含了分隔符,默认的分隔符是逗号,那么把这项勾选一下,用双引号将值括起来就可以了

    • Sharing mode :这个比较难理解,我们可以简单的认为这个选项就是配置jmeter怎么打开csv文件的。它有4个选项:

      选项参数含义
      All threads所有的虚拟用户都使用同一个csv文件
      Current thread group每个线程组使用一个csv文件
      Current thread每个线程(虚拟用户)使用一个csv文件
      Identifier自定义

    2、正则表达式提取器

    正则表达式提取器的使用场景:

    把应用中动态变化返回的数据获取到,把它保存为一个参数,提供给后面需要用到的地方进行使用。

    比如,下一个接口的参数中需引用到前面某一接口返回数据中的值,可以通过 正则表达式提取器 来取得该值。

    在这里插入图片描述

    各参数值的含义:

    参数释义
    引用名称在HTTP等请求中,引用此数据,需要用到的名称
    正则表达式用于将需要的数据提取出来
    模板表示使用提取到的第几个值:
    $1$:表示取第1个(列)
    $2$:表示取第2个(列)
    以此类推:$n$:表示取第n个
    匹配数字(0代表随机)0 代表随机取值,1 代表全部取值
    缺省值如果正则表达式没有搜找到值,则使用此缺省值

    2.1、正则表达式 —— 只有一个的匹配值

    (1)正则表达式测试

    文本内容如下 ,已知 9 这个数字。

    javawind:9
    
    • 1

    测试使用的正则表达式如下:
    在这里插入图片描述
    正则表达式测试器 使用说明:
    第1列是匹配的文件原始内容,不是匹配结果。
    从第2列开始是匹配的提取结果。

    正则表达式是 javawind:(.*) ,从测试结果中看出, 第2列(即索引是 1 )即是 提取的结果。

    (2)正则表达式提取器的配置

    因为只有一个值(索引从 1 开始计算),取值使用 $1$ ,如下图所示:

    在这里插入图片描述

    (3)在其它组件中引用

    使用变量时,引用名称即可。

    在这里插入图片描述

    2.2、正则表达式 —— 有多个匹配的值

    (1)正则表达式测试

    如下图所示,一行中,有两个匹配的值。
    在这里插入图片描述

    (2)正则表达式提取器的配置

    上一步中,一行中有两个匹配的值,如果要取第1个值 ,则使用 $1$ ,如果要取第2个值,则使用 $2$ ,以此类推。

    在这里插入图片描述

    (3)在其它组件中引用

    使用变量时,引用名称即可。

    在这里插入图片描述

    2.3、正则表达式 —— 有多行多列的匹配值

    有多行多列的匹配数据,是不常见的。

    (1)正则表达式测试

    如下图所示,有3行2列的匹配的数据。

    在这里插入图片描述

    (2)正则表达式提取器的配置

    分析,假如要获取 第2列、第2行的值,则对应的J是($2$, ${javawd_g2}) ,如果是第3列、第4行的值,则对应的是($3$,${javawd_g4})

    下面,我们以取 第2列,第2行,值是17 的为例 。

    首先,正则表达式提取器的模板填写 $2$ ,表示获取 第2列的数据 。

    在这里插入图片描述

    (3)在其它组件中引用

    在上一步的 第2列 的基础上,如果想取 第1行 的数据 16 ,则填写 ${javawd_g1}

    如果想取 第2行 的数据 17 ,则填写 ${javawd_g2}

    在这里插入图片描述

    2.4、示例,jmeter 使用正则表达式提取器获取值 和 设置全局变量

    接口测试中,很多的接口先登录后,获取 token ,将 token 设置为全局变量,然后才能调用其它的接口。

    登录后返回信息中会有一个 token 值,使用正则表达式提取 token的值,

    然后,使用 后置处理器中BeanShell PostProcessor 设置 token为全局变量。

    (1)查看 token值:

    查看token的方式有很多,常见的有如下方式。

    - 用fiddler抓包
      - F12查看接口信息
      - 用jmeter登录查看

    在这里插入图片描述

    (2)正则表达式提取token

    在这里插入图片描述

    (3)BeanShell PostProcessor 设置 token 为全局变量。

    在这里插入图片描述

    (4)其他接口使用该全局变量:

    添加http信息头管理器

    在这里插入图片描述

    3、数据提取的两种方法

    把前一个步骤中返回的数据获取到,把它保存为一个参数,提供给后面步骤使用。

    如下图所示,密码登录接口 执行成功后,返回一些数据。这个数据中的 tokenuserId 是后续接口调用时必须使用的。

    提取 密码登录接口 返回值中的 tokenuserId 有两种方法,第1种是正则表达式提取器,第2种是 JSON Extractor 。

    在这里插入图片描述

    3.1、方法1,正则表达式提取器

    提取 密码登录接口 返回值中的 tokenuserId ,如下图所示。

    在这里插入图片描述

    debug sampler

    在这里插入图片描述

    可以看到userId、token已被提取;引用写法为:${token}${userId}

    3.2、方法2,JSON Extractor

    提取 密码登录接口 返回值中的 tokenuserId ,如下图所示。

    在这里插入图片描述

    debug sampler
    在这里插入图片描述

    可以看到userId、token已被提取;引用写法为:${token}${userId}

    3.3、值引用 ${ }

    前面有两种方式提取参数, 接下来是在下一个接口参数中引用提取值。

    如下图所示,在 http 中引用 token 值,

    在这里插入图片描述

    点击执行按钮,在 http 结果树 中 查看 请求数据 ,可以看到 token 引用情况。

    在这里插入图片描述

    执行结果,如下图所示,在 http 的 结果树 中查看 响应数据 ,接口也执行成功。

    在这里插入图片描述

    4、函数助手

    (1)打开 函数助手对话框

    在这里插入图片描述

    (2)选择 __CSVRead 功能函数。

    在这里插入图片描述

    (3)准备数据,如下图所示。

    在D盘创建data.txt文件,内容如下:

    在这里插入图片描述

    (4)配置 __CSVRead 函数的参数值

    选项参数含义
    CSV file to get values from要读取文件的全路径
    CSV文件列号要读取数据的第几列。默认是从0开始的,0 表示 第1列 。
    0 表示第1列
    1表示第2列
    以此类推

    在这里插入图片描述

    上面的值填写完成后,点击 生成 按钮,生成 引用的变量

    (4)引用参数

    username 是第1列,填写 ${__CSVRead(D:\data.txt,0)}
    pwd 是第2列,填写 ${__CSVRead(D:\data.txt,1)}
    
    • 1
    • 2

    在这里插入图片描述

    (5)验证

  • 相关阅读:
    关系代数、SQL语句和Go语言示例
    springboot前端如何传参后端如何优雅的接收的参数
    跨域方案的抉择
    ctfshow-web-红包题第九弹
    Centos 源码编译 tigervnc
    用户层与驱动层通信
    python应用中使用了multiprocessing多进程,使用pyinstaller打包出来的程序可能产生多个窗口
    遗传算法优化的神经网络,遗传算法 优化
    C++ stack和queue
    从感官沉浸到无边界互操作,细数元宇宙游戏的底层逻辑世界
  • 原文地址:https://blog.csdn.net/xiaojin21cen/article/details/125448674