示例用法

云眼About 2 min

示例用法

本主题提供了一个简短的代码示例,说明如何使用云眼灰度发布(特性标帜)AB实验 Java SDK 来评估灰度发布(特性标帜)、激活 A/B 测试或功能测试。

安装 Java SDK 后,将 Eyeofcloud 功能实验库导入代码,获取 Eyeofcloud 功能实验项目的数据文件,并实例化客户端。然后,可以使用客户端评估标帜规则,包括 A/B 测试和标帜传递。

此示例演示了以下每个概念的基本用法:

  1. 使用 Decide 方法计算具有比如buy键的标帜。作为副作用,Decision函数还会向云眼灰度发布(特性标帜)AB实验发送决策事件,以记录当前用户已暴露于实验。

  2. 有条件地执行特征代码。有以下几种选择:

  • 获取标帜启用状态,然后检查标帜上名为buy 的配置变量。SDK 会评估标帜规则,并确定用户所处的标帜变体(版本),从而确定他们应该看到的变量。
  • 获取标帜变体(版本),然后运行“控制”或“处理”代码。
  1. 使用事件跟踪跟踪名为buy 的事件。此转化事件衡量实验的影响。使用 Track Event 方法,购买会自动归因于我们做出决策的正在运行的 A/B 测试,SDK 会通过可自定义的事件调度程序向 Eyeofcloud 功能实验发送网络请求,以便我们可以将其计入“结果”页面。

Java

import com.eyeofcloud.ab.Eyeofcloud;
import com.eyeofcloud.ab.EyeofcloudFactory;

// Instantiate an Eyeofcloud client    
public class App {

    public static void main(String[] args) {
        String sdkKey = "<Your_SDK_Key>";
        Eyeofcloud eyeofcloud = EyeofcloudFactory.newDefaultInstance(sdkKey);
    }
}

// create a user and decide a flag rule (such as an A/B test) for them
Map<String, Object> attributes = new HashMap<>();
attributes.put("logged_in", true);
EyeofcloudUserContext user = eyeofcloud.createUserContext("user123", attributes);

EyeofcloudDecision decision = user.decide("product_sort");

// did the decision fail with a critical error?
String variationKey = decision.getVariationKey();
if (variationKey == null) {
  List<String> reasons = decision.getReasons();
  System.out.println("decision error: " + reasons);
}
                
// execute code based on flag enabled state
boolean enabled = decision.getEnabled();
EyeofcloudJSON variables = decision.getVariables();
if (enabled) {  
  String vs = null;
  try {
	  vs = variables.getValue("sort_method", String.class);
  } catch (JsonParseException e) {
    e.printStackTrace();
 }           
 // execute code for sort method value
}  
                     
                     
// or execute code based on flag variation:                     
if (variationKey == "control") {
	// Execute code for control variation 
} else if (variationKey == "treatment") {
  // Execute code for treatment variation
}

                  
// Track an event
user.trackEvent("purchased");
Last update:
Contributors: “zhangweixue”