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分钟后重新输入正确的用户名和密码登陆成功。

相关推荐
测试者家园17 小时前
JMeter + Grafana +InfluxDB性能监控
软件测试·jmeter·性能测试·grafana·性能监控·质量效能
沉下去,苦磨练!19 小时前
influxdb+grafana+jmeter
jmeter·grafana
vip1024p19 小时前
全面指南:使用JMeter进行性能压测与性能优化(中间件压测、数据库压测、分布式集群压测、调优)
jmeter·中间件·性能优化
小馋喵知识杂货铺2 天前
JMeter 测试Dubbo 接口
jmeter·dubbo
Feng.Lee2 天前
性能测试实时监听工具Influx+Grafana
测试工具·jmeter·grafana
Hello Dam2 天前
Jmeter 动态参数压力测试时间段预定接口
jmeter·spring cloud·springboot·压力测试
zfj3213 天前
学技术学英文:通过jmeter命令行工具生成聚合报告文件到csv文件
jmeter·命令行工具·聚合报告·导出到csv·批量生成聚合报告
zfj3213 天前
学英语学技术: jmeter插件管理器
jmeter·插件·压测工具
互联网杂货铺4 天前
接口测试(postman/jmeter)
自动化测试·软件测试·python·测试工具·jmeter·测试用例·postman