我正在一个项目中构建一个网站的模拟器。我正在测试功能切换如何提供一些缺点,这些缺点可以帮助团队比现在更频繁地发布。
我喜欢模拟的一件事是Canary版本是如何工作的。比方说,我刚刚完成了一个新功能的构建,我需要在生产中进行测试。Canary的发布只是为了将这一功能推广给少数用户。
你是如何用代码模拟的?我正在用角度2和字体制作贴花。已经为我可以使用的功能创建了配置文件。
比如说,你如何从访问该网站的随机人群中挑选5%来测试特定功能?这一切都是通过服务器配置完成的吗(在不同的服务器上运行另一个构建)。
如果有人能做一个代码示例,说明我如何在应用程序启动时模拟它,我会很高兴。
我自己做了这个代码:
var switchKey: string = localStorage.getItem('featureSwitch');
if (this.featureSwitch != null) {
if (switchKey == "11") {
this.featureSwitch = 1;
localStorage.setItem('featureSwitch', this.featureSwitch.toString());
}
}
else {
if (switchKey != null) {
if (switchKey == "11") {
this.featureSwitch = 1;
localStorage.setItem('featureSwitch', this.featureSwitch.toString());
}
else {
this.featureSwitch = Number(switchKey) + 1;
localStorage.setItem('featureSwitch', this.featureSwitch.toString());
}
}
else {
this.featureSwitch = 1;
localStorage.setItem('featureSwitch', this.featureSwitch.toString());
}
}
这可能是一个糟糕的例子,因为我认为它在(互联网上的)实时网站上不起作用,这只在本地主机服务器上进行了测试。基本上,我将1-11中的一个数字保存在本地存储中,在那里我可以显示基于一个或多个数字的功能。
有人知道我怎么能轻松做到这一点吗?
基本上,我将1-11中的一个数字保存在本地存储中,在那里我可以显示基于一个或多个数字的功能。
您应该根据用户(而不是浏览器会话)进行canary发布。否则,用户在切换浏览器/设备/位置时会感到惊讶。您将不知道哪些用户正在参与测试(如果用户使用两个设备,则用户可以也不能参与测试)。
这需要服务器端的支持,交换机属于服务器。