sürüntü basit bir WSGI A / B testi aracıdır.
Kullanım:
& Nbsp; 1. Bir deney tanımlayın:
& Nbsp; sürüntü ithalat çubukla gelen
& Nbsp; s = Çubuğu ('/ tmp / .swab-testi-veri')
& Nbsp; s.addexperiment ('düğmesine boyutu', ['varsayılan', 'büyük'], 'sipariş tamamlandı')
& Nbsp; Burada bir deney iki boyutta test etmek için, 'düğme metni' denilen
& Nbsp; bir form üzerinde düğmesine basın.
& Nbsp; iki experment varyantları denir 'küçük' ve 'büyük'. ilk
& Nbsp; listelenen her zaman kontrol değişkeni olarak alınır ve sonuçlar olacak
& Nbsp; ne kadar iyi ya da kötü, diğer varyantları var açısından sunulan
& Nbsp; kontrol grubuna kıyasla yapılır
& Nbsp; testi ile ilişkili amaç 'sipariş tamamlandı' olarak adlandırılır.
& Nbsp; 2. Bir WSGI uygulaması atın:
& Nbsp; sürüntü ithalat record_goal gelen, show_variant
& Nbsp; def get_button_style (environ):
& Nbsp; eğer show_variant ('düğmesine boyutu', environ) == 'küçük':
& Nbsp; dönüş 'font-size: 100%'
& Nbsp; else:
& Nbsp; dönüş 'font-size: 150%'
& Nbsp; def myapp (environ, start_response):
& Nbsp; eğer environ ['REQUEST_METHOD'] == 'GET':
& Nbsp; start_response ('200 Tamam', [])
& Nbsp; geri ['' '
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp; '' '(% get_button_style (environ),)
& Nbsp;]
& Nbsp; environ ['REQUEST_METHOD'] == 'POST' eğer:
& Nbsp; swab.record_goal ('sipariş tamamlandı', environ)
& Nbsp; 3. Sürüntü katman sarın:
& Nbsp; app = s.middleware (myapp)
4. çalıştıralım ve bir süre sonra http: //
Test
Senin rakip sayfaları test etmek için, hata ayıklama modunda Swabını başlatın:
çubukla = Çubuğu ('/ tmp / .swab-testi-veri', hata ayıklama = true)
Ardından '? Bez.
Insanlar rakamları ile ilgili karıştırmasını önlemek için üretimde hata ayıklama modunu devre dışı bırakın.
Temel tasarım
Her ziyaretçi, bir çerez vasıtasıyla kalıcı bir kimlik atanır. Kimlik rasgele oluşturulmuş bayt dizisi kodlanmış bir base64 olduğunu. Bu kimlik testi gruba ziyaretçi geçiş yapmak için kullanılan bir mg, için tohum olarak kullanılır.
(Show_variant fonksiyonu ile tetiklenen) bir test gösterilen her zaman, bir çizgi
(Record_goal fonksiyonu ile tetiklenen) gol kaydedilir her zaman, bir çizgi
N: Her günlük hat biçimi vardır.
Hiçbir dosya kilitleme kullanılır: Bu, her satırı bize bu yükü önlemek için izin, fs blok boyutundan daha küçük olan bir sistemde çalışacak olacağı varsayılmıştır. çizgiler araya eklenmiş olabilir, ama hatta aynı anda birden çok yazma ile yolsuzluk riski yoktur olmalıdır. Konunun bir tartışma için http://www.perlmonks.org/?node_id=486488 bakın.
İstatistiksel analiz
Daha fazla okuma bölümü bana çubukla kullanılan algoritmalar ve istatistiki formüller uygulamak yardımcı çeşitli makalelere bağlantılar içerir. Ancak matematik veya istatistik bir arka plan yok ve ben bu testlerin daha derin bir anlayış ile herkesten katkı veya düzeltmeleri bekleriz
Bu sürümde Yeni nedir.:
- testleri kaydetmek için bir javascript işaret eklendi (botlar hariç yardımcı olur)
- da sunucu tarafında botlara daha iyi dışlama
- deney adı yoksa bir hata yükseltmek olmaz Kayıt deneme uygulaması
- Bir varyant zorlamak yeteneği artık her zaman mevcut
- Şerit HTTP önbelleğe alma başlıkları bir deneme isteği sırasında çağrılan olup olmadığını
- dönüşüm izleme Geliştirilmiş doğruluk
- Çerez yolu katman yapılandırmada belirtilebilir
Hata ayıklama bayrağı kaldırıldı
nedir sürüm 0.1.2 Yeni:
- Küçük onarımları
sürüm 0.1.1 yeni nedir:
- ZeroDivisionErrors için Bugfix hiçbir veri toplanmıştır
Gereksinimler :
- Python
Yorum Bulunamadı