01. jmeter关联

正则表达式介绍:

应用场景:正则表达式提取器可以提取任意格式的响应数据

正则表达式提取器步骤

1、添加线程组

2、添加HTTP请求 - 传智播客的首页

3、添加正则表达式提取器并配置

添加正则提取器.png

4、添加HTTP请求 —— 百度,在参数中引用正则表达式提取器中定义的变量title:${title}

5、添加查看结果树。

xpath提取器:

应用场景:只能适用于响应消息为HTML格式的情况

步骤:

  • 添加线程组

  • 添加HTTP请求——传智播客首页

  • 添加xpath提取器

    • 勾选Use Tidy
    • 填写引用名称:参数名
    • Xpath路径
  • 添加HTTP请求——百度首页

    • 引用xpath提取器中定义的参数名:${参数名}
  • 添加查看结果树

json提取器:

应用场景:适用于返回的数据类型为JSON格式的情况 参数介绍:

步骤:

  • 添加线程组

  • 添加HTTP请求——天气

  • 添加JSON提取器

    • 参数名
    • JSON路径
  • 添加HTTP请求——百度,

    • 应用JSON提取器中定义的参数名
  • 添加查看结果树。

json提取器2.png

跨线程组关联:

​ 跨线程组关联指的是多个请求之间有关联关系(即一个请求的参数需要使用前面请求的响应),但是两 个请求不在一个线程组内,此时使用提取器无法完成关联,需要使用Jmeter属性来完成数据的传递。

步骤:

  • 添加线程组1,添加HTTP请求——传智播客
  • 添加JSON提取器
  • 添加Bean Shell取样器(填写setProperty函数——将提取器提取出来的值赋值给Jmeter属性)
  • 添加线程组2,添加HTTP请求——百度
  • 引用前面返回的城市信息(使用property函数——将Jmeter属性值读取出来)
  • 添加查看结果树

跨线程组关联.png

02.jmeter自动录制脚本

自动录制脚本

原理:

image-20210609220949320

Jmeter在客户端和服务器之间做代理。收到所有的请求和响应数据后,Jmeter再进行逆向解析的动作, 将数据报文转化为脚本。

jmeter脚本录制步骤

1、在测试计划下,添加HTTP代理服务器

添加代理服务器.png

2、设置自己PC机的代理

设置代理.png

3、点击启动,进入浏览器进行相关操作,脚本会自动生成并存放在指定的线程组下。

配置过滤规则

配置过滤规则.png

Cookie管理器:

管理cookie:自动将cookie信息添加到后续的所有请求中。

登录及后续的相关操作时,需要提前添加HTTP Cookie管理器

cookie管理器.png

03.jemeter操作数据库

jmeter直连数据库

准备工作:

  • 启动数据库

  • 加载mysql的JDBC驱动

    • 方法1:在测试计划下方的位置,点击浏览添加JDBC的jar包
    • 方法2:将JDBC的jar拷贝到lib目录,并重启jmeter
  • 配置JDBC连接池的参数

编写JDBC脚本步骤(搜索指定商品,在返回结果中检查是否包含指定商品的ID的详情URL):

1、添加JDBC Request请求

  • JDBC连接池名称:必须与“JDBC连接池”中的连接名一致
  • 要执行的sql语句
  • Variable Name中:写明要保存的数据的参数名

JDBC使用.png

2、添加HTTP请求 —— 搜索请求

  • 参数为中文时,将参数写到下方参数位置,并勾选上“编码”

jdbc搜索请求.png

3、添加响应断言:

  • 在响应断言中配置要检查的数据内容。
  • 注意:应用JDBC Request查询出的结果时,需要加上索引(因为JDBC查询的结果保存为一个列表)

JDBC断言.png

04.逻辑控制器

什么是逻辑控制器:

控制jmeter脚本的执行顺序

如果(if)控制器:

第一种配置方法:

image-20210611161217755

第二种配置方法:

勾选上Interpret Condition as Variable Expression,判断条件需用使用jexl3函数。 (使用这个函数来进行判定时,Jmeter自身的执行效果要高一些)

image-20210611161305736

循环控制器:

控制子节点下的HTTP请求的执行次数

image-20210611161406231

循环控制器与线程组中的循环次数的对比:

  • 循环控制器只控制其子节点下的HTTP请求,线程组对所有的请求都有效

  • 假如线程组循环次数为2,循环控制器次数为3,则循环控制器下的请求执行次数为:2*3

4.ForEach控制器:

与用户定义的变量或者正则表达式提取器配合使用,循环读取用户定义的变量或者正则表达式结果中的所有数据。

配置参数

foreach控制器参数配置.png

与用户定义的变量配合使用

1、添加用户定义的变量:

  • 参数名:固定前缀 + 连续的数字后缀

foreach控制器定义用户变量.png

2、添加ForEach控制,并配置

foreach控制器配置.png

3、在ForEach控制器下方添加HTTP请求,并引用ForEach读取的数据${word}

4、添加查看结果树

与正则表达式配合使用:

1、添加HTTP请求——itcast首页

2、添加正则表达式提取器,提取出itcast响应中所有的地址相关的数据,并保存为参数area(列表数 据)

正则+foreach控制器1.png

3、添加ForEach控制器,循环提取area列表中的每一个地址信息

foreach提取area列表.png

4、在ForEach控制器下添加一个HTTP请求——百度,引用ForEach控制器中定义的变量${word},作为 参数

5、添加查看结果树

最后修改:2021 年 08 月 27 日
如果觉得我的文章对你有用,请随意赞赏