文章目录

  • 1、CSV Data Set Config
  • 2、正则表达式提取器
  • 2.1、正则表达式 —— 只有一个的匹配值
  • (1)正则表达式测试
  • (2)正则表达式提取器的配置
  • (3)在其它组件中引用
  • 2.2、正则表达式 —— 有多个匹配的值
  • (1)正则表达式测试
  • (2)正则表达式提取器的配置
  • (3)在其它组件中引用
  • 2.3、正则表达式 —— 有多行多列的匹配值
  • (1)正则表达式测试
  • (2)正则表达式提取器的配置
  • (3)在其它组件中引用
  • 2.4、示例,jmeter 使用正则表达式提取器获取值 和 设置全局变量
  • (1)查看 token值:
  • (2)正则表达式提取token
  • (3)BeanShell PostProcessor 设置 token 为全局变量。
  • (4)其他接口使用该全局变量:
  • 3、数据提取的两种方法
  • 3.1、方法1,正则表达式提取器
  • 3.2、方法2,JSON Extractor
  • 3.3、值引用 `${ }`
  • 4、函数助手
  • (1)打开 函数助手对话框
  • (2)选择 `__CSVRead` 功能函数。
  • (3)准备数据,如下图所示。
  • (4)配置 `__CSVRead` 函数的参数值
  • (4)引用参数
  • (5)验证


1、CSV Data Set Config

D盘中,data.txt 的内容:

添加请求头数据java 如何添加请求头_正则表达式提取器

CSV Data Set Config 的配置如下:

添加请求头数据java 如何添加请求头_函数助手_02

各参数说明:

  • 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、正则表达式提取器

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

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

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

添加请求头数据java 如何添加请求头_jmeter_03

各参数值的含义:

参数

释义

引用名称

在HTTP等请求中,引用此数据,需要用到的名称

正则表达式

用于将需要的数据提取出来

模板

表示使用提取到的第几个值:

$1$:表示取第1个(列)

$2$:表示取第2个(列)

以此类推:$n$:表示取第n个

匹配数字(0代表随机)

0 代表随机取值,1 代表全部取值

缺省值

如果正则表达式没有搜找到值,则使用此缺省值

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

(1)正则表达式测试

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

javawind:9

测试使用的正则表达式如下:

添加请求头数据java 如何添加请求头_正则表达式提取器_04


正则表达式测试器 使用说明:

第1列是匹配的文件原始内容,不是匹配结果。

从第2列开始是匹配的提取结果。

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

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

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

添加请求头数据java 如何添加请求头_函数助手_05

(3)在其它组件中引用

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

添加请求头数据java 如何添加请求头_函数助手_06

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

(1)正则表达式测试

如下图所示,一行中,有两个匹配的值。

添加请求头数据java 如何添加请求头_JSON Extractor_07

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

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

添加请求头数据java 如何添加请求头_添加请求头数据java_08

(3)在其它组件中引用

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

添加请求头数据java 如何添加请求头_添加请求头数据java_09

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

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

(1)正则表达式测试

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

添加请求头数据java 如何添加请求头_JSON Extractor_10

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

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

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

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

添加请求头数据java 如何添加请求头_函数助手_11

(3)在其它组件中引用

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

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

添加请求头数据java 如何添加请求头_JSON Extractor_12

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

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

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

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

(1)查看 token值:

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

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

添加请求头数据java 如何添加请求头_jmeter_13

(2)正则表达式提取token

添加请求头数据java 如何添加请求头_jmeter_14

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

添加请求头数据java 如何添加请求头_函数助手_15

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

添加http信息头管理器

添加请求头数据java 如何添加请求头_正则表达式提取器_16

3、数据提取的两种方法

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

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

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

添加请求头数据java 如何添加请求头_JSON Extractor_17

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

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

添加请求头数据java 如何添加请求头_正则表达式提取器_18

debug sampler

添加请求头数据java 如何添加请求头_函数助手_19

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

3.2、方法2,JSON Extractor

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

添加请求头数据java 如何添加请求头_jmeter_20

debug sampler

添加请求头数据java 如何添加请求头_函数助手_21

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

3.3、值引用 ${ }

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

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

添加请求头数据java 如何添加请求头_jmeter_22

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

添加请求头数据java 如何添加请求头_添加请求头数据java_23

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

添加请求头数据java 如何添加请求头_添加请求头数据java_24

4、函数助手

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

添加请求头数据java 如何添加请求头_添加请求头数据java_25

(2)选择 __CSVRead 功能函数。

添加请求头数据java 如何添加请求头_函数助手_26

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

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

添加请求头数据java 如何添加请求头_添加请求头数据java_27

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

选项参数

含义

CSV file to get values from

要读取文件的全路径

CSV文件列号

要读取数据的第几列。默认是从0开始的,0 表示 第1列 。

0 表示第1列

1表示第2列

以此类推

添加请求头数据java 如何添加请求头_添加请求头数据java_28

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

(4)引用参数

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

添加请求头数据java 如何添加请求头_函数助手_29

(5)验证