缓存测试分享篇:如何利用测试环境进行灰度测试缓存迁移solo
此文已由作者王婷英授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
缓存,看到这两个字,第一反应,最近怎么又要弄缓存的改造啊,这个测试好复杂,一不不留心就踩一个线上bug。实在头疼。一般对于这方面的测试,都不会掉以轻心。但还是会踩到雷。那么怎么做才可以又快又好完成这个任务呢?相信每个QA都会有自己的测试应对方案,来达到高质量的上线。
接下来进行分享下社区这边测试solo缓存迁移的测试方案,有不周到的地方大家多提建议,有更好的方案,也可以分享下,让我们能更快更好的应对这方面的测试工作。本次社区这边迁移solo的工程有comment、comment-compose、community-compose、contact-compose等核心工程。
案例一:contact-compose的solo迁移(改动不大,代码改动整体比较清晰)
图一:专辑的改动
上面这两张图都是对contact-compose工程里涉及到专辑的内容进行NKV变更为solo,大家可以看到这个的代码的改动基本是一对一的改动,改动的范围基本都知道。那么接下来我们需要怎么测试这个需求。
【测试流程】
第一步、我们看了开发开发代码改动不是很大,然后就可以自己按照开发修改的地方列定下回归的范围
第二步、梳理下这个工程哪些业务是用到了缓存。
第三步、可以再找开发对一下范围
第四步、就双方进行评估下回归范围,就可以解决掉了。
通过上面的步骤,我们不仅可以做到心中有数,还可以起到监督开发是否有遗漏的地方没有修改。
上面这个是NKV的缓存迁移为solo的缓存,但是我们测试中还存在NCR的缓存,那么接下来聊一下NCR缓存的迁移。
案例二:community-compose的solo迁移(改动多,复杂性高)
图三:代码简单的统计修改数
当我看到这个改动,瞬间人变得紧致起来了,零碎的看开发改的代码,看了两天,当时抱着这个肯定会出线上bug的心情在忐忑的测试。
图四:community-compose工程对应的solo业务key有18个
这个回归起来如果没有一周肯定是不行了,当时心里这么一想,压力很大,怎么办还有好多任务,这个也是卡在4月底上线。有点想加班加死的想法。于是,我先把代码都部署上,把开关都关闭的时候,花了两个小时验证了下社区的核心功能没有什么问题。然后我再把这18个Key全部都打开了,回归了下正常的情况没发现异常后,我开始灰度了。在我心灰灰的时候,就在想,这么高风险的任务,怎样才能更好的去避免线上不出问题?突然一个开发过来和我说,单测过不了了,怎么办?
此时很感谢这位开发,让我想到了可以不用靠一己之力来处理了。借助灰度方案来协助这个高危需求。可能有人以为我是准备拿到beta环境进行灰度,NO,NO。预估了下再近一周内community-compose不会有上线,及时有上线也都是走hotfix分支,于是我把代码合到了dev分支,在stable_dev进行灰度。
采用用stable_dev进行灰度原因如下:
1、stable_dev环境的调用方是非常的多
2、stable_dev环境是单测执行环境
基于上面这两点,stable_dev可以模拟多并发下写缓存和读缓存的操作。可以不用自己担心,只要关注下群里对应的环境反馈,保证工程能正常的运行。同时每天定时关注下stable_dev对应的solo相关的日志即可。
总结:
1、对于部分迁移solo缓存改动不大的工程,我们可以按照常规流程去测试
2、对于复杂性高、改动大的工程进行solo迁移,我们可以用类比的方式利用有限的资源去协助测试(如用stable_dev环境进行灰度)
网易云免费体验馆,0成本体验20+款云产品!
更多网易技术、产品、运营经验分享请点击。
相关文章:
【推荐】 Impala源码之资源管理与资源隔离
缓存测试分享篇:如何利用测试环境进行灰度测试缓存迁移solo的更多相关文章
- (转)深入探讨在集群环境中使用 EhCache 缓存系统
简介: EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider.本文充分的介绍了 EhCache 缓存系统对集群环境的 ...
- 深入探讨在集群环境中使用 EhCache 缓存系统
EhCache 缓存系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider. 下图是 EhCache 在应用 ...
- 在集群环境中使用 EhCache 缓存系统|RMI 集群模式
RMI 是 Java 的一种远程方法调用技术,是一种点对点的基于 Java 对象的通讯方式.EhCache 从 1.2 版本开始就支持 RMI 方式的缓存集群.在集群环境中 EhCache 所有缓存对 ...
- 如何利用Pre.im分发iOS测试包
大众创新万众创业,在移动互联网的风口,移动APP开发与测试发展方兴未艾,受到了越来越多的重视.相较 iOS,Android 的开发环境更加开放.Android 开发者要测试应用时,只需发个 APK 安 ...
- Google测试分享-测试经理
首先大家可以思考下,google的测试经理角色必须具备什么样的能力.据不完全统计,google的测试经理,超过一半之前都做过TE的角色(大家可以想想为啥):对于与被测产品相关的任何使用问题,测试经理都 ...
- 从一到二:利用mnist训练集生成的caffemodel对mnist测试集与自己手写的数字进行测试
通过从零到一的教程,我们已经得到了通过mnist训练集生成的caffemodel,主要包含下面四个文件: 接下来就可以利用模型进行测试了.关于测试方法按照上篇教程还是选择bat文件,当然python. ...
- Shell编程-条件测试 | 基础篇
什么是Shell Shell是一个命令解释器,它会解释并执行命令行提示符下输入的命令.除此之外,Shell还有另一个功能,如果要执行多条命令,它可以将这组命令存放在一个文件中,然后可以像执行Linux ...
- openstack开发环境与代码测试
一.openstack单组件开发环境 1.Python虚拟环境搭建 主要参考文献: https://virtualenv.pypa.io/en/latest/virtualenv.html 说明:Py ...
- 转:google测试分享-测试经理
原文: http://blog.sina.com.cn/s/blog_6cf812be0102vode.html 前言:这个系列分享的内容大部分都是出自于<google是如何测试的>的书, ...
随机推荐
- CNN延拓至 复数域
- Tomcat学习笔记【1】--- WEB服务器、JavaEE、Tomcat背景、Tomcat版本
本文主要讲学习Tomcat需要知道的基础知识. 一 Web服务器 1.1 简介 Web服务器可以解析HTTP协议.当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面 ...
- [2017-11-21]Abp系列——T4应用:权限树定义
本系列目录:Abp介绍和经验分享-目录 今天介绍下,如何使用T4根据json文件自动生成权限定义. 先看成果 成果是: 要新增一个权限定义时,打开Json文件,找到目标节点,加个权限定义: 生成下Co ...
- Winfrom和控制台中static修饰方法的问题
在编写winform程序时,当写完方法名后,按Shift+Alt+F10(vs自动生成方法框架)后生成的方法是实例方法,而当手动为该方法添加static修饰符后,程序仍能正常运行. 而在控制台中,写完 ...
- Linux三种网络-vmware三种网络模式
Host-Only 桥接 NAT VMware虚拟机三种联网方法及原理 一.Brigde——桥接:默认使用VMnet0 1.原理: Bridge 桥"就是一个主机,这个机器拥有两块网卡,分别 ...
- jQuery蓝色修边tab标签切换
jQuery蓝色修边tab标签切换,jQuery,tab选项卡,标签切换,jQuery蓝色修边tab标签广告代码切换是一款非常简单实用tab选项卡切换效果,自己定义好相关的html标签即可,选项卡切换 ...
- web项目的实质
web项目的实质 web项目的实质其实也就是在用户发过来一个请求后,我们返回一个响应. 用户看到的页面就是我们响应中的响应体(里面是html代码). 所以,我们整个项目的所有操作都是围绕着怎么来写好这 ...
- 清除float浮动三种方式
Float的作用? w3c的官方解释: Content flows down the right side of a left-floated box and down the left side o ...
- dynamic 作为参数传入另一个程序集,获取值
dynamicOBJ.GetType().GetProperty("key").GetValue(dynamicOBJ, null)
- P1912 [NOI2009]诗人小G[决策单调性优化]
地址 n个数划分若干段,给定$L$,$p$,每段代价为$|sum_i-sum_j-1-L|^p$,求总代价最小. 正常的dp决策单调性优化题目.不知道为什么luogu给了个黑题难度.$f[i]$表示最 ...