2010-04-14 26 views
2

在App引擎上運行的A/B測試系統最簡單的實現是什麼?App Engine上的A/B測試?

我特別熱衷於將數據存儲用於後端(使用Looong查詢時間)和數據庫設計的性能影響。

+0

我越讀你的問題越少我明白了。 A/B如何與數據存儲相關? o_O您能向我們展示一個您要做的測試的例子嗎? – 2010-04-15 00:15:31

回答

1

假設你想測試你應用的不同版本,我會建議使用一些簡單的WSGI中間件。構建一些將x%的用戶引導到一個WSGI應用程序,剩下的部分轉移到另一個應用程序,用戶ID,IP地址等等。這應該是相當簡單的實現,你可以堆在你喜歡的任何東西上面。

+0

可行,但過於複雜。閱讀A/B測試應該是多麼容易:http://www.bingocardcreator.com/abingo – 2010-04-14 13:43:25

+0

類似這樣的東西在Python和Ruby中當然是可能的。我正在尋求更一般的(雖然開銷較高)方法。:) – 2010-04-15 09:43:17

-1

A/B測試需要向某些用戶顯示頁面A,而向其他一些用戶顯示頁面B.

App Engine與它無關。 App引擎是部署應用程序的一種方式,而不是沿頁面的直接用戶。

這是您用於基於用戶co​​okie /會話服務於一個頁面或另一個頁面的Web框架的功能。

以簡單的方式也可能這樣做:

  • 獲得用戶的cookie
  • 發現它在數據存儲
  • 發現了什麼?使用與上次相同的一組頁面(A或B)
  • 找不到?選擇A或B隨機地選擇保存到數據存儲與餅乾
  • 沿(而定)的選擇放入會話快速訪問

然後,在特定的控制器/視圖,基於所選擇的A或B,將用戶重定向到頁面A或頁面B.將結果(無論您的結果 - 銷售,註冊,...)記錄到數據存儲中。

這可以爲任何Web框架。你甚至沒有告訴哪一個您使用;)

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,這是一款適用於App Engine的A/B拆分測試框架,靈感來源於 A/Bingo

更多信息here

+1

GAE/Bingo的作者在這裏 - >我們花了特別長的時間確保數據在後端保留而不影響頁面加載時間(通過任務隊列在後臺持久保存數據等)。查看systempuntoout的更多鏈接。 – kamens 2011-10-01 23:41:42

+0

@kamens在那裏工作不錯:) – systempuntoout 2011-10-01 23:47:23

+1

謝謝!希望能幫助到你 – kamens 2011-10-02 20:18:31