Python中有哪些A/B分割测试的资源?
在Rails这个框架中,有好几个可以用来做A/B测试的模块或者插件。
你可以看看这些链接:
http://github.com/paulmars/seven_minute_abs
http://www.bingocardcreator.com/abingo
http://vanity.labnotes.org/
等等。
那Python有没有类似的东西呢?
3 个回答
1
你可以看看 SimpleAB 这个库。它是一个相对简单但灵活的工具,可以帮助你组织A/B测试的内容。目前,SimpleAB有几种创建测试类的方法:
- SimpleAB 测试。这种A/B测试的实现方式允许你把不同的选项作为方法来定义,方法名可以是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 测试。这种A/B测试的实现方式允许你配置测试的名称、选项和选择器实例。如果没有指定选择器,就会随机选择。
>>> 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'
其实这个库目前对数据存储和分析功能的支持还不够完善,但它能让你快速实现这些功能。我觉得这些改进很快就会到来 :)
1
我想我来得有点晚了——不过如果你们能原谅我自卖自夸一下,请看看我自己做的一个A/B测试框架,叫做Dabble。这个框架在使用类视图的网页框架中运行得很好,支持文件系统或mongodb存储,还能为你生成测试结果。
1
目前这个软件的版本还只有0.1.2,不过Swab看起来很有潜力。下面是一个测试两种大小的表单按钮的例子:
from swab import Swab
s = Swab('/tmp/.swab-test-data')
s.addexperiment('button-size', ['default', 'larger'], 'order-completed')