在Python中进行A / B拆分测试有哪些资源?

时间:2010-06-18 23:59:35

标签: python testing ab-testing

Rails有几个A / B拆分测试模块/插件 http://github.com/paulmars/seven_minute_abs
http://www.bingocardcreator.com/abingo
http://vanity.labnotes.org/

Python有什么类似的东西吗?

3 个答案:

答案 0 :(得分:1)

到目前为止只有版本0.1.2,但Swab看起来很有希望。测试两种尺寸的表单按钮的示例:

from swab import Swab
s = Swab('/tmp/.swab-test-data')
s.addexperiment('button-size', ['default', 'larger'], 'order-completed')

答案 1 :(得分:1)

我想我参加派对有点晚了 - 但是如果你原谅这个无耻的插件,请查看我自己的A / B框架Dabble。它适用于使用基于类的视图的Web框架,支持文件系统或mongodb存储,并为您生成结果。

答案 2 :(得分:1)

您可以查看SimpleAB库。这是一个非常简单但灵活的工具,可以在A / B测试中组织您的内容。目前,SimpleAB有几种创建测试类的方法:

  • SimpleAB 测试。 AB Test的这种实现提供了将备选方法实现为具有名称A,B,...,Z的方法的方法。
>>> import simpleab
>>> class MyTest(simpleab.SimpleAB):
...     name = 'MyTest'
...     def A(self): return 'Side A'
...     def B(self): return 'Side B'
...     def C(self): return 'Side C'
...
>>> myab = MyTest()
>>> myab.test()
'Side A'
>>> myab.current_side
'A'
>>> myab.test(force_side='C')
'Side C'
  • ConfigurableAB 测试。 AB Test的这种实现提供了配置测试名称,边和选择器实例的方法。如果未指定选择器,则将使用随机选择。
>>> improt simpleab
>>> import random
>>> myab = simpleab.ConfigurableAB(name='MyTest',
...             sides={'A': 'Side A', 'B': 'Side B'},
...             selector=lambda: random.choice(['A','B']))
>>> myab
<ConfigurableAB [name: MyTest, sides: ['A', 'B']]>
>>> myab.test()
'Side A'
>>> myab.current_side
'A'

实际上lib还没有对数据存储和分析设施的坚实支持,但它允许快速实现这些东西。我认为很快就会完成:)