Jmeter中间件处理-缓存
前言
消息队列和缓存是目前主流的中间件,我们在日常测试过程中,无论是接口还是压力测试,都会遇到需要处理这些中间件数据的情况。本文以Redis对缓存做一个简单的介绍,并基于Jmeter实现缓存数据处理。
缓存
Web系统通常使用数据库来存储数据,但数据库存取涉及到磁盘读写,磁盘IO读写速度明显慢于内存读写速度,当并发量很大的时候,很容易成为系统瓶颈。为了提高数据的存取速度,避免系统瓶颈,越来越多的Web系统引入了缓存数据库。目前主流的缓存数据库有Redis和MongoDB,Jmeter通过扩展插件支持这两种内存数据库的数据库读取。本文以Redis为例,介绍如何使用Jmeter读取和使用Redis数据。
Redis服务和客户端安装
1. 官网下载Redis 安装文件
https://github.com/microsoftarchive/redis/releases
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功能非常强大,尤其是对多种中间件的支持,小伙伴们赶紧用起来吧,预知Jmeter如何处理消息队列,请听下回分解。
作 者:Testfan Kitty
出 处:微信公众号:自动化软件测试平台
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接
Jmeter中间件处理-缓存的更多相关文章
- day20 FORM补充(随时更新),F/Q操作,model之多对多,django中间件,缓存,信号
python-day20 1.FROM生成select标签的数据应该来源于数据库. 2.model 操作 F/Q (组合查询) 3.model 多对多操作. 4.中间件 :在请求到达url前先会经过 ...
- Django之中间件&信号&缓存&form上传
中间件 1.中间件是什么? 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用, ...
- 【python】-- Django 中间件、缓存、信号
Django 中间件.缓存.信号 一. Django 中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的 ...
- Cache中间件和缓存降级
Cache中间件和缓存降级 1.前言 surging受到不少.net同学的青睐,也提了不少问题,提的最多的是什么时候集成API 网关,在这里回答大家最近已经开始着手研发,应该在1,2个月内会有个初版A ...
- Django之中间件、缓存以及信号
Django之中间件 中间件执行流程 我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下: 也就是说,每一个请求都是先通 ...
- Day20 Django之Model多对多、中间件、缓存、信号和分页
一.Form补充 class IndexForm(forms.Form): # c = [ # (1, 'CEO'), # (2, 'CTO') # ] # 静态字段,属于IndexForm类,即使数 ...
- python运维开发(二十)----models操作、中间件、缓存、信号、分页
内容目录 select Form标签数据库操作 models操作F/Q models多对多表操作 Django中间件 缓存 信号 分页 select Form标签补充 在上一节中我们可以知道Form标 ...
- 基于.NET CORE微服务框架 -谈谈Cache中间件和缓存降级
1.前言 surging受到不少.net同学的青睐,也提了不少问题,提的最多的是什么时候集成API 网关,在这里回答大家最近已经开始着手研发,应该在1,2个月内会有个初版API网关,其它像Token身 ...
- Python之路-(Django(csrf,中间件,缓存,信号,Model操作,Form操作))
csrf 中间件 缓存 信号 Model操作 Form操作 csrf: 用 django 有多久,我跟 csrf 这个概念打交道就有久了. 每次初始化一个项目时都能看到 django.middlewa ...
随机推荐
- 《精通并发与Netty》学习笔记(02 - 服务端程序编写)
上节我们介绍了开发netty项目所必需的开发环境及工具的使用,这节我们来写第一个netty项目 开发步骤 第一步:打开https://search.maven.org 找到netty依赖库 第二步:打 ...
- 静态web页面与动态web页面的区别
一.静态web页面 在静态web程序中,客户端使用web浏览器经过网络连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务区我现在需要得到哪个页面,所有的请求交给web服务器,之后 ...
- Attention is all you need 详细解读
自从Attention机制在提出之后,加入Attention的Seq2Seq模型在各个任务上都有了提升,所以现在的seq2seq模型指的都是结合rnn和attention的模型.传统的基于RNN的Se ...
- 【转】C# DataTable 导出 Excel 进阶 多行表头、合并单元格、中文文件名乱码
本文原创地址:http://blog.csdn.net/ranbolwb/article/details/8083983 ,转载请保留本行. 本例子是上一篇 DataTable 导出 Excel 的进 ...
- Java学习笔记-网络编程
Java提供了网络编程,并且在实际中有着大量运用 网络编程 网络编程概述 网络模型 OSI参考模型 TCP/IP参考模型 网络通讯要素 IP地址 端口号 传输协议 网络参考模型 网络通讯要素 IP地址 ...
- prometheus 监控 jar应用服务 + 修改监听IP和端口
1.修改服务的启动脚本 [root@do1cloud01 init.d]# vim learn-school nohup ${JAVA_HOME}/bin/java -javaagent:/usr/l ...
- 页面元素定位-----android真机
一.移动终端开发者选项启用USB调试模式 二.USB线连接移动终端,CTRL+R启动DOS窗口,输入:adb devices,出现以下信息,说明连接成功 三.启动appium,配置appium相关信息 ...
- Mac下安装SecureCRT客户端并激活
1. 先下载SecureCRT和破解文件 默认下载到了当前用户的”下载”目录中 2. 在”Finder”中 打开 “scrt-7.3.0-657.osx_x64.dmg” 并将 SecureCRT复制 ...
- Plsql配置后,sql语句可以简写 快速使用
in=INSERT up=UPDATE se=SELECT fr=FROM wh=WHERE or=ORDER BY de=DELETE df=DELETE FROM sf=SELECT * FROM ...
- Linux系列(1):入门之基本命令详解
Linux常用命令 声明: 作者使用的Linux是CentOS7版本. 本节主要讲解内容: 1.ls.date.bc.cal等指令的详细用法 2.介绍常用快捷键 3.了解磁盘分区以及挂载等概念 在Li ...