阶段七第二章性能测试工具JMeter参数化

一级目录jmeter参数化

1.JMeter参数化常用方式
· 用户定义的变量
· 用户参数
· CSV Data Set Config
· 函数

2.用户定义的变量
说明:全局参数
所有用户读取的变量值相同

添加方式:测试计划>线程组->配置元件->用户定义的变量

参数设置:
参数名:参数值
在HTTP取样器中应用:${参数名}
在这里插入图片描述

在这里插入图片描述

2.1场景
·请求:https:/www.baidu.com:443
·要求:使用用户定义的变量配置被测系统的协议、域名和端口

2.2操作步骤
1.添加线程组
2.添加用户定义的变量
3.添加HTTP请求
4.添加查看结果树

3.用户参数
说明:针对每个用户取不同的值,但是不能针对同一个用户的不同循环取不同的值。

使用用户定义的变量时,不同的用户在访问时,读取的参数值完全相同,如果希望每个用户在访问时的变量不同,可以使用用户参数。

配置方法
· 添加位置:线程组一一前置处理器一一用户参数
· 添加用户:可以添加多组用户
· 添加参数:针对每个用户添加多个参数
在这里插入图片描述
在这里插入图片描述

3.1场景
· 请求:https:/www,baidu,com
· 要求:第一次请求附带参数:name=“张三”&age=28:第二次请求附带参数:name=“李四”&age=30

3.2操作步骤
1.添加线程组
2.添加用户参数
3.添加HTTP请求
4.添加查看结果树

4.CSV数据文件设置
说明:针对每个用户的每次循环取不同的值

操作步骤
1.定义CSV数据文件
在这里插入图片描述

2.添加线程组
3.添加CSV数据文件设置
· 添加位置:线程组——配置原件——csv数据文件设置

参数配置:
在这里插入图片描述

4.添加HTTP请求
· 引用参数值时,使用时csv数据文件中定义的变量名

5.添加查看结果树

在这里插入图片描述

4.1场景
· 请求:https://www.baidu.com
· 要求:循环3次,每次请求时附带参数usemname,password,code的值不相同

5.counter函数
不需要提前准备数据,jmeter自动添加计数的方式来完成参数化

通过counter函数在生成动态变化的数值
在这里插入图片描述
在HTTP取样器中,应用counter函数生成的函数字符串,就可以读取counteri函数生成的数值。
· 如果counter参数设置为:TRUE,则每个用户分别从1开始计算,每循环一次加1
· 如果counter参数设置为:FALSE,则所有用户公用一个计数器,每发送一个请求时,取值加1

6.Jmeter乱码问题
1.打开bin目录,找到jmeter.properties
2.右键打开Notepad,ctrl+f搜索encoding
在这里插入图片描述

二级目录断言

1.响应断言

使用范围:HTTP消息的任何格式的响应

添加:线程组一一HTTP取样器一一断言一一响应断言(断言一定是在HTTP请求的子节点下)
在这里插入图片描述
配置介绍
在这里插入图片描述
类似于 assertEqual(response.json,“success”)
assertEqual:校验的方式
response.json:要校验的部分
success:用来校验的数据

可以在同一个HTTP请求下包含多个响应断言
在这里插入图片描述
2.JSON断言

使用范围:响应消息为JSON格式的响应

该组件用来对JSON文档进行验证,验证步骤如下:
1.首先解析JSON数据,如果数据不是JSON,则验证失败
2.使用Jayway JsonPath1.2.0中的语法搜索指定的路径。如果找不到路径,就会失败。
3.如果在文档中找到JSON路径,并且要求对期望值进行验证,那么它将执行验证操作。

添加方式:测试计划>线程组>HTTP请求->(右键添加)断言->JSON断言

在这里插入图片描述
3.断言持续时间
使用范围:对请求的响应时间进行断言

参数配置:
客户端发送请求,到收服务器的响应时间,要求不超过指定的时间,当响应时间超过该值时会报错。
在这里插入图片描述
实际时间,是统计取样器结果中的load time
在这里插入图片描述

三级目录关联

一.关联
当请求之间有依赖关系,一个请求的入参(请求参数),需要使用到之前请求的响应数据时,需要使用关联。
在这里插入图片描述
所有提供关联功能的元件都在后置处理器中
常用的关联方法
正则表达式提取器
XPath提取器
JSON提取器

二.正则表达式提取器
应用场景:应用于任何响应格式的数据

在这里插入图片描述
左边界(.*?)右边界:可以提取出想要获取的数据内容

2.1 正则表达式提取器的参数介绍
在这里插入图片描述
模板:正则表达式可能匹配多组值,通过模板的编写来保存指定的值到变量中
在这里插入图片描述
2.2正则表达式步骤

1、添加线程组
2、添加HTTP请求-传智播客的首页
3、添加正则表达式提取器并配置

在这里插入图片描述4、添加HTTP请求一一百度,在参数中引用正则表达式提取器中定义的变量title:${title}
5、添加查看结果树。

2.3正则表达式使用案例
获取传智播客首页的地址,并作为参数传递
在这里插入图片描述
三. XPath提取器
应用场景:只能适用于响应消息为HTML格式的情况

参数介绍:
在这里插入图片描述
3.1 步骤
1、添加线程组
2、添加HTTP请求一一传智播客首页
3、添加Xpath提取器
· 勾选Use Tidy
· 填写引用名称:参数名
· Xpath路径
4、添加HTTP请求一一百度首页
· 引用pth提取器中定义的参数名:${参数名}
5、添加查看结果树

四.JSON提取器
应用场景:适用于返回的数据类型为JSON格式的情况

参数介绍:
在这里插入图片描述
4.1 步骤

1、添加线程组
2、添加HTTP请求一一天气
3、添加JSON提取器
· 参数名
· JSON路径
4、添加HTTP请求一一百度,
· 应用JSON提取器中定义的参数名
5、添加查看结果树。

在这里插入图片描述

五. 跨线程组关联(jmeter属性)
应用场景:在多个不同线程组的请求之间传递数据。

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

原理:
在这里插入图片描述
5.1 步骤:

1、添加线程组1,添加HTTP请求一一传智播客
2、添加JSON提取器
3、添加Bean ShellE取样器(填写setProper函数一一将提取器提取出来的值赋值给meter属性)
4、添加线程组2,添加HTTP请求一一百度
· 引用前面返回的城市信息(使用propertyi函数一一将meter属性值读取出来)
5、添加查看结果树

在这里插入图片描述

在这里插入图片描述

四级目录JMeter录制脚本

作用:将操作过程直接转换为脚本

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

二.脚本录制演示
1.在测试计划下,添加HTTP代理服务器

在这里插入图片描述

2.设置自己PC的代理

在这里插入图片描述
3.点击启动,进入浏览器进入相关操作,脚本会自动生成并存放在指定的线程组下。

步骤
1.添加HTTP代理服务器
2.配置HTTP代理服务器
· jmeter代理的端口
· 配置目标控制器:选择一个线程组,将脚本录制到该线程组中
· filteri过滤:包含/排除
3、配置PC机中的代理设置。
· 配置IP (Jmeter的IP.本机lP)
· port(第2步中配置的meter代理的端口)】
· <-loopback>
4、启动HTTP代理服务器的配置
5、进入浏览器进行操作,HTTP请求会自动记录在jmeter中。

三.jmeter过滤规则的配置

在这里插入图片描述
四.cookie管理器

作用:获取服务器返回的登录状态,并添加到后续的请求 。

管理cookie:自动将cookie信息添加到后续的所有请求中。
登录及后续的相关操作时,需要提前添加HTTP Cookie管理器
在这里插入图片描述

  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值