ABKit 0.1.0

ABKit 0.1.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年2月
SPM支持 SPM

recruit-mp 维护。



ABKit 0.1.0

  • 作者:
  • Naoto Kaneko

ABKit

Build Status

Swift的A/B测试。

ABKit是一个用于实现简单A/B测试的库,

  • 不需要HTTP客户端
  • 完全由Swift编写

安装

用法

A/B测试

let defaultVersion = Version(name: "A") { version in print("Pattern \(version.name)") }
let test = SplitTest(name: "Sample A/B test", defaultVersion: defaultVersion)

let b = Version(name: "B") { version in print("Pattern \(version.name)") }
test.addVersion(b, weight: 0.5)

test.run() // A(Default Version) = 50%, B = 50%

基于加权概率的拆分测试

let defaultVersion = Version(name: "A") { version in print("Pattern \(version.name)") }
let test = SplitTest(name: "Sample split test", defaultVersion: defaultVersion)

let b = Version(name: "B") { version in print("Pattern \(version.name)") }
test.addVersion(b, weight: 0.2)

let c = Version(name: "C") { version in print("Pattern \(version.name)") }
test.addVersion(c, weight: 0.3)

test.run() // A(Default Version) = 50%, B = 20%, C = 30%

条件测试

let defaultVersion = Version(name: "A") { version in print("Pattern \(version.name)") }
let test = ConditionalTest<User>(name: "Sample conditional test", defaultVersion: defaultVersion)

let b = Version(name: "B") { version in print("Pattern \(version.name)" }
test.addVersion(b) { user in user.age < 20 }

let user = User(name: "naoty", age: 28)
test.run(user) // If user.age < 20 is true, B will be run otherwise A will be run.

专业提示

  • ABKit通过在RandomNumberRepository中保存一个随机数来选择一个版本。默认情况下,ABKit使用NSUserDefault作为RandomNumberRepository。您可以通过实现RandomNumberRepository协议将数据保存在任何存储中。
  • 您可以使用-setRandomNumber(_:)指定任意数字作为随机数,并使用-deleteRandomNumber()来重置SplitTest的随机数。

许可证

ABKit可在MIT许可证下获得。有关更多信息,请参阅LICENSE文件。