[转帖]看看 Jmeter 是如何玩转 redis 数据库的

看看,jmeter,如何,玩转,redis,数据库 · 浏览次数 : 0

小编点评

**使用jmeter测试Redis数据库的步骤:** 1. **下载并安装Redis插件:** - 下载《测试面试宝典》jmeter-plugins-manager-1.6.jar文件。 - 在jmeter的lib文件夹下创建ext文件夹,并将插件文件放置在其中。 - 重启jmeter。 2. **配置Redis Data Set:** - 在线程组上添加>配置元件>jp@gc-Redis Data Set。 - 在搜索框中输入Redis,选择"Redis Data Set"。 - 点击"Apply Changes and Restart JMeter",带自动下载后重启jmeter。 3. **配置Redis连接:** - 在jmeter的线程组上右键,添加>配置元件>jp@gc-Redis Data Set。 - 在配置页面中设置Redis服务器地址、端口、密码、数据库名称等信息。 4. **写入数据:** - 使用jedis的java API将数据写入Redis数据库。 - 可以使用jedis的"set()"方法将数据写入"foo"变量中。 5. **获取数据:** - 在jmeter的线程组上添加>测试元素>RedisDataSet。 - 在测试元素中设置数据源类型为"Redis",数据源地址为"81.69.228.171",端口为6679。 - 设置获取的数据数量。 6. **运行测试:** - 启动jmeter测试。 - 观察数据被读取并输出。 **注意:** - 确保Redis服务器运行正常。 - 确保jmeter的线程组内存充足。 - 可以设置测试的超时时间。

正文

 

2021-08-31 20:06420

Jmeter 作为当前非常受欢迎的接口测试和性能测试的工具,在企业中得到非常广泛的使用,而 Redis 作为缓存数据库,也在企业中得到普遍使用,那如何使用 jmeter 来测试 Redis 数据库呢?今天我们就来讲一讲怎么使用 jmeter 来调用 Redis。

jmeter 准备

由于 jmeter 本身并没有带有 Redis 的测试入口,我们需要去安装 Redis 插件。

首先,我们下载《测试面试宝典》
jmeter-plugins-manager-1.6.jar 文件,放到 jmeter 的 lib 的 ext 文件夹中,然后重启 jmeter。

然后,在‘选项’菜单下,点击‘plugin manager’,打开插件管理弹窗,选择‘Available Plugins’,在搜索框中,输入 Redis

看看 Jmeter 是如何玩转 redis 数据库的

然后,选中‘Redis Data Set’,点击‘Apply Changes and Restart JMeter’

带自动下载后重启 jmeter。

然后,在 jmeter 的线程组上右键,添加 > 配置元件 > jp@gc - Redis Data Set

看看 Jmeter 是如何玩转 redis 数据库的

此时,已经可以通过 jmeter 配置连接 Redis 数据库了。如果你已经有了 Redis 数据库,那你就直接可以在当前的界面中进行相关的配置,如果你还没有 Redis 数据库,就需要安装 Redis 数据库。

安装 Redis 数据库

安装 Redis 数据库的方法很多,那使用 docker 方式的安装,可能是最简单的,下面我就用 docker 的方式来安装 Redis 数据库。

 
lua
复制代码
  docker run -itd --name jmeter-redis \
-p 6779:6379  \ 
daocloud.io/library/redis:3.2.8-alpine redis-server --appendonly yes

好了,现在有了 Redis 数据库,该往数据库里面插入一些数据了。

 
bash
复制代码
  # 进入容器
docker exec -it jmeter-redis /bin/sh

# 命令模式,连接redis
redis-cli

# 插入列表数据
lpush course jmeter,loadruner
lpush course wrk,ab
lpush course locust,ngrinder

看看 Jmeter 是如何玩转 redis 数据库的

现在,Redis 数据库库中,已经有了一个列表 course,我们可以在 jmeter 中,获取它的数据。

jmeter 使用 Redis 数据

在 RedisDataSet 中配置相关信息

看看 Jmeter 是如何玩转 redis 数据库的

  • Data Configuration

  • Redis key:Redis 中的 key,Redis 数据库中列表(有序数据)或集(无序数据)的名称

  • Variable Names:由数据集导出到测试元素的变量的名称(设置取出来的 value 存放在哪个变量中)

  • Delimiter:存储在 Redis 列表或集合中的行中使用的分隔符(取出的 value 有多个值时,变量名之间的分隔符)

  • Date Sources Type:数据源类型,有 List、Set 两种选择

  • Recycle data on Flase: 数据是否重复使用

  • Connection Configuration

  • Redis server host:Redis 服务器 IP 地址

  • Redis server port:Redis 服务端口

  • Timeout for connect in ms: 连接超时时间,默认 2000 ms

  • Password for connection:连接 Redis 的密码

  • Database:数据库名称,连接 Redis 的第几个数据库,默认为 0

  • Redis Pool Configuration

字段

用法

默认值

minIdle

至少有多少个处于空闲状态的 Redis 实例

0

maxIdle

一个线程池最多有多少个处于空闲状态的 Redis 实例

10

maxActive

控制一个 pool 可分配多少个 Redis 实例,通过 pool.getResource()来获取;如果赋值为-1,则表示不限制;如果 pool 已经分配了 maxActive 个 jedis 实例,则此时 pool 的状态就成 exhausted

20

maxWait

表示当 borrow 一个 Redis 实例时,最大的等待时间,如果超过等待时间,则直接抛出 JedisConnectionException

30000

whenExhaustedAction

表示当 pool 中的 Redis 实例都被 allocated 完时,pool 要采取的操作;默认有三种 WHEN_EXHAUSTED_FAIL(表示无 Redis 实例时,直接抛出 NoSuchElementException)、WHEN_EXHAUSTED_BLOCK(则表示阻塞住,或者达到 maxWait 时抛出 JedisConnectionException)、WHEN_EXHAUSTED_GROW(则表示新建一个 jedis 实例,也就说设置的 maxActive 无用)

GROW

testOnBorrow

在 borrow 一个 Redis 实例时,是否提前进行 alidate 操作;如果为 true,则得到的 Redis 实例均是可用的

False

testOnReturn

在 return 给 pool 时,是否提前进行 validate 操作

False

testWhileIdle

如果为 true,表示有一个 idle object evitor 线程对 idle object 进行扫描,如果 validate 失败,此 object 会被从 pool 中 drop 掉;这一项只有在
timeBetweenEvictionRunsMillis 大于 0 时才有意义

False

timeBetweenEvictionRunsMillis

表示 idle object evitor 两次扫描之间要 sleep 的毫秒数

30000

numTestsPerEvictionRun

表示 idle object evitor 每次扫描的最多的对象数

0

minEvictableIdleTimeMillis

表示一个对象至少停留在 idle 状态的最短时间,然后才能被 idle object evitor 扫描并驱逐;这一项只有在
timeBetweenEvictionRunsMillis 大于 0 时才有意义

60000

softMinEvictableIdleTimeMillis


minEvictableIdleTimeMillis 基础上,加入了至少 minIdle 个对象已经在 pool 里面了。如果为-1,evicted 不会根据 idle time 驱逐任何对象。如果 minEvictableIdleTimeMillis>0,则此项设置无意义,且只有在 timeBetweenEvictionRunsMillis 大于 0 时才有意义

60000

接下来我们添加调试取样器,在名称中引用 Redis 变量名称。然后,线程组循环次数设置多次。

看看 Jmeter 是如何玩转 redis 数据库的

运行

看看 Jmeter 是如何玩转 redis 数据库的

我们看到,获得了 Redis 的数据。

jmeter 向 Redis 中写数据

上面呢,我们已经有讲到了,怎么来获取 Redis 数据库里面的数据?那接下来呢,我们给大家讲一下如何向 Redis 数据库里面写入数据。

首先,我们下载 jedis 的 jar 包, 把下载的包,放入 jmeter 的 lib 文件夹下,重启 jmeter

然后,在 jmeter 中,新增一个线程组,添加‘jsr223 sampler’

 
ini
复制代码
  import redis.clients.jedis.Jedis;

Jedis jedis = new Jedis("81.69.228.171", 6679);
jedis.set("foo","bar");
String value = jedis.get("foo");

看看 Jmeter 是如何玩转 redis 数据库的

运行脚本

看看 Jmeter 是如何玩转 redis 数据库的

从 Redis 数据库中确认,数据已经入库《测试面试宝典》

看看 Jmeter 是如何玩转 redis 数据库的

好了,通过 jmeter 写入数据和获取数据的方法都讲了,你学会了吗?

与[转帖]看看 Jmeter 是如何玩转 redis 数据库的相似的内容:

[转帖]看看 Jmeter 是如何玩转 redis 数据库的

柠檬小欧 2021-08-31 20:06420 Jmeter 作为当前非常受欢迎的接口测试和性能测试的工具,在企业中得到非常广泛的使用,而 Redis 作为缓存数据库,也在企业中得到普遍使用,那如何使用 jmeter 来测试 Redis 数据库呢?今天我们就来讲一讲怎么使用 jmeter 来调用

[转帖]jmeter正则表达式提取器获取数组数据-02篇

接上篇,当我们正则表达式匹配到多个值以后,入下图所示,匹配到21个结果,如果我们想一次拿到这一组数据怎么办呢 打开正则表达式提取器页面,匹配数字填入-1即可 通过调试取样器就可以看到匹配到已经匹配到多个结果了

[转帖]jmeter线程组与循环次数的区别

在压测的时候,有些接口需要携带登录信息,但是我们只想登录一次,然后其他接口进行多用户压测,此时你会怎么办?用仅一次控制器实现吗?下面我们来看看用仅一次控制器能不能实现 压测时jmeter中的线程数是模拟并发用户的,我们设置线程数5,然后登录请求添加一个仅一次控制器,我们通过察看结果树看到登录请求是执

[转帖]JMETER结果分析

https://www.cnblogs.com/a00ium/p/10462892.html 我相信你同意:有很多方法可以收集和解释JMeter结果,你会感到迷茫。 嗯,看完这篇文章后,您将了解收集和分析结果的12种不同方法! 我们将探索每种可能的方式来获得富有洞察力的指标,包括图形,图表,表格,H

[转帖]jmeter之使用csv文件传递参数-05篇

csv文件格式,第一列为手机号,第二列为密码 1.右键添加一个配置元件 csv数据文件设置 2.设置csv数据提取路径 3.引用数据 4.设置线程循环运行两次,然后发送请求 看到结果就执行了两次,取得用户名和密码发生了变化

[转帖]XEON E5 V3全核睿频有多酷?我们来看看

https://zhuanlan.zhihu.com/p/260820308 我们知道,因特尔的睿频技术,其实就是官方的超频。今天我们来看一下全核睿频时,XEON E5 V3有多大的能耐! XEON E5 2678V3,这个CPU在某宝上,现在只要500多RMB了。2678V3其实参数和2680V3

[转帖]一篇文章真正彻底讲透美国房产税,看看对中国有何借鉴?(上)

https://zhuanlan.zhihu.com/p/373501177 我系统的讲了我国征收房产税的本质和目的,并提了英美国家征收房产税的目的和方式,作为参考。那么,外国都是怎么征收房产税的呢?他们的房产税制度和体系,到底是怎么样的呢?对我国有何借鉴呢?我国在即将开始征收的房产税,会学习国外吗

[转帖]linux下 进程io队列,IO队列和IO调度

IO体系概览 先看看本文主题IO调度和IO队列处于整个IO体系的哪个位置,这个IO体系是非常重要的,了解IO体系我们可以对整个IO过程有个全面的认识。虽然一下两下并不清楚IO体系各个部分的细节,但是我们总是能从这儿找到脉络。知道什么问题在什么位置,这个是解决问题的时候最关键的。任何所谓的专家都不太可

[转帖]《Linux性能优化实战》笔记(十五)—— 磁盘IO的工作原理

前一篇介绍了文件系统的工作原理,这一篇来看看磁盘IO的工作原理 一、 磁盘 1. 按存储介质分类 磁盘是可以持久化存储的设备,根据存储介质的不同,常见磁盘可以分为两类:机械磁盘和固态磁盘。 机械磁盘,也称为硬盘驱动器(Hard Disk Driver,HDD),主要由盘片和读写磁头组成,数据存储在盘

[转帖]什么是内存颗粒?

https://zhuanlan.zhihu.com/p/257999332 关于内存的基础知识和选购感兴趣的朋友看看这个 探讨内存基础知识和如何选择内存条12 赞同 · 5 评论文章 什么是内存颗粒? 晚上回去拆开机箱,把内存掰下来,狠心大力掰外开壳。 红色圈圈的黑色块状的东西就是内存颗粒 内存颗