tăm bông là một công cụ kiểm tra WSGI A / B đơn giản.
Cách sử dụng:
& Nbsp; 1. Xác định một thí nghiệm:
& Nbsp; từ tăm bông tăm bông nhập khẩu
& Nbsp; s = Swab ('/ tmp / .swab-test-data')
& Nbsp; s.addexperiment ('nút-size ", [' mặc định ',' lớn '],' sắp hoàn thành)
& Nbsp; Ở đây, chúng tôi đã là một thử nghiệm được gọi là "nút-text", để thử nghiệm hai kích thước
& Nbsp; nút trên form.
& Nbsp; Hai biến thể của experment được gọi là 'nhỏ' và 'lớn'. Việc đầu tiên
& Nbsp; liệt kê luôn được như các biến thể kiểm soát, và kết quả sẽ được
& Nbsp; trình bày trong các điều khoản của bao nhiêu tốt hơn hoặc tồi tệ hơn, những biến thể khác có
& Nbsp; thực hiện so với sự kiểm soát
& Nbsp; Các mục tiêu liên quan đến việc kiểm tra được gọi là "trật tự hoàn thành.
& Nbsp; 2. Hãy ứng dụng WSGI:
& Nbsp; từ record_goal nhập khẩu tăm, show_variant
& Nbsp; def get_button_style (môi trường):
& Nbsp; nếu show_variant ('nút-size ", môi trường) ==' nhỏ ':
& Nbsp; return 'font-size: 100%'
& Nbsp; khác:
& Nbsp; return 'font-size: 150%'
& Nbsp; def myapp (môi trường, start_response):
& Nbsp; nếu environ ['REQUEST_METHOD'] == 'GET':
& Nbsp; start_response ('200 OK', [])
& Nbsp; return ['' '
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp; '' '% (get_button_style (môi trường),)
& Nbsp;]
& Nbsp; nếu environ ['REQUEST_METHOD'] == 'POST':
& Nbsp; swab.record_goal ('để hoàn thành', môi trường)
& Nbsp; 3. Bọc nó trong miếng gạc middleware:
& Nbsp; app = s.middleware (myapp)
4. Hãy để nó chạy, và sau một thời gian duyệt đến http: //
kiểm tra
Để kiểm tra các trang cạnh tranh của bạn, hãy bắt đầu tăm bông trong chế độ gỡ lỗi:
tăm bông tăm bông = ('/ tmp / .swab-test-dữ liệu', debug = True)
Sau đó nối thêm '? Tăm bông.
Vô hiệu hoá chế độ gỡ lỗi trong sản xuất để tránh những người rối tung lên với con số của bạn.
thiết kế cơ bản
Mỗi người truy cập được gán một bản sắc mà là tiếp tục tồn bằng phương tiện của một cookie. Việc nhận dạng là một chuỗi mã hóa base64 byte ngẫu nhiên tạo ra. Danh tính này được sử dụng như một hạt giống cho một RNG, được sử dụng để chuyển đổi khách truy cập thành các nhóm thử nghiệm.
Mỗi khi một thử nghiệm được hiển thị (kích hoạt bởi các chức năng show_variant), một dòng được nhập vào một tập tin tại
Mỗi khi một bàn thắng được ghi (kích hoạt bởi các chức năng record_goal), một dòng được nhập vào một tập tin tại
Mỗi dòng nhật ký có dạng: n.
Không có tập tin khóa được sử dụng: nó được giả định rằng điều này sẽ được chạy trên một hệ thống trong đó mỗi dòng là nhỏ hơn so với kích cỡ khối fs, cho phép chúng tôi để tránh phí này. Các dòng có thể trở nên xen kẽ, nhưng có phải là không có nguy cơ tham nhũng ngay cả với nhiều ghi đồng thời. Xem http://www.perlmonks.org/?node_id=486488 cho một cuộc thảo luận về vấn đề này.
Phân tích thống kê
Phần đọc thêm chứa các liên kết đến các bài viết khác nhau đã giúp tôi thực hiện các thuật toán và công thức thống kê được sử dụng trong tăm bông. Tuy nhiên tôi không có một nền tảng trong toán hoặc số liệu thống kê và tôi sẽ hoan nghênh những đóng góp hay chỉnh sửa từ bất cứ ai với một sự hiểu biết sâu sắc hơn về những thử nghiệm
là gì mới trong phiên bản này.:
- Thêm một ngọn hải đăng javascript để ghi lại các bài kiểm tra (giúp loại trừ các chương trình)
- Loại trừ tốt hơn các chương trình trên máy chủ bên quá
- Record ứng dụng thử nghiệm sẽ không tăng một lỗi nếu tên thí nghiệm không tồn tại
- Bỏ debug flag, khả năng để buộc một biến hiện nay là luôn luôn hiện diện
- Strip tiêu đề HTTP caching nếu một thí nghiệm đã được viện dẫn trong các yêu cầu
- Cải thiện tính chính xác của theo dõi chuyển đổi
- đường Cookie có thể được quy định trong cấu hình trung
là gì mới trong phiên bản 0.1.2:
- sửa lỗi nhỏ
là gì mới trong phiên bản 0.1.1:
- Sửa lỗi cho ZeroDivisionErrors khi không có dữ liệu đã được thu thập
Yêu cầu :
- Python
Bình luận không