问题 Django A / B拆分测试包(我发现的没有详细记录并且是最新的。)


进行A / B(分割)测试主要有两种思路:

  • 基于Javascript的解决方案,例如Optimizely,Google Analytics内容实验。
  • 服务器端解决方案,如Django-AB,Splango和django-lean。 (另外,自己写。)

我的理解是,基于Javascript的解决方案对于“哪个颜色按钮转换得更好”非常引人注目,但对于切换整个页面布局来说并不是那么好,而且对于尝试大型功能更改(例如漏斗中的页面序列)完全不可行。

这引导我走向服务器端解决方案。我并不为自己的编码而疯狂,只有在没有其他选择时才会这样做。我试图通过改进我的网站的核心功能来增加价值,而不是通过创建更好的拆分测试框架。

我发现用于拆分测试的Django应用程序是各种混合的未维护,未记录,记录不正确,与Django 1.5不兼容。这让我感到惊讶,因为Django和Python社区似乎非常关注良好的文档。我也很惊讶我所尝试过的测试框架都没有与Django 1.5兼容 - 测试不是像Django / Python世界中的核心部分那样是在Rails中吗?

这是我发现的:

  • Splango https://github.com/shimon/Splango  - 与Django 1.5不兼容(尽管我发现大多数兼容性错误都很容易修复)。自2010年10月以来,除了2012年8月的修复声明确保模板包含在安装中之外,大部分未被触及。由于在通过PyPI安装Splango时,模板不会包含在安装中,因此修复程序无效或未提交给PyPI。文档在很大程度上是准确的,但并不完全涵盖如何设置测试和获取报告。它告诉您如何配置模板以收集数据,但管理界面中似乎需要执行完全未记录的其他步骤,而且我不确定我是否已正确完成它们。

  • Django的瘦肉。原来在 https://bitbucket.org/akoha/django-lean 自2010年7月以来一直没有更新。有一个明显“祝福”的分叉 https://github.com/anandhenry2002/django-lean 自2012年5月以来,从原始版本复制后未发生变化。原始文档的不正确之处在于无法实现示例。 (虽然你可能会像我一样混淆你的方式。)新版本的文档存在格式问题,使得难以在github上阅读。 (这似乎是因为它是来自旧项目的未更改的文档,并且BitBucket语法在Github上不起作用。)django-lean Google Group自2012年7月以来没有收到任何消息。

  • Django的迷你瘦 https://github.com/DanAncona/django-mini-lean - 最近于2013年2月更新,但未记录。

  • 精益 - https://bitbucket.org/brianjinwright/leaner  - 最后更新于2012年7月,没有文档。

  • Django-AB - 最后更新于2009年5月。不是包,也不能通过PIP或PyPI安装。将结帐放入我的django app文件夹(并将文件夹重命名为ab)并按照安装说明进行操作后,加载模板加载器时出错,我没有进一步跟踪。

到目前为止,Splango似乎是赢家,因为我实际上已经能够或多或少地工作(通过手动安装模板,然后编辑它们来修复Django 1.5不兼容性)。

任何人都可以指出我错过的任何事情吗?


1277
2018-04-24 00:13


起源

我最终可以知道最终使用哪个框架?你在答案中使用了那个吗?我正在寻找一个简单的模块,我可以随机分配用户进行控制和实验,然后确保隐藏基于...的任何指导功能? - Null-Hypothesis


答案:


你错过了这个应用程序: https://github.com/mixcloud/django-experiments  + https://github.com/disqus/gargoyle/


9
2018-04-24 07:50



注意: gargoyle 没有太多更新。我会使用仍在积极开发中的华夫饼干 waffle.readthedocs.org - chhantyal
gargoyle 在2015年12月被弃用,因为它不再由Disqus维护;然而,另一组正在维持一个分叉: github.com/YPlan/gargoyle - Mike Covington


然后是华夫饼: http://waffle.readthedocs.org/ 

它简单,更新,维护,但功能不丰富,没有集成任何分析/报告功能。但话说回来,谷歌分析或mixpanel类型的服务对此更好。


4
2017-12-04 22:45





我首先看了Django-AB,这几乎是我想要的,但我也无法让它工作。在看了django实验并决定我不想乱用redis之后,我决定自己动手。我试着很好地打包它,让它易于初学者使用。这是超级基础。

https://github.com/crobertsbmw/RobertsAB


2
2017-12-19 08:43





您可以使用Google Analytics实验更换完全不同的页面布局(他们的默认实验设置会将用户重定向到您拥有的每个版本的不同网址),但一般来说,如果您测试较小的内容,则更容易理解为什么某些内容会更成功彼此。

您使用Google Analytics测试不同的渠道和用户流量是正确的,这需要一个 批量 手动设置;虽然从理论上讲,您可以通过交换不同的链接并使用UTM广告系列跟踪您的用户来实现这一目标。

对于同一页面中较小的A / B测试,我最终使用Google Analytics实验并编写了一个自定义Django CMS插件,用于向模板添加一些变体选项,该模板查询Google AnalyticsAPI并使用Javascript显示正确的变体。


1
2017-07-14 19:31



如果你不介意分享,那么看看你最后一部分的代码会很有趣 - Felix Böhme