使用Jmeter读取和使用Redis数据

news/2025/1/31 7:12:33/

目录

前言

缓存

Redis服务和客户端安装

Jmeter使用Redis

总结:


前言

消息队列和缓存是目前主流的中间件,我们在日常测试过程中,无论是接口还是压力测试,都会遇到需要处理这些中间件数据的情况。本文以Redis对缓存做一个简单的介绍,并基于Jmeter实现缓存数据处理。

缓存

Web系统通常使用数据库来存储数据,但数据库存取涉及到磁盘读写,磁盘IO读写速度明显慢于内存读写速度,当并发量很大的时候,很容易成为系统瓶颈。为了提高数据的存取速度,避免系统瓶颈,越来越多的Web系统引入了缓存数据库。目前主流的缓存数据库有Redis和MongoDB,Jmeter通过扩展插件支持这两种内存数据库的数据库读取。本文以Redis为例,介绍如何使用Jmeter读取和使用Redis数据

   

Redis服务和客户端安装

1、官网下载Redis 安装文件

2、在Windows平台上双击redis-server.exe文件即可启动Redis服务,控制台出现如下所述提示,说明Redis-Server启用成功

3、下载安装Windows客户端,双击运行出现如下界面;通过客户端在Redis数据库中添加数据,本示例添加了一个List类型的数据,key=testList,值有a,b,c 三种

Redis是内存数据库,和Mysql这类关系型数据的表结构不同,Redis有如下6种数据结构:

  • String:Key-Value管理键值对。
  • Set:String 类型的无序集合,集合成员是唯一的,集合中不能出现重复的数据。
  • List:字符串列表,按照插入顺序排序。
  • Hash:Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
  • Sorted Set:有序集合和集合一样也是string类型元素的集合, 不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。

Jmeter使用Redis

打开JMeter Plugins Manager,下载Jmeter Redis Data Set插件

重启Jmeter以后,可以在配置元件中发现新增组件 jp@gc-Redis Data Set,Jmeter的Redis Data Set目前尚有一些限制,仅支持List和Set类型的数据;如果要处理其他类型的数据,可以通过Beanshell Sampler来编写代码读取Redis数据。

Redis Data Set可以实现读取Redis中的数据,并将数据存储为变量供后续使用,其中关键的配置有:

  • Redis Key:对应Redis数据库中的Key。
  • Variable Name:Redis数据库中取出数据后存储的变量,可以供Jmeter后续的脚本使用。
  • Delimiter:分隔符,默认是 , 。
  • Data Source Type: Redis数据类型,此处仅支持List和Set。
  • Recycle data on use: 当数据遍历完时是否重新开始循环。
  • Connection Configuration:Redis 服务器的配置信息,包括Redis服务器的IP,端口,超时时间,密码和数据库名。
  • Redis Pool Configuration:Redis的连接池配置。

本示例读取了本地Redis数据库的testList数据,并且取出数据作为百度搜索的关键词

点击运行,脚本能从Redis数据库中取出数据,并作为后续Http请求的输入参数

Jmeter功能非常强大,尤其是对多种中间件的支持,小伙伴们赶紧用起来吧。

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家评论区留言或私我领取哦。


http://www.ppmy.cn/news/365424.html

相关文章

js正则校验正负数字,且只保留一位小数,找到不匹配字符位置

正负数字校验,小数点后只保留一位有四种情况(正负数,0或非0开头) 1、正负数非0开头,小数后只能有一位小数 // 正数非0开头 let re /^(?!0)\d(.[0-9]{1})?$/; // ?!0代表匹配一次非0开头的,$代表结尾&…

Centos7 离线安装gcc gcc-

方法一:centos7 挂载本地iso yum源 cd /etc/yum.repos.d/ vim ios.repo [ios] nameios baseurlfile:///mnt/cdrom enable1 gpgcheck0 #镜像挂载本地 mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom/ yum clean all yum makecache yum -y install gcc g…

NYOJ-19

擅长排列的小明 时间限制: 1000 ms | 内存限制: 65535 KB 难度: 4 描述 小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数…

Nyoj 195

看了好久,楞没看懂题目什么意思!一顿抓狂! 题目的意思是从(0, 0)飞到(n, m)点处,最短距离是多少。其中有的是可以走方格的对角线(即是捷径),如果一个方格不能走对角线,则只能走方格…

MyEclipse逆向生成实体类和Hibernate映射文件

前言: 前些天做项目时设计完数据库后参考原项目使用的MyEclipse自带的生成工具——MyEclipse Persistence Tools,今天跟大家分享一下它的使用方法及我在使用中遇到的问题。 正题: 通过下面三个步骤就可以通过数据表逆向生成实体类和映射文件。 第一步…

设计模式第4讲——代理模式(Proxy)

目录 一、什么是代理模式 二、特点 三、应用场景 四、代理模式的实现 4.0 代码结构 4.1 静态代理 4.2 JDK动态代理 4.3 Cglib代理 五、总结 一、什么是代理模式 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直…

python办公自动化 使用openpyxl合并excel表格

果然,只有工作才能促使我学习。 1、需求介绍 就是要把九个字段名一样且每个表数据量是固定的表合并。 内部长这样: 表格都是从数据库里跑出来的,所以格式比较固定,每个表数据量固定就是,第一个表197行,第二…

Nyoj 229

我感觉这道题很好&#xff01; 利用背包思想来做&#xff0c;用二分来逼近并找出答案&#xff01; #include<iostream> #include<cstdio> #include<cstring> using namespace std;const int MAXN 110;int Ap[MAXN]; int Bp[MAXN]; int dp[MAXN];//dp[i]表示…