在asp.net mvc中实施A-B测试的最佳/最干净的方法是什么?

时间:2009-09-24 04:32:00

标签: asp.net-mvc testing ab-testing

在asp.net mvc中实施A-B测试的最佳和最干净的方法是什么?也就是说,当我们对asp.net mvc网站进行新的更改时,我们想要测试新的html / css / js,其中包含一定数量的访问者(在cookie,登录ID等上定义),然后分析一些指标(页面响应时间,访问页数,销售额中的$$$等,然后测量变化的成功程度。

我正在寻找一种干净的方法来实现一种选择使用asp.net mvc渲染的视图(html / css / js等等)的方法。

6 个答案:

答案 0 :(得分:12)

如果有机会,请查看FairlyCertain http://www.fairtutor.com/fairlycertain/)。它是一个.NET A / B库,你几乎可以直接进入你的项目并开始编写测试。

与Google和VisualWebsiteOptimizer的Javascript库不同,所有内容都发生在服务器上,因此您不会遇到任何性能,用户体验或SEO问题。我已经在我的东西中使用它已经有一段时间了,而且效果很好。

答案 1 :(得分:5)

ASP.NET MVC专门有一个A/B testing framework。这是我自己写的一个开源软件,就像你一样,没有找到一个可以很好地与ASP.NET MVC配合使用的免费工具,并且不需要太多设置。

答案 2 :(得分:3)

Google Content Experiments?这是一个基于Javascript的解决方案,不需要你后端的任何东西。

  1. 您在自己的网页上添加了Google的Javascript
  2. 该脚本会随机替换您的A / B测试所定义的页面上的元素
  3. Google的网站向您展示了结果的详细信息......

答案 3 :(得分:2)

如果您使用的是火花视图引擎,则可以使用主题过滤器(http://sparkviewengine.com/documentation/viewlocations#Extendingfilepatternswithdescriptorfilters)的变体进行操作。对于网站的每个新访问者,确定您是否希望他们查看网站的现有版本或新版本并设置cookie。连接描述符过滤器,该过滤器查找cookie的存在并修改视图位置以查看包含已修改视图的文件夹。如果存在替代视图,Spark引擎将自动呈现它以代替“普通”视图,否则它将呈现普通视图。

如果您使用的是普通的WFVE,那么最简单的方法就是在View中定义一个文件夹,其中包含您的视图备选方案。如果要提供备用视图,请将其放置在与普通“视图”文件夹中的位置匹配但以根据备用文件夹为根的位置,例如提供Views / Users / login.aspx的替代方案,将您的新视图放在Views / Alternative / Users / login.aspx。

使用适用于查找备用视图的约定,您可以扩展WebFormViewEngine并重载CreatePartialView / CreateView以检查ControllerContext的某些方面,以确定是否呈现默认或重载视图并根据需要更改路径,例如:将... / Views / Users / login.aspx更改为... / Views / Alternative / Users / login.aspx。

答案 4 :(得分:1)

我建议您使用显示模式来实现A / B测试。

但显示模式默认只支持简单问题。

如果您已在某些其他方案中实施显示模式。您可以考虑使用DisplayModeMatrix(只是谷歌)。它可以帮助您提高显示模式的效率。

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

Wth显示模式您可以在A / B测试后删除/重命名视图以清理项目。

答案 5 :(得分:-1)

我认为没有现成的解决方案,你必须即兴发挥。

尝试在明确定义的点上覆盖当前功能而不会破坏它。明确绘制常规代码和A-B测试代码所在的边框。

控制原理的反转也可能对此有很大帮助(即 - 控制器工厂可以提供派生控制器而不是原始控制器)。对于视图和偏视图 - 您可以更改viewengine,以便它尝试查找“MyPartialViewAB.ascx”而不是“MyPartialView.ascx”。

看看performance counters是什么(如果你没有),这可能是一个好主意。