美文网首页
测试平台系列(81) 编写在线执行Redis功能

测试平台系列(81) 编写在线执行Redis功能

作者: 米洛丶 | 来源:发表于2021-11-27 18:47 被阅读0次

大家好~我是米洛

我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持。

回顾

上一节我们牛刀小试,编写了redisManager,并且成功执行了redis命令。

那这一节,就让我们来折腾下在线执行Redis命令。

由于某些特定的原因,在使用aredis的时候有了一些不好的体验,主要是以下几个方面, 所以我打算弃坑了。

  • get和set操作没有支持中文,非常难受
  • 对于报错信息不是那么友好,因为我这边出现了一个连接出错的问题,发现对方的error是ConnectionError,里面毫无内容
  • 之前也说了,迁移成本巨低,所以我们可以完美切回用户最多的同步库(如果踩坑也有人一起想办法)

安装redis和redis-py-cluster

pip3 install redis redis-py-cluster

改写Manager类

其实要改变的并不多,看下git的改动就知道了:

  • 修改引入路径
image
  • 修复之前的bug
之前的获取单实例从集群中拿数据了,大错特错了
  • 改写cluster
换个名字而已,从StrictCluster改为Cluster

完善在线执行命令的方法

做一个判断,如果是cluster则获取集群客户端,否则获取实例客户端

这样我们的后端接口就编写完毕了,因为我们想做的是类似redis-cli的功能。

  • 寻找前端组件

    我们需要一个web版本的终端,所以我在github寻找了很久,找到了这样一款质量还不错的:

到时候我们的页面上,就让用户输入这个了
  • 最终效果
最终显示效果

还是比较丑,左侧是现有的redis连接配置,右侧是类似redis-cli的客户端页面。

在右侧执行语句以后,就会调用我们刚才编写的redis在线执行接口

凑合能用就行。给大家看看使用gif:

image

目前只支持基础的操作,包括常见的:

get set hget hset hgetall等等

自动更新Redis

每当配置有变更的时候,我们都需要变更RedisManager中的数据,所以我们之前为之编写了Refresh方法。

我们修改update/delete方法:

删除client也编写了一个方法

这里的background_tasks是来自fastapi的后台任务,如果大家了解go的话,这里就等于:

func test() {
    // 业务逻辑
    result := xxx
    go RedisManager.delete()
    return result
}

其实就是一个后台任务,咱们的主体方法可以直接return了。

删除客户端的方法,如果是集群则pop集群字典

今天的内容就到这了,下期我们解决APScheduler重复执行的问题。

相关文章

  • 测试平台系列(81) 编写在线执行Redis功能

    大家好~我是米洛!我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持。 ...

  • 测试平台系列(79) 编写Redis配置功能(下)

    大家好~我是米洛!我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持。欢...

  • 测试平台系列(78) 编写Redis配置管理功能(上)

    大家好~我是米洛!我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持。欢...

  • 软测1

    1,流程测试需求分析编写测试用例测试执行测试结果分析缺陷修改测试编写测试报告 功能测试界面测试兼容性测试安装卸载测...

  • Redis学习笔记-Lua脚本

    前言 Redis在2.6版推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行。 在Lua脚本中可...

  • ubuntu redis安装和基本使用

    官网 Redis 官网[https://redis.io/]Redis 在线测试[http://try.redis...

  • 测试平台系列(29) 编写用例执行的方法

    回顾 上期编写了用例详情页,这期我们快刀斩乱麻,来编写用例执行功能。 编写执行用例的方法 由于之前我们已经编写过了...

  • 2018-11-12

    Redis学习笔记 Redis在在线测试 Redis官网 REmote DIctionary Server(Red...

  • 保龄球编程读后感

    测试驱动编程: 1.测试驱动编程:在编写功能之前先编写测试代码,然后只编写使测试通过的功能代码, 通过测试来驱...

  • 测试平台系列(24) 编写成员管理功能

    回顾 上一节我们编写了项目设置相关功能,还剩下2个tab没有编写,分别是: 用例列表和成员管理. 编写成员列表及部...

网友评论

      本文标题:测试平台系列(81) 编写在线执行Redis功能

      本文链接:https://www.haomeiwen.com/subject/xkdqxrtx.html