测试平台系列(81)|测试平台系列(81) 编写在线执行Redis功能
大家好~我是回顾米洛
!
我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程
,希望大家多多支持。
欢迎关注我的公众号测试开发坑货
,获取最新文章教程!
上一节我们
牛刀小试
,编写了redisManager,并且成功执行了redis命令。那这一节,就让我们来折腾下在线执行Redis命令。
由于某些特定的原因,在使用aredis的时候有了一些不好的体验,主要是以下几个方面, 所以我打算弃坑了。
- get和set操作没有支持中文,非常难受
- 对于报错信息不是那么友好,因为我这边出现了一个连接出错的问题,发现对方的error是ConnectionError,里面毫无内容
- 之前也说了,迁移成本巨低,所以我们可以完美切回用户最多的同步库(如果踩坑也有人一起想办法)
pip3 install redis redis-py-cluster
改写Manager类
其实要改变的并不多,看下git的改动就知道了:
- 修改引入路径
文章图片
- 修复之前的bug
文章图片
- 改写cluster
文章图片
完善在线执行命令的方法
文章图片
这样我们的后端接口就编写完毕了,因为我们想做的是类似redis-cli的功能。
- 寻找前端组件
我们需要一个web版本的终端,所以我在github寻找了很久,找到了这样一款质量还不错的:
文章图片
- 最终效果
文章图片
还是比较丑,左侧是现有的redis连接配置,右侧是类似redis-cli的客户端页面。
在右侧执行语句以后,就会调用我们刚才编写的
redis在线执行接口
。凑合能用就行。给大家看看使用gif:
文章图片
目前只支持基础的操作,包括常见的:
get
set
hget
hset
hgetall
等等自动更新Redis
每当配置有变更的时候,我们都需要
变更RedisManager中的数据
,所以我们之前为之编写了Refresh方法。我们修改update/delete方法:
文章图片
这里的background_tasks是来自fastapi的后台任务,如果大家了解go的话,这里就等于:
func test() {
// 业务逻辑
result := xxx
go RedisManager.delete()
return result
}
其实就是一个后台任务,咱们的主体方法可以直接return了。
文章图片
【测试平台系列(81)|测试平台系列(81) 编写在线执行Redis功能】今天的内容就到这了,下期我们解决APScheduler
重复执行
的问题。推荐阅读
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 【欢喜是你·三宅系列①】⑶
- 你不可不知的真相系列之科学
- 人脸识别|【人脸识别系列】| 实现自动化妆
- 女生该不该用小号测试男朋友()
- BNC公链|BNC公链 | Eth2.0测试网Topaz已质押超100万枚ETH
- 2018-06-13金句系列7(金句结构-改编古现代诗词)
- Unity和Android通信系列文章2——扩展UnityPlayerActivity
- 乡野村趣系列之烧仙草
- Java内存泄漏分析系列之二(jstack生成的Thread|Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析)