A / B тестирование на App Engine? - PullRequest
3 голосов
/ 14 апреля 2010

Какой была бы самая простая реализация системы A / B-тестирования, работающей на движке приложения?

Я особенно заинтересован в влиянии на производительность использования Datastore для бэкэнда (с длительным временем запроса) и проектирования базы данных.

Ответы [ 5 ]

5 голосов
/ 15 сентября 2011

Взгляните на Gae / Bingo , это фреймворк для A / B сплит-тестирования для App Engine, вдохновленный A / Bingo .

Подробнее здесь .

4 голосов
/ 11 декабря 2010

Вы можете развернуть две версии своего приложения:

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

А затем создайте третью версию, в которой просто выбирается, будет ли пользователь прокси-сервер использовать A.latest.mysite.appspot.com или B.latest.mysite.appspot.com.

2 голосов
/ 29 февраля 2012

Теперь он обычно доступен в SDK 1.6.3 в качестве функции разделения трафика: http://code.google.com/appengine/docs/adminconsole/trafficsplitting.html

1 голос
/ 14 апреля 2010

Если вы хотите протестировать разные версии своего приложения, я бы предложил использовать немного промежуточного программного обеспечения WSGI. Создайте что-то, что перенаправит x% пользователей в одно приложение WSGI, а остальное - в другое, ограждаемое любыми подходящими средствами - ID пользователя, IP-адрес и т. Это должно быть довольно просто реализовать, и вы можете положить на него все, что захотите.

0 голосов
/ 14 апреля 2010

A / B-тестирование требует отображения страницы A для некоторых пользователей, а страницы B - для некоторых других пользователей.

App Engine не имеет к этому никакого отношения. App Engine - это способ развертывать приложений, а не направлять пользователя по страницам.

Это функция веб-фреймворка, которую вы используете для обслуживания той или иной страницы на основе пользовательских файлов cookie / сеанса.

По-простому это можно сделать так:

  • Получить cookie пользователя
  • Найти в хранилище данных
  • Найдено? Используйте тот же набор страниц (A или B), что и в прошлый раз
  • Не найден? Выберите A или B случайным образом, сохраните выбор в хранилище данных вместе с cookie
  • (Может быть) Поместите выбор в сессию для быстрого доступа

Затем в определенных контроллерах / представлениях, основанных на выбранных A или B, обслуживайте / перенаправляйте пользователя на страницу A или страницу B. Запишите результат (независимо от того, какой у вас результат - продажа, регистрация, ...) в хранилище данных.

Это можно сделать для любого веб-фреймворка. Вы даже не сказали, какой из них вы используете;)

...