npm 包 petri-specs 使用教程

阅读时长 5 分钟读完

简介

petri-specs 是一个用于前端视图层实验的工具,可以快速的完成 A/B 测试、灰度测试、新功能验证等任务。petri-specs 提供了一套完整的 API,可以在前端实现一些类似后端控制实验的功能,比如分配用户到指定实验组、检查用户是否属于某个实验组等。

安装

安装 petri-specs,只需要通过 npm 安装即可:

使用

配置

petri-specs 需要一份配置文件告诉它要进行哪些实验,配置文件应该是一个 JSON 文件。下面是一个简单的例子:

-- -------------------- ---- -------
-
  ---------------- -
    ------------ ---
    --------------- --
  --
  ---------------------- -
    ------------ ---
    --------------- --
  -
-
展开代码

在这个例子中,有两个实验,名为 my-experimentmy-other-experimentmy-experiment 有 30% 的概率被分配到测试组,70% 的概率被分配到对照组;my-other-experiment 则是 50%/50% 的概率分配到测试组/对照组。

API

petri-specs 提供了丰富的 API,可以完成各种实验相关的功能。

petri.get(scope, experimentName, ...args)

petri.get() 方法可以获取当前用户在某个实验中的分组信息,其参数说明如下:

  • scope:实验的作用域,通常是一个字符串,表示该实验在哪个模块中使用;
  • experimentName:实验名称,和配置文件中的实验名一致;
  • ...args:可选参数,可以传入默认分组,如果用户未分配到实验组,将使用默认分组。

该方法返回值是实验组名称,如果用户未分配到实验组,则返回 null

以下是一个示例:

-- -------------------- ---- -------
------ ----- ---- --------------

----- -------------- - ----------------
----- --------- - ---------------------- --------------- ----------------
-- ---------- --- ------------ -
  ---------------- ---- -- -- --- ---- ---------
- ---- -
  ---------------- ---- -- -- --- ------- ---------
-
展开代码

在此示例中,如果用户分配到了 testGroup,则输出 The user is in the test group.,否则输出 The user is in the control group.

petri.isOn(scope, experimentName, ...args)

petri.isOn() 方法可以用于判断当前用户是否分配到某个实验分组,其参数和返回值都和 petri.get() 方法一致,这里不再赘述。

以下是一个示例:

在此示例中,如果用户分配到了 testGroup,则输出 The user is in the test group.,否则输出 The user is not in the test group.

petri.allOn(scope, experimentName)

petri.allOn() 方法可以用于检查当前用户是否同意参与某个实验,比如用户可以在网站的设置中选择是否参加所有实验。如果用户同意,petri.allOn() 返回 true,否则返回 false。该方法的参数如下:

  • scope:实验的作用域,通常是一个字符串,表示该实验在哪个模块中使用;
  • experimentName:实验名称,和配置文件中的实验名一致;

以下是一个示例:

在此示例中,如果用户同意参加实验,则输出 The user agrees to join the experiment.,否则输出 The user does not agree to join the experiment.

结语

petri-specs 提供了前端视图层实验的开发能力,使用 petri-specs,可以轻松地完成 A/B 测试、灰度测试、新功能验证等任务。petri-specs 的 API 简单易用,可以在很短的时间内上手并完成实验开发。

实际使用时,需要注意实验名称的唯一性以及实验分组的分配方式,这对于实验结果分析很有帮助。希望这篇文章对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f056c9b403f2923b035bed0

纠错
反馈

纠错反馈