Wattedepper is 'n eenvoudige WSGI A / B-toets instrument.
Gebruik:
& Nbsp; 1. Definieer 'n eksperiment:
& Nbsp; uit depper invoer Wattedepper
& Nbsp; s = Wattedepper ('/ tmp / .swab-toets-data')
& Nbsp; s.addexperiment ('knoppie-grootte', ['verstek', 'n groter '],' om-voltooi ')
& Nbsp; Hier het ons 'n eksperiment genoem "knoppie teks ', vir die toets van twee groottes van
& Nbsp; knoppie op 'n vorm.
& Nbsp; Die twee variante die experment is die sogenaamde "klein" en "groot". Die eerste
& Nbsp; gelys word altyd geneem as die beheer variant, en die resultate sal wees
& Nbsp; wat in terme van hoeveel beter of slegter die ander variante het
& Nbsp; gevaar in vergelyking met die kontrole
& Nbsp; Die doel wat verband hou met die toets is 'orde-voltooi' genoem.
& Nbsp; 2. Neem 'n WSGI aansoek:
& Nbsp; uit depper invoer record_goal, show_variant
& Nbsp; def get_button_style (omge):
& Nbsp; as show_variant ('knoppie-grootte', omge) == 'klein':
& Nbsp; terugkeer "font-size: 100% '
& Nbsp; anders:
& Nbsp; terugkeer "font-size: 150% '
& Nbsp; def myapp (omge, start_response):
& Nbsp; as omge ['REQUEST_METHOD'] == 'kry':
& Nbsp; start_response ('200 OK', [])
& Nbsp; terugkeer ['' '
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp; '' '% (get_button_style (omge),)
& Nbsp;]
& Nbsp; as omge ['REQUEST_METHOD'] == 'post':
& Nbsp; swab.record_goal ('om-voltooi', omge)
& Nbsp; 3. Draai dit in die depper middleware:
& Nbsp; app = s.middleware (myapp)
4. Laat dit loop, en na 'n rukkie gaan na http: //
Toets
Jou mededingende bladsye te toets, begin Wattedepper in debug modus:
depper = Wattedepper ('/ tmp / .swab-toets-data "debug = True)
Dan voeg? Depper.
Skakel debug modus in produksie te vermy mense geknoei met jou syfers.
Basiese ontwerp
Elke besoeker is 'n identiteit wat volgehou word deur middel van 'n koekie opgedra. Die identiteit is 'n base64 geënkodeerde lukraak gegenereer byte volgorde. Hierdie identiteit word gebruik as 'n saad vir 'n RNG, wat gebruik word om besoekers te skakel in toets- groepe.
Elke keer as 'n toets word getoon (veroorsaak deur die show_variant funksie), is 'n lyn het in 'n lêer op
Elke keer as 'n doel aangeteken (veroorsaak deur die record_goal funksie), is 'n lyn het in 'n lêer op
Elke log lyn het die formaat: n.
Geen lêer sluiting word gebruik: dit word aanvaar dat dit sal uitgevoer word op 'n stelsel waar elke lyn is kleiner as die fs blocksize, sodat ons hierdie oorhoofse te vermy. Die lyne kan Interleaved geword, maar daar moet geen risiko van korrupsie, selfs met verskeie gelyktydige skryf nie. Sien http://www.perlmonks.org/?node_id=486488 vir 'n bespreking van die kwessie.
Statistiese analise
Die verdere leesgedeelte bevat skakels na die verskillende artikels wat gehelp het om my te implementeer om die algoritmes en statistiese formules wat gebruik word in Dep. Maar ek het nie 'n agtergrond in wiskunde of statistieke nie en ek sou bydraes of regstellings van iemand met 'n dieper begrip van hierdie toetse verwelkom
Wat is nuut in hierdie weergawe.:
- Bygevoeg 'n javascript baken toetse aan te teken (help sluit bots)
- Beter uitsluiting van bots op die bediener kant te
- Rekord verhoor app sal nie 'n fout maak as die eksperiment naam bestaan nie
- verwyder debug vlag, die vermoë om 'n variant te dwing is nou altyd teenwoordig
- Strip HTTP caching kop as 'n eksperiment is drie maande gedurende die versoek
- Verbeterde akkuraatheid van omskakeling dop
- Koekie pad kan in middleware opset gespesifiseer word
Wat is nuut in die weergawe 0.1.2:
- Klein bugfixes
Wat is nuut in die weergawe 0.1.1:
- Bugfix vir ZeroDivisionErrors wanneer geen data ingesamel
Vereistes :
- Python
Kommentaar nie gevind