# 实验接口

自基础库版本2.14.4 起支持实验能力。

1.wx.getExptInfoSync(keys?: string[]) => Object

给定实验参数数组,获取对应的实验参数值

  • 返回值为对象,对象的 key 为传入的 keys 中的各项,value 为参数值( 请注意是字符串 );没命中任何实验返回空对象。

  • 请在真正要用到参数的时候去调用 API 获取参数。每次要使用参数时,都需要重新调用 API 获取最新的值,不要记录历史结果。原因是参数的取值可能会发生变化,旧的值很可能已经过期,导致实验结果不准确。


'wxapp_expt_test'为 mp 上创建实验的实验参数,参数值 '0' 表示'对照组''1' 表示'实验组1''2' 表示'实验组2',可支持最多 20 个实验组

const res = wx.getExptInfoSync(['wxapp_expt_test'])
if (res.wxapp_expt_test === undefined) {
    // 返回空对象;未命中实验、实验待发布(白名单除外)或者实验结束后会命中该分支 
    /* 业务逻辑,可对齐线上 */
} else if (res.wxapp_expt_test == '0') {
    /* 对照组业务逻辑 */
} else if (res.wxapp_expt_test == '1') {
    /* 实验组1业务逻辑 */
} else if (res.wxapp_expt_test == '2') {
    /* 实验组2业务逻辑 */
} else {
    /* 异常分支逻辑 */
}

2.wx.reportEvent(eventId: string, data?: Object)

事件上报

  • eventId 为在小程序后台实验系统中设置的 事件英文名

  • data 可选,为可被 JSON.stringify 的对象,将被一起上报至系统。


wx.reportEvent('事件英文名', {expt_data: num})
其中expt_data固定;num由业务决定且只支持整数,可上报停留时长或者金额。

需注意的是 wx.reportEvent('事件英文名') 与 wx.reportEvent('事件英文名', {expt_data: 1}) 等价。