2009-09-24 20 views
25

¿Cuál es la mejor y más limpia forma de implementar las pruebas A-B en asp.net mvc? Es decir, cuando realizamos nuevos cambios en un sitio web asp.net mvc, queremos probar los nuevos html/css/js con un determinado subconjunto de visitantes (definidos en cookie, login id, etc.) y luego analizar algunas métricas (tiempo de respuesta de página, número de páginas visitadas, $$$ en ventas, etc.) después para medir el nivel de éxito de los cambios.¿Cuál es la mejor/más limpia forma de implementar las pruebas A-B en asp.net mvc?

Estoy buscando una manera limpia de implementar una forma de elegir qué vista (html/css/js, etc ...) renderizar usando asp.net mvc.

Respuesta

-1

Creo que no hay una solución lista para usar para esto y tendrá que improvisar.

Trate de anular su funcionalidad actual en puntos bien definidos sin romperla. Dibuje explícitamente un borde donde viva su código regular y el código de prueba A-B.

La inversión del principio de control también podría ayudar mucho aquí (es decir, la fábrica controladora podría proporcionar un controlador derivado en lugar del controlador original). Para vistas & partialviews, podría cambiar viewengine para que intente buscar 'MyPartialViewAB.ascx' en lugar de 'MyPartialView.ascx'.

Y podría ser una buena idea echar un vistazo a qué es performance counters (en caso de que no lo haya hecho).

2

Google Content Experiments? Es una solución basada en Javascript que no requiere nada de tu back-end.

  1. Se incluyen Javascript de Google en su página
  2. El guión sustituye al azar los elementos de la página como se define por su prueba A/B
  3. sitio de Google que muestra un buen desglose de los resultados ...
+0

Tal vez sea parcial, pero casi todo lo que le da a Google más información de forma gratuita [ya que son una empresa, como cualquier otra persona; no es una obra de caridad], y, por otro lado, es un motor de prueba de JavaScript [que adolece de falta de soporte de rendimiento de SEO/cliente], no es una buena solución –

2

Si está utilizando el motor de vista de chispa, probablemente podría hacerlo con una variación del filtro de tema (http://sparkviewengine.com/documentation/viewlocations#Extendingfilepatternswithdescriptorfilters). Para cada nuevo visitante al sitio, determine si desea que vean la versión existente o nueva del sitio y configure una cookie. Cree un filtro de descriptor que busque la presencia de la cookie y modifique la ubicación de la vista para buscar en la carpeta que contiene las vistas modificadas. Si existe una vista alternativa, el motor Spark lo renderizará automáticamente en lugar de la vista "normal", de lo contrario generará la vista normal.

Si está utilizando la WFVE normal, la forma más sencilla de gestionar esto sería definir una carpeta en Vistas donde vivan sus alternativas de visualización. Cuando desee proporcionar una vista alternativa, colóquela en una ubicación que coincida con su posición dentro de la carpeta Vistas normal pero enraizada en la carpeta de alternativas, p. para proporcionar una alternativa a Views/Users/login.aspx, coloque su nueva vista en Views/Alternative/Users/login.aspx.

Con una convención establecida para ubicar sus vistas alternativas, puede extender WebFormViewEngine y sobrecargar CreatePartialView/CreateView para inspeccionar algún aspecto del ControllerContext para determinar si se renderiza la vista predeterminada o sobrecargada y se modifica la ruta según corresponda, p. cambiando .../Views/Users/login.aspx a .../Views/Alternative/Users/login.aspx.

+0

Estoy usando chispa. – Lamar

11

Echa un vistazo FairlyCertain (http://www.fairtutor.com/fairlycertain/) cuando tienes la oportunidad. Es una biblioteca .NET A/B que prácticamente puede incluir en su proyecto y comenzar a escribir pruebas.

A diferencia de las bibliotecas Javascript de Google y VisualWebsiteOptimizer, todo sucede en el servidor para que no sufra ningún rendimiento, experiencia de usuario o problemas de SEO. Lo he usado en mis cosas por un tiempo y funciona bastante bien.

+2

Finalmente encontré dónde almacena los datos (en un archivo de texto, me tomó un tiempo ...). Podría valer la pena agregar un descargo de responsabilidad si es su propio producto. ;-) – davewasthere

+2

Parece que esto se dirige a los formularios web: ¿hay una implementación de MVC/Razor? – sydneyos

+0

@JasonKester ¿En qué licencia se distribuye? –

3

Hay un A/B testing framework específicamente para ASP.NET MVC. Este es un software de código abierto que escribí cuando, al igual que usted, no encontró una herramienta gratuita que funciona bien con ASP.NET MVC y no requiere mucha configuración.

0

Le sugiero que use modos de visualización para lograr las pruebas A/B.

Pero los modos de visualización solo admiten problemas simples de forma predeterminada.

Si ya implementa Modos de visualización en algún otro escenario. Puedes considerar DisplayModeMatrix (solo google it). Le ayuda a usar modos de visualización más eficientes.

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

Modos de Wth de visualización puede simplemente borrar/renombrar opinión después de las pruebas A/B para limpiar su proyecto.

Cuestiones relacionadas