Подтвердить что ты не робот

Каков наилучший/самый чистый способ реализации тестирования A-B в asp.net mvc?

Каков наилучший и самый чистый способ реализации тестирования A-B в asp.net mvc? То есть, когда мы вносим новые изменения на веб-сайт asp.net mvc, мы хотим протестировать новый html/css/js с определенным поднабором посетителей (определенный в cookie, идентификатор входа и т.д.), А затем проанализировать некоторые показатели ( время отклика страницы, количество посещенных страниц, $$$ в продажах и т.д.), чтобы оценить уровень успеха изменений.

Я ищу чистый способ реализовать способ выбора вида (html/css/js и т.д.) для рендеринга с использованием asp.net mvc.

4b9b3361

Ответ 1

Отъезд FairlyCertain ( http://www.fairtutor.com/fairlycertain/, когда вы получаете шанс. Это библиотека .NET A/B, которую вы можете просто добавить в свой проект и начать писать тесты.

В отличие от Javascript-библиотек от Google и VisualWebsiteOptimizer, все происходит на сервере, поэтому вы не страдаете какой-либо производительностью, пользовательским опытом или проблемами SEO. Я использовал его в своих вещах некоторое время, и он работает очень хорошо.

Ответ 2

Существует структура тестирования A/B специально для ASP.NET MVC. Это программное обеспечение с открытым исходным кодом, которое я написал себе, когда, как и вы, не нашел бесплатный инструмент, который хорошо работает с ASP.NET MVC и не требует большой настройки.

Ответ 3

Эксперименты в Google Content? Это решение на основе Javascript, которое ничего не требует от вашего сервера.

  • Вы включаете Google Javascript на своей странице
  • script случайным образом заменяет элементы на вашей странице, как определено вашим тестом A/B
  • Сайт Google показывает вам хороший анализ результатов...

Ответ 4

Если вы используете механизм искрового просмотра, вы, вероятно, можете сделать это с изменением фильтра темы (http://sparkviewengine.com/documentation/viewlocations#Extendingfilepatternswithdescriptorfilters). Для каждого нового посетителя сайта определите, хотите ли вы, чтобы они увидели существующую или новую версию сайта и установили файл cookie. Подключите фильтр дескриптора, который ищет наличие файла cookie и изменит местоположение представления, чтобы посмотреть в папке, содержащей измененные виды. Если существует альтернативный вид, механизм Spark автоматически отобразит его вместо "обычного" представления, в противном случае он отобразит обычный вид.

Если вы используете обычный WFVE, самым простым способом управления этим будет определение папки в разделе "Виды", в которых живут ваши альтернативы вида. Если вы хотите предоставить альтернативный вид, вы поместите его в место, которое соответствует его положению в обычной папке "Виды", но внедренной в папку альтернатив, например. для предоставления альтернативы Views/Users/login.aspx поместите новое представление в Views/Alternative/Users/login.aspx.

С помощью соглашения о поиске альтернативных представлений вы можете расширить WebFormViewEngine и перегрузить CreatePartialView/CreateView, чтобы проверить какой-либо элемент ControllerContext, чтобы определить, следует ли отображать по умолчанию или перегружать представление и изменять путь соответствующим образом, например. изменение... /Views/Users/login.aspx to.../Views/Alternative/Users/login.aspx.

Ответ 5

Я предлагаю вам использовать режимы отображения для достижения тестирования A/B.

Но режимы отображения просто по умолчанию поддерживают простые проблемы.

Если вы уже реализуете Режимы отображения в другом сценарии. Вы можете рассмотреть DisplayModeMatrix (просто Google). Это помогает повысить эффективность режимов отображения.

https://www.nuget.org/packages/DisplayModeMatrix/

Режимы Wth Display вы можете просто удалить/переименовать представления после тестирования A/B для очистки вашего проекта.

Ответ 6

Я думаю, что для этого нет готового решения, и вам придется импровизировать.

Попробуйте переопределить текущую функциональность в четко определенных точках, не нарушая ее. Явно нарисуйте границу, где живет ваш обычный код и код тестирования A-B.

Здесь может также помочь инверсия принципа управления (т.е. контроллер factory мог бы предоставить производный контроллер вместо исходного). Для просмотров и частичного просмотра - вы можете изменить viewengine, чтобы он попытался найти "MyPartialViewAB.ascx" вместо "MyPartialView.ascx".

И может быть хорошей идеей посмотреть, что счетчики производительности (в случае, если вы этого не сделали).