IT评测·应用市场-qidao123.com技术社区
标题:
Jmeter中的前置处理器(二)
[打印本页]
作者:
一给
时间:
2024-11-21 16:44
标题:
Jmeter中的前置处理器(二)
5--JDBC PreProcessor
功能特点
数据库操作
:执行SQL语句,支持插入、删除、更新和查询操作。
机动配置
:可以毗连多种数据库(如MySQL、Oracle、PostgreSQL等)。
适用于数据准备
:特别得当需要在测试前准备数据库数据的场景。
配置步骤
添加 JDBC PreProcessor
右键点击需要添加预处理器的哀求或线程组。
选择“添加” -> “预处理器” -> “JDBC PreProcessor”。
配置 JDBC PreProcessor
名称
:给 JDBC 预处理器一个有意义的名称。
变量名称
:设置数据库毗连池的变量名称。
SQL查询
:输入要执行的SQL语句。
效果变量名称
:设置存储查询效果的变量名称(可选)。
处理效果
:选择如何处理查询效果(比方,忽略效果、纪录效果等)。
参数说明
名称
:给 JDBC 预处理器一个有意义的名称。
变量名称
:设置数据库毗连池的变量名称,必须与“JDBC Connection Configuration”中界说的变量名称一致。
SQL查询
:输入要执行的SQL语句,可以是插入、删除、更新或查询语句。
效果变量名称
:设置存储查询效果的变量名称,如果不需要存储效果,可以留空。
处理效果
:选择如何处理查询效果,比方:
忽略效果
:不存储查询效果。
纪录效果
:将查询效果存储在指定的变量中。
纪录效果并抛出非常
:将查询效果存储在指定的变量中,并在查询失败时抛出非常。
示例配置
假设我们需要测试一个Web应用,并在测试前向数据库中插入一些测试数据。
创建测试计划
:
右键点击“测试计划” -> 新建 -> 输入测试计划名称(比方“Web应用性能测试”)。
添加线程组
:
右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(比方“用户模仿”)。
配置线程组:
线程数
:1(模仿1个用户)
循环次数
:1(每个用户发送1次哀求)
启动延迟
:0(立即启动)
添加 JDBC 毗连配置
:
右键点击测试计划 -> 添加 -> 配置元件 -> JDBC Connection Configuration。
配置 JDBC 毗连配置:
变量名称
:dbConnection
数据库 URL
:jdbc:mysql://localhost:3306/mydatabase
JDBC驱动类
:com.mysql.jdbc.Driver
用户名
:root
暗码
:password
添加 JDBC PreProcessor
:
右键点击线程组 -> 添加 -> 预处理器 -> JDBC PreProcessor。
配置 JDBC PreProcessor:
名称
:插入测试数据
变量名称
:dbConnection
SQL查询
:INSERT INTO users (username, password) VALUES ('testuser1', 'testpass1'), ('testuser2', 'testpass2')
效果变量名称
:(可选,如果不需要存储效果,可以留空)
处理效果
:忽略效果
添加HTTP哀求
:
右键点击线程组 -> 添加 -> 取样器 -> HTTP哀求。
配置HTTP哀求:
名称
:登录哀求
服务器名称或IP
:目标服务器的地址(比方example.com)。
端口号
:目标服务器的端口(比方80)。
协议
:HTTP或HTTPS(比方HTTP)。
方法
:POST
路径
:哀求的路径(比方/login)。
参数
:
名称
:username
值
:testuser1
名称
:password
值
:testpass1
运行测试
:
点击工具栏上的“启动”按钮,运行测试。
优化建议
数据库毗连配置
:
确保 JDBC 毗连配置中的数据库 URL、驱动类、用户名和暗码精确无误。
如果使用的是特定命据库,确保已经添加了相应的 JDBC 驱动到 JMeter 的 lib 目次中。
SQL查询
:
根据实际需求编写 SQL 查询语句。如果需要执行多个操作,可以使用分号分隔多个 SQL 语句。
如果需要动态生成 SQL 语句,可以使用 JMeter 变量(比方 ${variable_name})。
效果处理
:
根据实际需求选择符合的处理效果方式。如果需要纪录查询效果,确保效果变量名称有意义且易于理解。
错误处理
:
在测试计划中添加断言和监听器,确保数据库操作的精确性和哀求的乐成率。
示例配置具体说明
假设我们有一个简单的测试计划,包罗一个线程组和一个HTTP哀求,并希望在测试前向数据库中插入一些测试数据。
创建测试计划
:
右键点击“测试计划” -> 新建 -> 输入测试计划名称(比方“Web应用性能测试”)。
添加线程组
:
右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(比方“用户模仿”)。
配置线程组:
线程数
:1(模仿1个用户)
循环次数
:1(每个用户发送1次哀求)
启动延迟
:0(立即启动)
添加 JDBC 毗连配置
:
右键点击测试计划 -> 添加 -> 配置元件 -> JDBC Connection Configuration。
配置 JDBC 毗连配置:
变量名称
:dbConnection
数据库 URL
:jdbc:mysql://localhost:3306/mydatabase
JDBC驱动类
:com.mysql.jdbc.Driver
用户名
:root
暗码
:password
添加 JDBC PreProcessor
:
右键点击线程组 -> 添加 -> 预处理器 -> JDBC PreProcessor。
配置 JDBC PreProcessor:
名称
:插入测试数据
变量名称
:dbConnection
SQL查询
:INSERT INTO users (username, password) VALUES ('testuser1', 'testpass1'), ('testuser2', 'testpass2')
效果变量名称
:(可选,如果不需要存储效果,可以留空)
处理效果
:忽略效果
添加HTTP哀求
:
右键点击线程组 -> 添加 -> 取样器 -> HTTP哀求。
配置HTTP哀求:
名称
:登录哀求
服务器名称或IP
:example.com
端口号
:80
协议
:HTTP
方法
:POST
路径
:/login
参数
:
名称
:username
值
:testuser1
名称
:password
值
:testpass1
运行测试
:
点击工具栏上的“启动”按钮,运行测试。
6--取样器超时
功能特点
超时控制
:设置哀求的最大等待时间,高出这个时间哀求将被视为超时。
适用于各种取样器
:可以应用于HTTP哀求、FTP哀求、JDBC哀求等多种取样器。
进步测试稳定性
:避免因网络问题或服务器相应慢导致测试长时间挂起。
配置步骤
添加取样器
右键点击需要添加取样器的线程组。
选择“添加” -> “取样器” -> 选择符合的取样器(比方HTTP哀求)。
配置取样器超时时间
在取样器的配置界面中找到超时时间相关的设置。
设置公道的超时时间。
参数说明
超时时间
:设置哀求的最大等待时间,单位通常为毫秒(ms)。
毗连超时
:设置创建毗连的最大等待时间,单位通常为毫秒(ms)。
相应超时
:设置吸收相应的最大等待时间,单位通常为毫秒(ms)。
示例配置
假设我们需要测试一个Web应用,并设置HTTP哀求的超时时间为10秒(10000毫秒)。
创建测试计划
:
右键点击“测试计划” -> 新建 -> 输入测试计划名称(比方“Web应用性能测试”)。
添加线程组
:
右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(比方“用户模仿”)。
配置线程组:
线程数
:1(模仿1个用户)
循环次数
:1(每个用户发送1次哀求)
启动延迟
:0(立即启动)
添加HTTP哀求
:
右键点击线程组 -> 添加 -> 取样器 -> HTTP哀求。
配置HTTP哀求:
名称
:首页哀求
服务器名称或IP
:目标服务器的地址(比方example.com)。
端口号
:目标服务器的端口(比方80)。
协议
:HTTP或HTTPS(比方HTTP)。
方法
:GET
路径
:哀求的路径(比方/)。
超时时间
:
毗连超时(毫秒)
:5000(5秒)
相应超时(毫秒)
:10000(10秒)
运行测试
:
点击工具栏上的“启动”按钮,运行测试。
优化建议
公道设置超时时间
:
根据实际需求和网络状态设置公道的超时时间。过短的超时时间可能导致正常哀求被误判为超时,过长的超时时间可能导致测试长时间挂起。
区分毗连超时和相应超时
:
毗连超时是指创建毗连的时间限定,相应超时是指吸收相应的时间限定。根据实际情况分别设置这两个超时时间。
错误处理
:
在测试计划中添加断言和监听器,确保超时哀求的精确性和处理方式。比方,可以使用“相应断言”来检查哀求是否超时。
日志纪录
:
使用日志纪录功能可以帮助调试和分析超时哀求的原因,确保日志文件路径有用且有足够的写权限。
示例配置具体说明
假设我们有一个简单的测试计划,包罗一个线程组和一个HTTP哀求,并希望设置HTTP哀求的超时时间为10秒(10000毫秒)。
创建测试计划
:
右键点击“测试计划” -> 新建 -> 输入测试计划名称(比方“Web应用性能测试”)。
添加线程组
:
右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(比方“用户模仿”)。
配置线程组:
线程数
:1(模仿1个用户)
循环次数
:1(每个用户发送1次哀求)
启动延迟
:0(立即启动)
添加HTTP哀求
:
右键点击线程组 -> 添加 -> 取样器 -> HTTP哀求。
配置HTTP哀求:
名称
:首页哀求
服务器名称或IP
:example.com
端口号
:80
协议
:HTTP
方法
:GET
路径
:/
超时时间
:
毗连超时(毫秒)
:5000(5秒)
相应超时(毫秒)
:10000(10秒)
运行测试
:
点击工具栏上的“启动”按钮,运行测试。
7--正则表达式用户参数
功能特点
数据提取
:使用正则表达式从相应中提取特定的数据。
动态参数传递
:将提取的数据存储为变量,供后续哀求使用。
支持多种相应范例
:可以处理文本、HTML、JSON等多种相应范例。
配置步骤
添加正则表达式提取器
右键点击需要添加后处理器的哀求或线程组。
选择“添加” -> “后处理器” -> “正则表达式提取器”(Regular Expression Extractor)。
配置正则表达式提取器
名称
:给正则表达式提取器一个有意义的名称。
应用到
:选择要应用正则表达式的相应范例(比方,主样本、子样本等)。
字段要检查
:选择要检查的相应字段(比方,相应数据、相应头等)。
正则表达式
:输入用于匹配数据的正则表达式。
模板
:设置提取数据的模板,通常格式为$1$表示第一个捕获组。
匹配数字
:设置要匹配的次数(比方,-1表示匹配全部,0表示随机匹配一个,1表示匹配第一个)。
默认值
:设置如果未找到匹配项时的默认值。
参数说明
名称
:给正则表达式提取器一个有意义的名称。
应用到
:选择要应用正则表达式的相应范例,比方:
主样本
:仅应用到主样本。
子样本
:仅应用到子样本。
主样本和子样本
:应用到主样本和子样本。
字段要检查
:选择要检查的相应字段,比方:
相应数据
:检查相应数据。
相应头
:检查相应头。
正则表达式
:输入用于匹配数据的正则表达式。
模板
:设置提取数据的模板,通常格式为$1$表示第一个捕获组。
匹配数字
:设置要匹配的次数,比方:
-1
:匹配全部。
0
:随机匹配一个。
1
:匹配第一个。
默认值
:设置如果未找到匹配项时的默认值。
示例配置
假设我们需要测试一个Web应用,并从登录哀求的相应中提取会话标识符(比方JSESSIONID),然后在后续哀求中使用该会话标识符。
创建测试计划
:
右键点击“测试计划” -> 新建 -> 输入测试计划名称(比方“Web应用性能测试”)。
添加线程组
:
右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(比方“用户模仿”)。
配置线程组:
线程数
:1(模仿1个用户)
循环次数
:1(每个用户发送1次哀求)
启动延迟
:0(立即启动)
添加登录哀求
:
右键点击线程组 -> 添加 -> 取样器 -> HTTP哀求。
配置HTTP哀求:
名称
:登录哀求
服务器名称或IP
:目标服务器的地址(比方example.com)。
端口号
:目标服务器的端口(比方80)。
协议
:HTTP或HTTPS(比方HTTP)。
方法
:POST
路径
:哀求的路径(比方/login)。
参数
:
名称
:username
值
:testuser
名称
:password
值
:testpass
添加正则表达式提取器
:
右键点击登录哀求 -> 添加 -> 后处理器 -> 正则表达式提取器。
配置正则表达式提取器:
名称
:提取会话标识符
应用到
:主样本
字段要检查
:相应数据
正则表达式
:JSESSIONID=(.*?);
模板
:11
匹配数字
:1(匹配第一个)
默认值
:NO_SESSION_ID
添加后续哀求
:
右键点击线程组 -> 添加 -> 取样器 -> HTTP哀求。
配置HTTP哀求:
名称
:首页哀求
服务器名称或IP
:example.com
端口号
:80
协议
:HTTP
方法
:GET
路径
:/
参数
:
名称
:JSESSIONID
值
:${session_id}
运行测试
:
点击工具栏上的“启动”按钮,运行测试。
优化建议
正则表达式
:
确保正则表达式精确无误,能够准确匹配所需的数据。可以使用在线正则表达式测试工具进行验证。
模板设置
:
根据正则表达式的捕获组设置符合的模板。比方,$1$表示第一个捕获组,$2$表示第二个捕获组。
匹配次数
:
根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要全部匹配项,设置为-1。
默认值
:
设置公道的默认值,避免因未找到匹配项而导致测试失败。
错误处理
:
在测试计划中添加断言和监听器,确保提取的数据精确性和哀求的乐成率。
示例配置具体说明
假设我们有一个简单的测试计划,包罗一个线程组和两个HTTP哀求,并希望从登录哀求的相应中提取会话标识符(比方JSESSIONID),然后在后续哀求中使用该会话标识符。
创建测试计划
:
右键点击“测试计划” -> 新建 -> 输入测试计划名称(比方“Web应用性能测试”)。
添加线程组
:
右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(比方“用户模仿”)。
配置线程组:
线程数
:1(模仿1个用户)
循环次数
:1(每个用户发送1次哀求)
启动延迟
:0(立即启动)
添加登录哀求
:
右键点击线程组 -> 添加 -> 取样器 -> HTTP哀求。
配置HTTP哀求:
名称
:登录哀求
服务器名称或IP
:example.com
端口号
:80
协议
:HTTP
方法
:POST
路径
:/login
参数
:
名称
:username
值
:testuser
名称
:password
值
:testpass
添加正则表达式提取器
:
右键点击登录哀求 -> 添加 -> 后处理器 -> 正则表达式提取器。
配置正则表达式提取器:
名称
:提取会话标识符
应用到
:主样本
字段要检查
:相应数据
正则表达式
:JSESSIONID=(.*?);
模板
:11
匹配数字
:1(匹配第一个)
默认值
:NO_SESSION_ID
添加后续哀求
:
右键点击线程组 -> 添加 -> 取样器 -> HTTP哀求。
配置HTTP哀求:
名称
:首页哀求
服务器名称或IP
:example.com
端口号
:80
协议
:HTTP
方法
:GET
路径
:/
参数
:
名称
:JSESSIONID
值
:${session_id}
运行测试
:
点击工具栏上的“启动”按钮,运行测试。
8--BeanShell PreProcessor
功能特点
自界说预处理逻辑
:使用 BeanShell 脚本编写自界说的预处理逻辑。
机动控制
:可以根据测试数据和条件动态调整哀求参数。
支持 BeanShell 脚本
:支持使用 BeanShell 脚本语言编写预处理逻辑。
配置步骤
添加 BeanShell 预处理器
右键点击需要添加预处理器的哀求或线程组。
选择“添加” -> “预处理器” -> “BeanShell 预处理器”。
配置 BeanShell 预处理器
名称
:给 BeanShell 预处理器一个有意义的名称。
文件
:选择脚本文件路径(可选,如果脚本较长或需要版本控制)。
脚本
:直接在脚本编辑框中编写脚本。
参数
:界说脚本中使用的参数(可选)。
参数说明
名称
:给 BeanShell 预处理器一个有意义的名称。
文件
:选择脚本文件路径(可选,如果脚本较长或需要版本控制)。
脚本
:直接在脚本编辑框中编写 BeanShell 脚本。
参数
:界说脚本中使用的参数(可选)。
示例配置
假设我们需要测试一个Web应用,并在发送哀求之前动态设置哀求参数,比方根据当前时间生成一个唯一的哀求ID。
创建测试计划
:
右键点击“测试计划” -> 新建 -> 输入测试计划名称(比方“Web应用性能测试”)。
添加线程组
:
右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(比方“用户模仿”)。
配置线程组:
线程数
:1(模仿1个用户)
循环次数
:1(每个用户发送1次哀求)
启动延迟
:0(立即启动)
添加HTTP哀求
:
右键点击线程组 -> 添加 -> 取样器 -> HTTP哀求。
配置HTTP哀求:
名称
:首页哀求
服务器名称或IP
:目标服务器的地址(比方example.com)。
端口号
:目标服务器的端口(比方80)。
协议
:HTTP或HTTPS(比方HTTP)。
方法
:GET
路径
:哀求的路径(比方/)。
参数
:
名称
:requestId
值
:${request_id}
添加 BeanShell 预处理器
:
右键点击HTTP哀求 -> 添加 -> 预处理器 -> BeanShell 预处理器。
配置 BeanShell 预处理器:
名称
:生成哀求ID
脚本
:在脚本编辑框中编写以下 BeanShell 脚本:
import java.util.Date;
import java.text.SimpleDateFormat;
// 获取当前时间
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String timestamp = sdf.format(now);
// 生成唯一请求ID
String requestId = "req_" + timestamp;
// 将请求ID存储为JMeter变量
vars.put("request_id", requestId);
复制代码
运行测试
:
点击工具栏上的“启动”按钮,运行测试。
优化建议
脚本语言选择
:
虽然 BeanShell 是一个强大的脚本语言,但 Groovy 通常性能更好且功能更强大。如果可能,建议使用 Groovy 脚本。
脚本文件
:
如果脚本较长或需要版本控制,可以将脚本保存到文件中,并在 BeanShell 预处理器中选择脚本文件路径。
参数
:
如果脚本需要使用外部参数,可以在“参数”部分界说参数,并在脚本中引用这些参数。
性能影响
:
留意复杂脚本可能会对测试性能产生影响,特别是在大规模性能测试中。可以通过优化脚本和淘汰不须要的操作来进步性能。
错误处理
:
在脚本中添加得当的错误处理逻辑,确保脚本在遇到非常时能够优雅地处理。
日志纪录
:
使用日志纪录功能可以帮助调试和分析脚本执行情况,确保日志文件路径有用且有足够的写权限。
示例配置具体说明
假设我们有一个简单的测试计划,包罗一个线程组和一个HTTP哀求,并希望在发送哀求之前动态生成一个唯一的哀求ID。
创建测试计划
:
右键点击“测试计划” -> 新建 -> 输入测试计划名称(比方“Web应用性能测试”)。
添加线程组
:
右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(比方“用户模仿”)。
配置线程组:
线程数
:1(模仿1个用户)
循环次数
:1(每个用户发送1次哀求)
启动延迟
:0(立即启动)
添加HTTP哀求
:
右键点击线程组 -> 添加 -> 取样器 -> HTTP哀求。
配置HTTP哀求:
名称
:首页哀求
服务器名称或IP
:example.com
端口号
:80
协议
:HTTP
方法
:GET
路径
:/
参数
:
名称
:requestId
值
:${request_id}
添加 BeanShell 预处理器
:
右键点击HTTP哀求 -> 添加 -> 预处理器 -> BeanShell 预处理器。
配置 BeanShell 预处理器:
名称
:生成哀求ID
脚本
:在脚本编辑框中编写以下 BeanShell 脚本:
import java.util.Date;
import java.text.SimpleDateFormat;
// 获取当前时间
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String timestamp = sdf.format(now);
// 生成唯一请求ID
String requestId = "req_" + timestamp;
// 将请求ID存储为JMeter变量
vars.put("request_id", requestId);
复制代码
运行测试
:
点击工具栏上的“启动”按钮,运行测试。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4