Вы можете посмотреть SimpleAB библиотеку.Это довольно простой, но гибкий инструмент для организации вашего контента в A / B тесте.В настоящее время SimpleAB имеет несколько способов создания тестового класса:
- SimpleAB test.Эта реализация 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 test.Эта реализация 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'
На самом деле библиотека пока не имеет надежной поддержки для хранения данных и аналитических средств, но позволяет быстро реализовать этот материал.Что думаю скоро будет сделано :)