2010-04-14 3 views
2

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

Я особенно заинтересован в производительности, связанной с использованием Datastore для back-end (с запросом времени looong) и дизайном базы данных.

+0

Чем больше я читаю ваш вопрос, тем меньше я понимаю. Как A/B относится к хранилищу данных? o_O Не могли бы вы показать нам пример теста, который вы бы сделали? –

ответ

1

Предполагая, что вы хотите протестировать разные версии вашего приложения, я бы предложил использовать простой бит связующего ПО WSGI. Создайте что-то, что направляет x% пользователей на одно приложение WSGI, а остальное - на другое, с учетом любых требований - идентификатора пользователя, IP-адреса и т. Д. Это должно быть довольно простым для реализации, и вы можете собрать все, что захотите, поверх него.

+0

Удовлетворение, но слишком сложное. Прочитайте, насколько легко A/B-тестирование должно быть: http://www.bingocardcreator.com/abingo –

+0

Возможно, что-то подобное возможно и в Python, и в рубине. Я пошел на более общий (хотя и более высокий накладной) подход.:) –

-1

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

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

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

В простой форме это может быть сделано, как это:

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

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

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

4

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

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

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

5

Посмотрите на Gae/Bingo, это рамочная система A/B для App Engine, основанная на A/Bingo.

Дополнительная информация here.

+1

Автор GAE/Bingo здесь -> мы потратили особенно долгое время на то, чтобы данные сохранялись в бэкэнд, не влияя на время pageload (сохраняющиеся данные через очереди задач в фоновом режиме и т. Д.). Проверьте ссылки systempuntoout для получения дополнительной информации. – kamens

+0

@kamens хорошая работа там :) – systempuntoout

+1

спасибо! Надеюсь, поможет – kamens

 Смежные вопросы

  • Нет связанных вопросов^_^