边缘函数可以帮助您快速进行 A/B 分组测试部署,用于灰度发布或实验性的功能分流等场景。接下来将为您介绍如何通过控制基于 Cookie 提供的响应来设置 A/B 测试。
代码示例
实现效果:使用相同 URL 直接访问进行 A/B 测试
语言类型:
JavaScript
代码示例:
// 通过Cookie头判断用户分组,不同分组标签返回不同内容。 async function handleRequest(request) { const NAME = 'var'; const TEST_RESPONSE = new Response('A group'); // Response内容也可以替换成fetch请求的动态内容 const CONTROL_RESPONSE = new Response('B group'); // 用Cookie中携带的var字段判断属于哪个分组 const cookie = request.headers.get('cookie'); if (cookie && cookie.includes(`${NAME}=B group`)) { return CONTROL_RESPONSE; } else if (cookie && cookie.includes(`${NAME}=A group`)) { return TEST_RESPONSE; } else { // 如果没有Cookie,则选择一个 const group = Math.random() < 0.5 ? 'A group' : 'B group'; const response = group === 'B group' ? CONTROL_RESPONSE : TEST_RESPONSE; response.headers.append('Set-Cookie', `${NAME}=${group}; path=/`); return response; } } export default { fetch(request) { return handleRequest(request); } }
部署效果
在浏览器中访问边缘函数绑定的指定函数或您配置的特定路由地址,若浏览器中无Cookie,则随机为当前浏览器进行分组:
若赋予A组标签,则返回A组对应的响应内容。
若赋予B组标签,则返回B组对应的响应内容。
该文章对您有帮助吗?