Jmeter直连数据库 、逻辑控制器、定时器

直连数据库的使用场景:

(1)用户请求的参数化

例如:登录时需要的用户名,可以从数据库中查询获取。

(2)用作结果的断言

例如:添加购物车下订单,检查接口返回的订单号,是否与数据库中生成的订单号一致

(3)清理垃圾数据

例如:添加商品(商品名/编号等不能重复) ,再执行该脚本不能成功,需要下次执行前删除该商品数据。

(4)准备测试数据

例如:通过数据库来准备大量的性能测试数据

直连数据库的步骤:

直连数据库的关键:添加MySql驱动jar包。

方式一:在测试计划面板点击浏览按钮,将JDBC驱动添加进行。

方式二:将MySql驱动的jar包放入到lib/ext目录下,重启Jmeter.

配置数据库的连接:

测试计划---》线程组---》右键添加配置元件---》JDBC Connection Configuration

Variable Name: mysql 数据库连接池名称(JDBC请求时引用)

Database URL: jdbc:mysql://localhost:3306/tpshop2.0 组成:协议+数据库IP+数据库端口

+连接的数据库名称

JDBC DRIVER class :com.mysql.jdbc.Driver(MySql驱动包位置固定格式----下拉框 选择)

添加JDBC请求:

测试计划---》线程组---》取样器---》JDBC Request

Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration 的Variable Name 名字保持一致。

Query Type: 查询: Select Statement;增删改:Update Statement

Query :填写的SQL语句,末尾不加";"

Variable names:保存SQL语句返回结果的变量名

Jmeter常见的逻辑控制器:

如果(If)控制器、循环控制器、ForEach控制器

If控制器:

作用:If控制器用来控制它下面的测试元素是否执行

位置:测试计划---》线程组---》右键添加逻辑控制器---》If控制器

例子:JS语法形式: "${name}" == "itcast"

函数形式: {__jexl3("{name}" == "itcast")} ,在函数助手里面找到jexl3函数,主要勾选Interpret Condition as Variable Expression?

循环控制器:

作用:通过设置循环次数,来实现循环发送请求。

位置:测试计划---》线程组---》右键添加逻辑控制器---》循环控制器

线程组属性可以控制循环次数,那么循环控制器有什么用?

线程组属性控制下面所有的循环,循环控制器控制其下的HTTP请求。

ForEach控制器

作用:一般和用户自定义变量,特点是:相同的变量名+连续的数字后缀,如name_1,name_2或者正则表达式提取器一起使用,读取返回结果中 的一系列相关的变量。

位置:测试计划---》线程组---》右键添加逻辑控制器---》ForEach控制器

参数介绍:输入变量前缀:要读取的输入变量的固定前缀,如name

开始循环字段:要读取的输入变量后缀数字的最小值-1,如0

结束循环字段:要读取的输入变量后缀数字的最大值,如2

输入变量名称:读取输入变量的值后保存的新变量名,用于后续的HTTP请求来引用。

同步定时器

为什么要使用同步定时器?---测试抢购、秒杀、或者抢红包等高并发的场景时使用。

如何模拟1w用户同时间进行电商网站中的抢购活动/秒杀活动?

如何模拟1000人同时抢红包?

同步定时器:阻塞线程(累积一定的请求),当在规定时间内达到一定的线程数量,这些线程在同一时间点一起释放,瞬间产生很大的压力。

位置:测试计划---》线程组---》右键添加定时器---》Synchronizing Timer

参数介绍:Number of Simulated User to Group by: 模拟用户的数量,即指定同时释放的线程数数量。若设置为0,等于设置为线程组中的线程数。

Timeout in milliserconds :超过时间,即超过多少毫秒后同时释放指定的线程数。

若设置为0,则定时器会等待线程数达到了设置的线程数才释放,若没有达到设置的线程数会一直死等。若大于0 ,那么如果超过Timeout in milliserconds中设置的最大等待时间后还没有达到设置的线程数,Timer将不再等待,释放已达到的线程数。默认为0。也不能设置太小,等待时间还没有达到线程数,就会释放已达到的线程数。

常数吞吐量定时器

为什么要使用常数吞吐量定时器?---让Jmeter按照指定的吞吐量执行,以每分钟为单位。

稳定性测试时,要求模拟用户真实的业务场景,如果用户真实的业务场景的 QPS是20,如何准确模拟?

位置:测试计划---》线程组---》右键添加定时器---》Constant Throughput Timer

参数介绍 :Traget throughput :目标吞吐量。这里是每个用户每分钟发送的请求数。QPS * 60 /线程数。

固定定时器

案例:IHRM系统登陆错误3次后,锁定1分钟,1分钟后重新输入正确的用户名和密码登陆成功。

相关推荐
程序媛_2 小时前
【JMeter】接口实战
jmeter
cuoluoche2 小时前
【jmeter】报告怎么看
jmeter
元媛媛2 小时前
Jmeter实战
jmeter
慢飞的笨鸟2 小时前
Jmeter本身耗资源导致压测不上去解决方案
jmeter
程序员三藏1 天前
Jmeter的三种参数化方式详解
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·测试用例
虚妄狼3 天前
【Jmeter】Jmeter 高并发性能压力测试
jmeter
沉豆3 天前
Jmeter调用jar包中的方法,并使用返回值当请求参数
java·jmeter·jar
慢飞的笨鸟4 天前
Jmeter压测手册:脚本配置、服务器环境搭建与运行
jmeter
软件测试大叔6 天前
arm服务器运行Jmeter报错问题UseG1GC
jmeter
海姐软件测试6 天前
使用Jmeter做功能测试有哪些优点?
功能测试·jmeter