【问题标题】:A/B testing on App Engine?App Engine 上的 A/B 测试?
【发布时间】:2011-02-07 17:44:44
【问题描述】:

在 App 引擎上运行的 A/B 测试系统的最简单实现是什么?

我特别热衷于将 Datastore 用于后端(查询时间过长)和数据库设计的性能影响。

【问题讨论】:

  • 我读你的问题越多,我理解的就越少。 A/B 与数据存储有什么关系? o_O 你能给我们看一个你要做的测试的例子吗?

标签: google-app-engine abtest


【解决方案1】:

看看Gae/Bingo,这是一个适用于 App Engine 的 A/B 拆分测试框架,其灵感来自 A/Bingo.

更多信息here

【讨论】:

  • 这里是 GAE/Bingo 的作者 --> 我们花了特别长时间确保数据在后端持久化而不影响页面加载时间(通过后台任务队列持久化数据等)。查看 systempuntoout 的链接了解更多信息。
【解决方案2】:

您可以部署两个版本的应用程序:

appcfg.py update -V "A" mysiteA/
appcfg.py update -V "B" mysiteB/

然后创建第三个版本,它简单地选择是将用户代理到 A.latest.mysite.appspot.com 还是 B.latest.mysite.appspot.com。

【讨论】:

    【解决方案3】:

    现在在 SDK 1.6.3 中作为流量拆分功能普遍可用: http://code.google.com/appengine/docs/adminconsole/trafficsplitting.html

    【讨论】:

      【解决方案4】:

      假设您想测试应用程序的不同版本,我建议您使用一些简单的 WSGI 中间件。构建一些东西,将 x% 的用户引导到一个 WSGI 应用程序,将其余的用户引导到另一个应用程序,并按照用户 ID、IP 地址等进行分片。这应该很容易实现,你可以在上面堆放任何你喜欢的东西。

      【讨论】:

      • 可行,但有点过于复杂。了解 A/B 测试应该多么简单:bingocardcreator.com/abingo
      • 类似的事情在 Python 和 ruby​​ 中当然是可能的。我打算采用更通用(尽管开销更高)的方法。 :)
      【解决方案5】:

      A/B 测试要求将页面 A 显示给某些用户,而将页面 B 显示给其他一些用户。

      App Engine 与此无关。 App Engine 是一种部署应用程序的方式,而不是直接引导用户浏览页面。

      这是您用来根据用户 cookie/会话提供一个或另一个页面的 Web 框架的功能。

      用一种简单的方式可以这样做:

      • 获取用户cookie
      • 在数据存储中找到它
      • 找到了吗?使用与上次相同的一组页面(A 或 B)
      • 没有找到?随机选择 A 或 B,将选择与 cookie 一起保存到数据存储中
      • (可能是)将选项放入会话中以便快速访问

      然后,在特定的控制器/视图中,根据选定的 A 或 B,将用户服务/重定向到页面 A 或页面 B。将结果(无论您的结果是什么——销售、注册等)记录到数据存储中。

      这可以用于任何 Web 框架。你甚至没有告诉你使用哪一个;)

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 2014-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-11
        • 2016-08-26
        • 1970-01-01
        相关资源
        最近更新 更多