npm 包 planout 使用教程

阅读时长 4 分钟读完

介绍

PlanOut 是一个 Facebook 开源的用于 A/B 测试、流量分配等场景下进行随机化实验的工具。PlanOut 允许你在 JavaScript 中写实验配置,并提供了一套通用的实验控制台,让你可以轻松地管理和监测实验。

npm 提供了 PlanOut 的 JavaScript 实现包 planout,该包支持 Node.js 和浏览器环境。

本文将介绍如何使用 planout 包来进行实验设计和配置。我们会从安装 planout 开始,逐步讲解如何定义实验、生成随机数、读取实验变量值等操作。

安装

你可以通过 npm 安装 planout

也可以通过 CDN 引入:

定义实验

首先,我们需要定义一个实验。一个典型的实验包含若干个参数,每个参数有一个默认值和若干种可能的取值。我们要在这些可能的取值之间进行随机分配。

以下是一个简单的实验定义示例:

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

上述代码定义了一个名为 my_experiment 的实验,包含两个参数:buttonColorbuttonText。其中 buttonColor 的默认值为红色(#ff0000),可能的取值为红绿蓝(#ff0000, #00ff00, #0000ff);buttonText 的默认值为 Click me,可能的取值为 Click me, Buy now, Learn more

随机分配

我们可以使用 PlanOut 提供的算法来进行随机分配。以下是一个随机分配示例:

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

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

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

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

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

在上述示例中,我们首先创建了一个 Experiment 对象,并传入了实验定义对象 myExperiment 和用户 ID。然后,我们使用 UniformChoice 算法对参数进行随机分配。

读取实验变量值

在实验运行过程中,我们需要读取实验变量的值。以下是一个读取实验变量值的示例:

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

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

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

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

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

- ----------------------------------------------------------- --------
----------------------------------------------------------------------------------
纠错
反馈