CN114090441B - 一种在线ab测试的实现方法 - Google Patents
一种在线ab测试的实现方法 Download PDFInfo
- Publication number
- CN114090441B CN114090441B CN202111386918.0A CN202111386918A CN114090441B CN 114090441 B CN114090441 B CN 114090441B CN 202111386918 A CN202111386918 A CN 202111386918A CN 114090441 B CN114090441 B CN 114090441B
- Authority
- CN
- China
- Prior art keywords
- test
- configuration information
- mobile terminal
- test configuration
- terminal app
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 527
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000006399 behavior Effects 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims abstract description 4
- 238000005457 optimization Methods 0.000 claims description 26
- 238000013507 mapping Methods 0.000 claims description 11
- 230000035772 mutation Effects 0.000 abstract description 7
- 239000010410 layer Substances 0.000 description 25
- 238000002474 experimental method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010972 statistical evaluation Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种在线AB测试的实现方法,包括以下步骤:步骤1,AB测试平台在线配置试验模式;步骤2,移动端APP获取试验配置信息;步骤3,在移动端APP根据从本地内存加载的试验配置信息,实现对移动端APP对应功能的更新优化后,对移动端APP用户行为特征进行监控,当监控到与本次试验配置信息相关的特定试验用户行为特征时,记录试验配置信息和特定试验用户行为特征的对应关系,生成特定试验用户行为日志,并将特定试验用户行为日志上传给AB测试平台。本发明可有效提高AB测试性能和效率,保证用户试验环境稳定性,避免了用户试验组突变影响终端体验。
Description
技术领域
本发明属于供电配置优化技术领域,具体涉及一种在线AB测试的实现方法。
背景技术
AB测试是:Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,从而分析、评估出最好版本。AB测试作为数据驱动业务的重要工具手段,可以帮助企业更好的实施数据驱动策略。
现有的AB测试方法,主要存在以下问题:移动端APP与AB测试平台之间通过公网连接,由于移动端网络环境复杂,导致网络延迟高,因此,移动端APP常常由于网络问题,获取AB测试平台下发的待测试的试验配置信息失败或延迟,移动端用户参与的试验无法顺利进行。另外,移动端用户在进行试验时,常出现APP界面跳变问题,例如,移动端APP当前正在运行默认版本的功能界面,突然接收到AB测试平台下发的更新版本,则移动端APP立即运行更新版本,从用户使用角度看,出现功能界面突变情况,从而既影响用户使用移动端APP的体验,也会干扰试验正常进行,影响试验报告结果的可靠性。
发明内容
针对现有技术存在的缺陷,本发明提供一种在线AB测试的实现方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种在线AB测试的实现方法,包括以下步骤:
步骤1,AB测试平台在线配置试验模式,包括:
步骤1.1,确定需要进行AB测试的n个试验;
步骤1.2,根据n个试验之间的相互关系,将n个试验划分到不同的试验层中,从而形成试验层级结构;
步骤1.3,对每个试验,表示为试验testi,圈定可进行试验testi的用户属性以及用户总流量;设试验testi需验证的优化方案包括m个,分别为:优化方案P1,P2,...,Pm;根据优化方案P1,P2,...,Pm的特征,对用户总流量进行比例划分,设定分配给优化方案P1,P2,...,Pm的流量比例分别为:Q1,Q2,...,Qm;
步骤2,移动端APP获取试验配置信息,包括:
步骤2.1,移动端APP嵌入sdk功能模块;
步骤2.2,每当移动端APP被启动时,同时启动sdk功能模块;
步骤2.3,sdk功能模块清空本地内存,然后读取本地文件系统,判断本地文件系统是否存在上次保存的试验配置信息,如果不存在,则执行步骤2.4;如果存在,则执行步骤2.5;
步骤2.4,sdk功能模块初始化流程:
步骤2.4.1,sdk功能模块预先绑定AB测试平台请求接口,sdk功能模块通过公网,向AB测试平台发送远程获取试验配置信息的请求消息;其中,所述远程获取试验配置信息的请求消息中,携带用户属性和用户ID;
步骤2.4.2,AB测试平台接收到所述远程获取试验配置信息的请求消息后,对所述用户属性进行分析,得到与所述用户属性对应且符合流量分配比例的优化方案,假设为优化方案Pj,则将优化方案Pj的试验变量信息打包为试验配置信息Bj,并通过公网,将试验配置信息Bj是及移动端APP是否立即运行试验配置信息Bj的指令下发给所述移动端APP;同时,向AB测试平台的本地缓存的分配映射表中,存入用户ID和试验配置信息Bj的对应关系;其中,当试验配置信息Bj下线不再需要进行AB测试时,从分配映射表中,删除用户ID和对应的试验配置信息Bj的对应关系;并且,AB测试平台的本地缓存存储的用户ID和试验配置信息Bj的对应关系,具有生命周期,当达到生命周期时,用户ID和试验配置信息Bj的对应关系被删除;
另外,AB测试平台还存储有试验状态表;所述试验状态表用于存储每个试验的试验上线时间和试验下线时间;通过对试验上线时间和试验下线时间进行分析,得到试验当前状态,包括:试验运行中状态和试验下线状态;
步骤2.4.3,所述移动端APP将接收到的试验配置信息Bj写入本地文件系统;然后,如果AB测试平台下发指令为立即运行试验配置信息Bj,则将本地文件系统中的试验配置信息Bj立即加载到本地内存;再执行步骤2.4.3;如果AB测试平台下发指令为下次启动时运行试验配置信息Bj,则所述移动端APP在下次启动时,再将本地文件系统中的试验配置信息Bj立即加载到本地内存;再执行步骤2.4.3;
步骤2.4.4,所述移动端APP从本地内存加载试验配置信息Bj,实现对移动端APP对应功能的更新优化;然后执行步骤3;
步骤2.5,试验配置信息是否更新流程,包括:
步骤2.5.1,将本地文件系统中的试验配置信息表示为:试验配置信息BT;sdk功能模块将本地文件系统中的试验配置信息BT加载到本地内存;
步骤2.5.2,所述移动端APP从本地内存加载试验配置信息BT,实现对移动端APP对应功能的更新优化;
同时,所述移动端APP调用sdk功能模块,sdk功能模块通过公网,向AB测试平台发送试验配置信息BT是否更新的请求消息;其中,所述试验配置信息是否更新的请求消息中,携带用户属性、用户ID和试验配置信息BT;
AB测试平台接收到试验配置信息是否更新的请求消息后,查找本地缓存的分配映射表,如果本地缓存存在试验配置信息BT,则进一步判断试验配置信息BT对应的试验,当前是否为试验运行中状态,如果是,表明试验配置信息BT未下线,当前仍需要进行AB测试,则执行步骤2.5.3;如果不是,表明试验配置信息BT对应的试验,为试验下线状态,则执行步骤2.5.4;
如果本地缓存不存在试验配置信息BT,则区分两种情况:查找试验状态表,如果试验当前为运行中状态,则重新根据用户属性和用户ID,得到试验配置信息,此时得到的试验配置信息必然与试验配置信息BT相同,然后执行步骤2.5.3;如果试验当前为下线状态,则执行步骤2.5.4;
步骤2.5.3,AB测试平台根据用户属性、用户ID和试验配置信息BT,确定是否需要同时向该用户分配属于不同试验层的试验配置信息;
如果需要,则新生成的试验配置信息表示为:试验配置信息Bnew;然后,将试验配置信息Bnew、试验配置信息BT、试验配置信息Bnew是否立即运行以及试验配置信息BT是否立即运行的指令下发给所述移动端APP;
所述移动端APP,采用新接收到的试验配置信息Bnew和试验配置信息BT,更新本地文件系统;再根据是否立即运行试验配置信息Bnew和/或试验配置信息BT的指令,采用对应方式,立即或下次启动时运行试验配置信息Bnew和/或试验配置信息BT;
如果不需要,则只将试验配置信息BT以及试验配置信息BT是否立即运行的指令下发给所述移动端APP;所述移动端APP,采用新接收到试验配置信息BT,更新本地文件系统;再根据是否立即运行试验配置信息BT的指令,采用对应方式,立即或下次启动时运行试验配置信息BT;
采用以上方式,保证移动端APP的本地文件系统,存储最新的未下线的所有试验配置信息;
然后执行步骤3;
步骤2.5.4,AB测试平台向移动端APP下发强制刷新移动端APP本地内存的指令;
移动端APP接收到该指令时,立即强制刷新本地内存;同时删除本地文件系统中存储的对应的试验配置信息;
当本地内存被强制刷新后,移动端APP卸载当前的试验配置信息,终止对该试验配置信息对应试验的测试;并结束流程;
步骤3,在移动端APP根据从本地内存加载的试验配置信息,实现对移动端APP对应功能的更新优化后,对移动端APP用户行为特征进行监控,当监控到与本次试验配置信息相关的特定试验用户行为特征时,记录试验配置信息和特定试验用户行为特征的对应关系,生成特定试验用户行为日志,并将特定试验用户行为日志上传给AB测试平台。
优选的,步骤1.2具体包括:
将相互影响的试验,划分到试验层级结构中的同一层,同一层中的各个试验,用户流量相互排斥,即:同一用户,不能够同时被分配同一层中的各个试验,只能够被分配同一层中的唯一试验;
将不会相互影响的试验,划分到试验层级结构中的不同层,不同层的各个试验,用户流量不排斥,可复用,即:同一用户,可分配不同层的试验;试验层之间流量正交,即:一份流量每穿过一个试验层,均会被随机打散重组。
本发明提供的一种在线AB测试的实现方法具有以下优点:
本发明可有效提高AB测试性能和效率,保证用户试验环境稳定性,避免了用户试验组突变影响终端体验。
附图说明
图1为本发明提供的一种在线AB测试的实现方法的流程示意图;
图2为本发明提供的AB测试平台在线配置的流程图;
图3为本发明提供的AB测试平台和移动端APP的交互过程图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明主要解决的技术问题是:在移动互联网网络环境下,如何保证AB测试高性能,用户试验环境稳定性,防止用户试验组突变影响终端体验的问题。
本发明提供一种在线AB测试的实现方法,参考图1,为在线AB测试的实现方法的流程图,如图3所示,为AB测试平台和移动端APP的交互过程图,包括以下步骤:
步骤1,AB测试平台在线配置试验模式,包括:
步骤1.1,确定需要进行AB测试的n个试验;
步骤1.2,根据n个试验之间的相互关系,将n个试验划分到不同的试验层中,从而形成试验层级结构;
步骤1.2具体包括:
将相互影响的试验,划分到试验层级结构中的同一层,同一层中的各个试验,用户流量相互排斥,即:同一用户,不能够同时被分配同一层中的各个试验,只能够被分配同一层中的唯一试验;
将不会相互影响的试验,划分到试验层级结构中的不同层,不同层的各个试验,用户流量不排斥,可复用,即:同一用户,可分配不同层的试验;试验层之间流量正交,即:一份流量每穿过一个试验层,均会被随机打散重组。
步骤1.3,对每个试验,表示为试验testi,圈定可进行试验testi的用户属性以及用户总流量;设试验testi需验证的优化方案包括m个,分别为:优化方案P1,P2,...,Pm;根据优化方案P1,P2,...,Pm的特征,对用户总流量进行比例划分,设定分配给优化方案P1,P2,...,Pm的流量比例分别为:Q1,Q2,...,Qm;
例如,确定需要进行AB测试的试验数量可以达到1000个,即:同一时间段支持最大1000个试验同时进行。为了充分利用用户流量,本发明设计试验层级结构,试验层之间流量正交,层间用户流量可复用;同一试验层内为互斥试验,即:层内用户流量相互排斥。
具体实现方法:
在线配置AB测试主要流程如图2所示,包括以下步骤:
1、选择试验层,将可能相互影响的试验布置在同一层,试验之间流量互斥;
2、选择受众用户,用户属性,人群包过滤,只对此部分用户进行试验。
3、设置进入各个试验的用户流量比例,控制受众用户进入试验的比例。
4、设置试验分组信息:分组流量比例(所有组相加100%),试验变量信息(控制不同分组用户具有不同UI或者算法模型)
步骤2,移动端APP获取试验配置信息,包括:
步骤2.1,移动端APP嵌入sdk功能模块;
本发明中,移动端APP嵌入sdk功能模块,sdk功能模块绑定AB测试平台的访问接口,可自动进行以下功能:1)在其启动时,可自动向对应的AB测试平台发送获取试验配置信息的请求。2)在试验过程中,当检测到用户特定行为形成的日志时,可实时自动上报给AB测试平台。
步骤2.2,每当移动端APP被启动时,同时启动sdk功能模块;
步骤2.3,sdk功能模块清空本地内存,然后读取本地文件系统,判断本地文件系统是否存在上次保存的试验配置信息,如果不存在,则执行步骤2.4;如果存在,则执行步骤2.5;
步骤2.4,sdk功能模块初始化流程:
步骤2.4.1,sdk功能模块预先绑定AB测试平台请求接口,sdk功能模块通过公网,向AB测试平台发送远程获取试验配置信息的请求消息;其中,所述远程获取试验配置信息的请求消息中,携带用户属性和用户ID;
步骤2.4.2,AB测试平台接收到所述远程获取试验配置信息的请求消息后,对所述用户属性进行分析,得到与所述用户属性对应且符合流量分配比例的优化方案,假设为优化方案Pj,则将优化方案Pj的试验变量信息打包为试验配置信息Bj,并通过公网,将试验配置信息Bj是及移动端APP是否立即运行试验配置信息Bj的指令下发给所述移动端APP;同时,向AB测试平台的本地缓存的分配映射表中,存入用户ID和试验配置信息Bj的对应关系;其中,当试验配置信息Bj下线不再需要进行AB测试时,从分配映射表中,删除用户ID和对应的试验配置信息Bj的对应关系;并且,AB测试平台的本地缓存存储的用户ID和试验配置信息Bj的对应关系,具有生命周期,当达到生命周期时,用户ID和试验配置信息Bj的对应关系被删除;
另外,AB测试平台还存储有试验状态表;所述试验状态表用于存储每个试验的试验上线时间和试验下线时间;通过对试验上线时间和试验下线时间进行分析,得到试验当前状态,包括:试验运行中状态和试验下线状态;
步骤2.4.3,所述移动端APP将接收到的试验配置信息Bj写入本地文件系统;然后,如果AB测试平台下发指令为立即运行试验配置信息Bj,则将本地文件系统中的试验配置信息Bj立即加载到本地内存;再执行步骤2.4.3;如果AB测试平台下发指令为下次启动时运行试验配置信息Bj,则所述移动端APP在下次启动时,再将本地文件系统中的试验配置信息Bj立即加载到本地内存;再执行步骤2.4.3;
步骤2.4.4,所述移动端APP从本地内存加载试验配置信息Bj,实现对移动端APP对应功能的更新优化;然后执行步骤3;
步骤2.5,试验配置信息是否更新流程,包括:
步骤2.5.1,将本地文件系统中的试验配置信息表示为:试验配置信息BT;sdk功能模块将本地文件系统中的试验配置信息BT加载到本地内存;
步骤2.5.2,所述移动端APP从本地内存加载试验配置信息BT,实现对移动端APP对应功能的更新优化;
同时,所述移动端APP调用sdk功能模块,sdk功能模块通过公网,向AB测试平台发送试验配置信息BT是否更新的请求消息;其中,所述试验配置信息是否更新的请求消息中,携带用户属性、用户ID和试验配置信息BT;
AB测试平台接收到试验配置信息是否更新的请求消息后,查找本地缓存的分配映射表,如果本地缓存存在试验配置信息BT,则进一步判断试验配置信息BT对应的试验,当前是否为试验运行中状态,如果是,表明试验配置信息BT未下线,当前仍需要进行AB测试,则执行步骤2.5.3;如果不是,表明试验配置信息BT对应的试验,为试验下线状态,则执行步骤2.5.4;
如果本地缓存不存在试验配置信息BT,则区分两种情况:查找试验状态表,如果试验当前为运行中状态,则重新根据用户属性和用户ID,得到试验配置信息,此时得到的试验配置信息必然与试验配置信息BT相同,然后执行步骤2.5.3;如果试验当前为下线状态,则执行步骤2.5.4;
步骤2.5.3,AB测试平台根据用户属性、用户ID和试验配置信息BT,确定是否需要同时向该用户分配属于不同试验层的试验配置信息;
如果需要,则新生成的试验配置信息表示为:试验配置信息Bnew;然后,将试验配置信息Bnew、试验配置信息BT、试验配置信息Bnew是否立即运行以及试验配置信息BT是否立即运行的指令下发给所述移动端APP;
所述移动端APP,采用新接收到的试验配置信息Bnew和试验配置信息BT,更新本地文件系统;再根据是否立即运行试验配置信息Bnew和/或试验配置信息BT的指令,采用对应方式,立即或下次启动时运行试验配置信息Bnew和/或试验配置信息BT;
如果不需要,则只将试验配置信息BT以及试验配置信息BT是否立即运行的指令下发给所述移动端APP;所述移动端APP,采用新接收到试验配置信息BT,更新本地文件系统;再根据是否立即运行试验配置信息BT的指令,采用对应方式,立即或下次启动时运行试验配置信息BT;
采用以上方式,保证移动端APP的本地文件系统,存储最新的未下线的所有试验配置信息;
然后执行步骤3;
步骤2.5.4,AB测试平台向移动端APP下发强制刷新移动端APP本地内存的指令;
移动端APP接收到该指令时,立即强制刷新本地内存;同时删除本地文件系统中存储的对应的试验配置信息;
当本地内存被强制刷新后,移动端APP卸载当前的试验配置信息,终止对该试验配置信息对应试验的测试;并结束流程;
步骤3,在移动端APP根据从本地内存加载的试验配置信息,实现对移动端APP对应功能的更新优化后,对移动端APP用户行为特征进行监控,当监控到与本次试验配置信息相关的特定试验用户行为特征时,记录试验配置信息和特定试验用户行为特征的对应关系,生成特定试验用户行为日志,并将特定试验用户行为日志上传给AB测试平台。
本发明提供一种在线AB测试的实现方法,具有以下特点:
1)移动端APP启动时,读取本地文件系统,如果存在上次保存的试验配置信息,则一方面运行该试验配置信息,实现对移动端APP对应功能的更新优化,以继续对用户进行该项试验;
另一方面,由于本地文件系统保存的试验配置信息有可能为已失效的试验配置信息,例如,试验已下线,不再需要进行该项试验;因此,为避免移动端PP进行无效试验,移动端APP向AB测试平台发送该试验配置信息是否更新的验证,如果该项试验确定已下线,则AB测试平台向移动端APP下发强制刷新指令,移动端APP立即强制刷新本地内存,将对应试验卸载,恢复APP默认状态。如果该项试验仍然为试验中状态,则移动端APP将同样的试验配置信息再次下发到移动端APP,并存入移动端APP本地文件系统中,以方便移动端APP下次启动时,直接加载该试验配置信息。
采用以上方式的原因为:
由于用户经常存在频繁进入和退出移动端APP的情况,例如,用户在退出移动端APP后,只间隔1分钟,又再次进入到移动端APP。因此,移动端APP启动时,首先读取并运行本地文件系统的试验配置信息,及时对用户试验,克服由于网络延迟而需要AB测试平台下发试验配置信息再进行试验的问题,提高试验效率。
另外,在此种情况下,移动端APP启动并最初运行本地文件系统的试验配置信息,如试验配置信息A,此时移动端APP相应功能或界面已经为执行试验配置信息A后的功能或界面;然后,如果试验为在线状态,则AB测试平台下发的远程的试验配置信息仍然为试验配置信息A,因此,用户可在移动端APP继续进行相应试验,不会出现移动端APP界面突变的情况。
而传统方案中,如果移动端APP启动时运行默认功能或界面,在AB测试平台下发远程的试验配置信息后,移动端APP需要运行远程的试验配置信息,从而出现移动端APP界面突变的情况。
2)移动端APP和AB测试平台交互过程中,即:移动端APP向AB测试平台发起试验配置信息获取请求,AB测试平台进行用户流量分流计算后,再向移动端APP下发试验配置信息,在此过程中,公网环境传输和AB测试平台分流处理,是最耗时环节,最影响用户试验体验。
针对AB测试平台分流处理部分,本发明中,AB测试平台引入redis缓存,通过缓存存储分配映射表,因此,如果分配映射表中存储有需要向对应用户分配的试验配置信息,AB测试平台不需要再进行分流计算,可直接获取到需要下发给移动端APP的试验配置信息,从而提高了移动端APP获取试验配置信息的效率。经验证,最终实现分流处理请求99.5%的耗时在10ms以内。
针对公网环境传输耗时的问题,即使使用cdn动态加速,效果仍然有限,单次请求网络延迟在50ms-200ms之间,弱网环境下长达500ms-1000ms。为了最大限度降低网络延迟影响,本发明对移动端APP的sdk功能模块进行设计,即:sdk功能模块启动时,首先加载本地文件系统中存储的试验配置信息,而不需要等待AB测试平台通过公网下发,即提高了移动端APP试验效率,也降低了移动端APP出现画面突变的概率。
3):sdk功能模块启动时,首先加载本地文件系统中存储的试验配置信息,同时,还会向AB测试平台发送试验配置信息是否更新的请求。AB测试平台根据该试验是否下线,确定是否需要立即刷新AB测试平台的内存;以及是否需要向该AB测试平台下发新的试验配置信息,并且,通常情况下,如果下发新的试验配置信息,当前并不立即生效,而是需要移动端APP下次启动时生效,从而避免移动端APP的画面突变问题。
采用以上异步更新策略,可解决因为网络延迟导致移动端APP启动试验场景出现时,试验信息未到达而导致无法进组。同时也解决了AB测试画面突变问题。异步更新策略,也使试验的上线下线更加从容可控,即是否立即上线,是否立即下线等。
4)在移动端APP获取试验配置信息之后,正确标识用户是否进行过该试验。因为试验下发是异步的,所以需要正确识别用户是否真正做过对应的试验,以及用户进行试验的时间,并将相关日志及时报送AB测试平台,试验指标统计时才能准确地筛选出试验日志,避免将未做试验的用户或者常规行为日志混入试验指标统计中。
APP进入试验场景时,调用获取实验变量接口,优先从本地文件系统中加载已保存的试验配置信息到内存,再读取内存中的试验配置信息(试验组,试验变量),如果本地文件系统的试验配置信息为空,会异步远程获取(接入方可以自定义超时时间),获取到试验配置信息可以对应进行业务逻辑处理,sdk记录获取变量,用于区分用户所进试验组,所获取过的试验变量,可以正确标识该用户进行过试验的标识。正确区分用户打开APP的生命周期里,进入试验的时间,记录进入试验后的行为日志,并报送试验日志,供后续报告模块进行试验效果统计评估。
本发明提供一种在线AB测试的实现方法,具有以下优点:
本发明可有效提高AB测试性能和效率,保证用户试验环境稳定性,避免了用户试验组突变影响终端体验。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (2)
1.一种在线AB测试的实现方法,其特征在于,包括以下步骤:
步骤1,AB测试平台在线配置试验模式,包括:
步骤1.1,确定需要进行AB测试的n个试验;
步骤1.2,根据n个试验之间的相互关系,将n个试验划分到不同的试验层中,从而形成试验层级结构;
步骤1.3,对每个试验,表示为试验testi,圈定可进行试验testi的用户属性以及用户总流量;设试验testi需验证的优化方案包括m个,分别为:优化方案P1,P2,...,Pm;根据优化方案P1,P2,...,Pm的特征,对用户总流量进行比例划分,设定分配给优化方案P1,P2,...,Pm的流量比例分别为:Q1,Q2,...,Qm;
步骤2,移动端APP获取试验配置信息,包括:
步骤2.1,移动端APP嵌入sdk功能模块;
步骤2.2,每当移动端APP被启动时,同时启动sdk功能模块;
步骤2.3,sdk功能模块清空本地内存,然后读取本地文件系统,判断本地文件系统是否存在上次保存的试验配置信息,如果不存在,则执行步骤2.4;如果存在,则执行步骤2.5;
步骤2.4,sdk功能模块初始化流程:
步骤2.4.1,sdk功能模块预先绑定AB测试平台请求接口,sdk功能模块通过公网,向AB测试平台发送远程获取试验配置信息的请求消息;其中,所述远程获取试验配置信息的请求消息中,携带用户属性和用户ID;
步骤2.4.2,AB测试平台接收到所述远程获取试验配置信息的请求消息后,对所述用户属性进行分析,得到与所述用户属性对应且符合流量分配比例的优化方案,假设为优化方案Pj,则将优化方案Pj的试验变量信息打包为试验配置信息Bj,并通过公网,将试验配置信息Bj是及移动端APP是否立即运行试验配置信息Bj的指令下发给所述移动端APP;同时,向AB测试平台的本地缓存的分配映射表中,存入用户ID和试验配置信息Bj的对应关系;其中,当试验配置信息Bj下线不再需要进行AB测试时,从分配映射表中,删除用户ID和对应的试验配置信息Bj的对应关系;并且,AB测试平台的本地缓存存储的用户ID和试验配置信息Bj的对应关系,具有生命周期,当达到生命周期时,用户ID和试验配置信息Bj的对应关系被删除;
另外,AB测试平台还存储有试验状态表;所述试验状态表用于存储每个试验的试验上线时间和试验下线时间;通过对试验上线时间和试验下线时间进行分析,得到试验当前状态,包括:试验运行中状态和试验下线状态;
步骤2.4.3,所述移动端APP将接收到的试验配置信息Bj写入本地文件系统;然后,如果AB测试平台下发指令为立即运行试验配置信息Bj,则将本地文件系统中的试验配置信息Bj立即加载到本地内存;再执行步骤2.4.3;如果AB测试平台下发指令为下次启动时运行试验配置信息Bj,则所述移动端APP在下次启动时,再将本地文件系统中的试验配置信息Bj立即加载到本地内存;再执行步骤2.4.3;
步骤2.4.4,所述移动端APP从本地内存加载试验配置信息Bj,实现对移动端APP对应功能的更新优化;然后执行步骤3;
步骤2.5,试验配置信息是否更新流程,包括:
步骤2.5.1,将本地文件系统中的试验配置信息表示为:试验配置信息BT;sdk功能模块将本地文件系统中的试验配置信息BT加载到本地内存;
步骤2.5.2,所述移动端APP从本地内存加载试验配置信息BT,实现对移动端APP对应功能的更新优化;
同时,所述移动端APP调用sdk功能模块,sdk功能模块通过公网,向AB测试平台发送试验配置信息BT是否更新的请求消息;其中,所述试验配置信息是否更新的请求消息中,携带用户属性、用户ID和试验配置信息BT;
AB测试平台接收到试验配置信息是否更新的请求消息后,查找本地缓存的分配映射表,如果本地缓存存在试验配置信息BT,则进一步判断试验配置信息BT对应的试验,当前是否为试验运行中状态,如果是,表明试验配置信息BT未下线,当前仍需要进行AB测试,则执行步骤2.5.3;如果不是,表明试验配置信息BT对应的试验,为试验下线状态,则执行步骤2.5.4;
如果本地缓存不存在试验配置信息BT,则区分两种情况:查找试验状态表,如果试验当前为运行中状态,则重新根据用户属性和用户ID,得到试验配置信息,此时得到的试验配置信息必然与试验配置信息BT相同,然后执行步骤2.5.3;如果试验当前为下线状态,则执行步骤2.5.4;
步骤2.5.3,AB测试平台根据用户属性、用户ID和试验配置信息BT,确定是否需要同时向该用户分配属于不同试验层的试验配置信息;
如果需要,则新生成的试验配置信息表示为:试验配置信息Bnew;然后,将试验配置信息Bnew、试验配置信息BT、试验配置信息Bnew是否立即运行以及试验配置信息BT是否立即运行的指令下发给所述移动端APP;
所述移动端APP,采用新接收到的试验配置信息Bnew和试验配置信息BT,更新本地文件系统;再根据是否立即运行试验配置信息Bnew和/或试验配置信息BT的指令,采用对应方式,立即或下次启动时运行试验配置信息Bnew和/或试验配置信息BT;
如果不需要,则只将试验配置信息BT以及试验配置信息BT是否立即运行的指令下发给所述移动端APP;所述移动端APP,采用新接收到试验配置信息BT,更新本地文件系统;再根据是否立即运行试验配置信息BT的指令,采用对应方式,立即或下次启动时运行试验配置信息BT;
采用以上方式,保证移动端APP的本地文件系统,存储最新的未下线的所有试验配置信息;
然后执行步骤3;
步骤2.5.4,AB测试平台向移动端APP下发强制刷新移动端APP本地内存的指令;
移动端APP接收到该指令时,立即强制刷新本地内存;同时删除本地文件系统中存储的对应的试验配置信息;
当本地内存被强制刷新后,移动端APP卸载当前的试验配置信息,终止对该试验配置信息对应试验的测试;并结束流程;
步骤3,在移动端APP根据从本地内存加载的试验配置信息,实现对移动端APP对应功能的更新优化后,对移动端APP用户行为特征进行监控,当监控到与本次试验配置信息相关的特定试验用户行为特征时,记录试验配置信息和特定试验用户行为特征的对应关系,生成特定试验用户行为日志,并将特定试验用户行为日志上传给AB测试平台。
2.根据权利要求1所述的一种在线AB测试的实现方法,其特征在于,步骤1.2具体包括:
将相互影响的试验,划分到试验层级结构中的同一层,同一层中的各个试验,用户流量相互排斥,即:同一用户,不能够同时被分配同一层中的各个试验,只能够被分配同一层中的唯一试验;
将不会相互影响的试验,划分到试验层级结构中的不同层,不同层的各个试验,用户流量不排斥,可复用,即:同一用户,可分配不同层的试验;试验层之间流量正交,即:一份流量每穿过一个试验层,均会被随机打散重组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111386918.0A CN114090441B (zh) | 2021-11-22 | 2021-11-22 | 一种在线ab测试的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111386918.0A CN114090441B (zh) | 2021-11-22 | 2021-11-22 | 一种在线ab测试的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114090441A CN114090441A (zh) | 2022-02-25 |
CN114090441B true CN114090441B (zh) | 2024-05-28 |
Family
ID=80302749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111386918.0A Active CN114090441B (zh) | 2021-11-22 | 2021-11-22 | 一种在线ab测试的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090441B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737143A (zh) * | 2020-07-17 | 2020-10-02 | 北京热云科技有限公司 | 一种网页ab测试故障排查方法及系统 |
CN112910867A (zh) * | 2021-01-21 | 2021-06-04 | 四三九九网络股份有限公司 | 一种受信任的设备访问应用的双重验证方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9269094B2 (en) * | 2012-09-04 | 2016-02-23 | EngageClick, Inc. | System and method for creating and implementing scalable and effective surveys and testing methods with human interaction proof (HIP) capabilities |
-
2021
- 2021-11-22 CN CN202111386918.0A patent/CN114090441B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737143A (zh) * | 2020-07-17 | 2020-10-02 | 北京热云科技有限公司 | 一种网页ab测试故障排查方法及系统 |
CN112910867A (zh) * | 2021-01-21 | 2021-06-04 | 四三九九网络股份有限公司 | 一种受信任的设备访问应用的双重验证方法 |
Non-Patent Citations (1)
Title |
---|
基于嵌入式Linux的输电线路杆塔倾斜度自动化测试系统的设计与实现;王威;岳灵平;杨吉;郑鹏超;;计算机测量与控制;20160925(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114090441A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106610854A (zh) | 一种模型更新方法及装置 | |
CN106357426A (zh) | 一种基于工业云的大规模分布式智能数据采集系统及方法 | |
CN105512044B (zh) | 用于关键字驱动测试的对象库的更新方法及系统 | |
CN103902542B (zh) | 一种测试环境中数据库的运维方法及系统 | |
CN105279087A (zh) | 应用在测试软件中的测试方法和测试系统 | |
CN108737213B (zh) | 一种基于fpga的高并行大吞吐量渗透测试系统及方法 | |
CN109905492B (zh) | 基于分布式模块化数据中心的安全运营管理系统及方法 | |
CN115328752B (zh) | 一种用于Kubernetes控制面测试的集群模拟方法及系统 | |
CN112667362A (zh) | Kubernetes上部署Kubernetes虚拟机集群的方法与系统 | |
CN108052385A (zh) | 一种容器管理方法、系统、设备及计算机存储介质 | |
CN101888318A (zh) | 一种通信系统性能指标测试的系统和方法 | |
CN115658166A (zh) | 集中管理和容易使用应用程序配置的系统、方法及介质 | |
CN104281488B (zh) | 服务器引擎的实现方法和系统 | |
CN110377327A (zh) | 生产环境灰度发布监控方法、设备、存储介质及装置 | |
CN114090441B (zh) | 一种在线ab测试的实现方法 | |
CN108021431A (zh) | 基于Web数据交互管理Hive的方法及其系统 | |
CN101266566B (zh) | 多测试场景自动调度系统和方法 | |
CN115129574A (zh) | 一种代码测试方法和装置 | |
CN110471767B (zh) | 一种设备的调度方法 | |
CN106254534B (zh) | 基于混合架构的分布式集群监控代理及方法 | |
CN116737560A (zh) | 基于智能导控的智慧训练系统 | |
CN110727599A (zh) | 测试环境配置及更新方法 | |
CN114116343A (zh) | 一种设备测试方法、装置、电子设备及存储介质 | |
CN114490073A (zh) | 电子地图运维方法、电子地图数据使用方法及服务系统 | |
CN114650211A (zh) | 故障修复方法、装置、电子设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |