首页 > 数据库 >记录:k6性能脚本连接Redis取值

记录:k6性能脚本连接Redis取值

时间:2023-12-02 16:35:28浏览次数:36  
标签:脚本 set get Redis redis k6 取值 mykey

  为了捡起以前学过的一个性能框架k6,拿现在公司的项目来上手,打算业务测试之余拿系统的接口跑跑性能。

  本周的问题主要集中在k6脚本中引入redis的问题。因为项目系统的登录页面是涉及到验证码图片的,后端写了逻辑会把验证码的值写入在redis,所以登录的时候绕不开这个。再加上对js的生疏,所以本周一直在处理这个问题,记录一下。

  验证码接口:'captcha-web/captcha/code/get',传参是个时间戳{'timestamp': int(round(time.time() * 1000))}。

  一开始搜了下,在k6脚本中引入了ioredis,这是一个nodejs连接redis的方式,但是k6框架是不允许这么调用的。但总算也还是用nodejs的方式连接set,get成功了。

  针对k6脚本,查看了官方的granafa/k6社区,使用的是xk6-redis

  问题:连上了,但是一直get不到值,可以set,不能get

   下载redis客户端,进去看了,确实是生成了

  

   但就是一直client.get(),get不到具体的值。

  解决:

  https://k6.io/docs/javascript-api/k6-experimental/redis/client/client-get

  忽略了这个get方法的返回值是个Promise体,陌生...

  get后我console.log了,然后打印是{},打印类型是个object,然后就一直搁那转来转去,以为要转化才能打印出来

   针对这个promise的类型,k6脚本需要指定的写法才能去获取使用,如图的example写法就能拿到了。被自己蠢到...

  

   

exportdefaultasyncfunction(){ await redisClient.set('mykey','myvalue',0)   const exists =await redisClient.exists('mykey'); if(exists ===false){ thrownewError('mykey should exist'); }   const value =await redisClient.get('mykey'); console.log(`set key 'mykey' to value: ${value}`);

标签:脚本,set,get,Redis,redis,k6,取值,mykey
From: https://www.cnblogs.com/kingxyt06/p/17871786.html

相关文章

  • redis锁
    publicclassRedisTag{/****@paramtagName*@paramtype1、开始2、结束*@paramredisTemplate*@return*/publicstaticbooleantag(StringtagName,Stringtype,RedisTemplate<String,String>redisTemplate){......
  • redis限流
    1、基于Redis的数据结构zset用的redis的zset来计数,score字段寸时间戳,每次请求增加一条数据,并按score移除超时的数据。最后在给整个key1加个过期时间2、基于Redis的令牌桶算法      ......
  • linux中redis的安装和设置开启自动启动
    一、安装redis第一步:下载redis安装包wgethttp://download.redis.io/releases/redis-4.0.6.tar.gz复制代码[root@iZwz991stxdwj560bfmadtZlocal]#wgethttp://download.redis.io/releases/redis-4.0.6.tar.gz第二步:解压压缩包tar-zxvfredis-4.0.6.tar.gz[root@iZwz991stxd......
  • .net core Razor Page TempData不工作,RedirectToPage后无法获取值怎么办?
    问题:.netcore旧项目更新到.netcore8.0后,发现之前的错误反馈信息显示不出来了,经过反复搜索,询问人工智能无果。之前怀疑/测试过:1.新版浏览器chrome访问https://localhost是否限制了Cookie2.浏览器是否受欧盟Cookie法规的要求进行了限制。3.写法错误RazorpageTempData......
  • Redis为什么是单线程及高并发的原因
    Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快2.redis是单线程的,省去了很多上下文切换线程的时间3.redis使用多路复用技术,可以外理并发的连接。非阻塞I0内部实现采用epol,采用了epol+自己实现的简单的事件框架。epol中的读、写、关闭、连接都转化成了事件,然后......
  • 在redis中,如何在创建key的同时,设置key的过期时间
    1、通过下面的创建key,同时设置过期时间SETkeyvalueEXseconds 示例:setteskey01123ex60  设置key的过期时间是60s,这样在创建的时候,就开始倒计时了。 通过工具看,TTL,会定期的刷新,到0之后,这个key就会被删除了。 60s后,key不存在  如果一个key的TTL......
  • 安装redis_exporter 以及配置prometheus
    安装:1、下载redis_exporterwgethttps://github.com/oliver006/redis_exporter/releases/download/v1.29.0/redis_exporter-v1.29.0.linux-amd64.tar.gz2、解压/usr/local目录下,并重命名#tar-zxvfredis_exporter-v1.29.0.linux-amd64.tar.gz-C/usr/local/#cd/usr/local/#......
  • Docker 安装 Redis 容器 (完整详细版)
    1、获取Redis镜像Docker如果想安装软件,必须先到Docker镜像仓库下载镜像。Docker镜像仓库2、下载Redis镜像命令描述dockerpullredis下载最新版Redis镜像(其实此命令就等同于:dockerpullredis:latest)dockerpullredis:xxx下载指定版本的Redis......
  • Redis事务
    是什么可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序的串行化执行而不会被其他命令插入,不许加塞!能干嘛在一个队列中,一次性、顺序性、排他性的执行一系列命令Redis事务和数据库事务的区别单独的隔离操作Redis的事务仅仅是保证事务里的......
  • centos上安装redis、redis客户端操作、redis使用场景、通用命令
    centos上安装redis#win上装redis#上线--》centos装了--》详细研究#docker装---》配置--》持久化#官网看看-redis源码-----》自己编译-redisstack----》编译过后的可执行文件-6.x版本#咱们刚刚下了几个软件-redis-6.2.14-reids......