阶段七第二章性能测试工具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管理器

相关推荐
游客5209 小时前
Selenium 基本用法入门指南
selenium·测试工具
古人诚不我欺9 小时前
Postman之newman
测试工具·postman
善良的修罗10 小时前
postman 最强内置函数使用集合
测试工具·lua·postman
hopetomorrow11 小时前
学习路之压力测试--jmeter安装教程
学习·jmeter·压力测试
黑客呀12 小时前
抓包 127.0.0.1 (loopback) 使用 tcpdump+wireshark
测试工具·wireshark·tcpdump
明明跟你说过17 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
tester Jeffky19 小时前
JMeter 性能测试计划深度解析:构建与配置的树形结构指南
jmeter
tester Jeffky19 小时前
深入探索JMeter逻辑控制器:构建复杂测试场景的利器
jmeter
tester Jeffky1 天前
深入探索JMeter的执行器时间线:从CLArgsParser到JmeterEngine
jmeter