Jemeter--独立变参接口压测

Jemeter–独立不变参接口压测
Jemeter–独立变参接口压测
Jemeter–关联接口压测

从数据库获取变参数据源

1、压测计划处添加对应数据库驱动包

左键点击压测计划,进入压测计划页面,点击浏览添加数据库链接jar包
在这里插入图片描述

2、线程组添加 JDBC配置原件

在这里插入图片描述

填写数据库相关信息,一个是数据库这套配置的变量名称 业务-mysql,
另一个是数据库链接信息

在这里插入图片描述

3、添加JDBC Request

在这里插入图片描述
填写配置

  • 使用的jdbc Connection Configuration变量 Mysql
  • 数据源sql
  • 数据变量

在这里插入图片描述

4、测试数据库取值

点击启动,察看结果树,发现数据已经拿到le
在这里插入图片描述
这种方式可以用于对数据库进行sql压测
在这里插入图片描述

在这里插入图片描述

5、接口中使用数据库的变量值

添加forEach控制器,遍历数据

在这里插入图片描述
需要使用的变量(只支持一个),循环的次数0-10条,输出的变量名(用于接口中使用)
在这里插入图片描述

右击ForEach,在ForEach下添加http请求
在这里插入图片描述
接口中使用变量**${wave_bill_code1}**(带了1)

在这里插入图片描述
调整一下顺序层次(Jemeter对接口执行顺序有要求,不然可能取不到前面接口中的参数)

在这里插入图片描述

6、进行压测

察看结果树 点击请求 body 可以看到已经拿到不同的wave_bill_code值去进行调用
在这里插入图片描述
汇总报告

在这里插入图片描述
聚合报告
在这里插入图片描述TPS
在这里插入图片描述

7、数据库取数据源总结

可以发现数据库的sql会重复执行(可以用来压测sql),不同线程也会取到相同的值,对于压测接口数据重复没有影响的话可以直接使用。但是,对于要求值唯一性的接口比如下单、复核等是有影响的。

解决方式也比较麻烦,一个是写脚本,不同的线程执行sql的数据范围不同,获取遍历器的范围不同。另一个是复制多个线程组,每个线程组自定义 sql查询和ForEach遍历器。(使用csv当作数据源就没有这种问题了)

从CSV获取变参数据源

把 JDBC 和ForEach直接禁用,防止影响csv方式
在这里插入图片描述
在这里插入图片描述

1、从数据库中导出csv符合的数据

在这里插入图片描述
去掉第一行的头,重新保存一下,不然会取到第一行的值

在这里插入图片描述

2、添加Csv Data Set Config

右击线程组,添加Csv Data Set Config
在这里插入图片描述
配置文件、格式、文件中的变量

在这里插入图片描述

注意:

  • 线程共享模式不同,对应的执行效果不同。

  • 如果选择所有现场和当前线程组,对于数据来说在所有现场和当前线程组是共享的,每个线程挨个取值,不会有相同线程取同一行的值。

  • 如果选择当前线程,则每个线程独立享有所有数据,会有数据重复(类似上面数据源ForEach)

3、修改http接口请求中获取变量值

接口中使用变量**${wave_bill_code}**
在这里插入图片描述

4、进行压测

察看结果树
在这里插入图片描述
汇总报告

在这里插入图片描述
聚合报告
在这里插入图片描述
TPS
在这里插入图片描述

5、总结

csv方式可以做到多个线程共享数据,并发执行且不会有重复的请求(取决于csv文件的数据是否有重复)

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值