CN112269743B - 一种a/b测试方法及装置 - Google Patents
一种a/b测试方法及装置 Download PDFInfo
- Publication number
- CN112269743B CN112269743B CN202011190373.1A CN202011190373A CN112269743B CN 112269743 B CN112269743 B CN 112269743B CN 202011190373 A CN202011190373 A CN 202011190373A CN 112269743 B CN112269743 B CN 112269743B
- Authority
- CN
- China
- Prior art keywords
- experiment
- test
- target
- information
- identifier
- 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
- 238000010998 test method Methods 0.000 title claims abstract description 8
- 238000002474 experimental method Methods 0.000 claims abstract description 216
- 238000012360 testing method Methods 0.000 claims abstract description 155
- 238000000034 method Methods 0.000 claims description 22
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
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
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/21—Flow control; Congestion control using leaky-bucket
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种A/B测试方法及装置,应用于A/B测试网关,通过预先配置多个实验号对应的实验信息以及代理服务标识、接口URL与实验号之间的绑定关系,A/B测试网关在接收到用户终端请求后,可以根据用户终端请求中的代理服务标识和接口URL为用户终端请求分配目标实验号,并根据目标实验号对应的实验信息,确定用户分组对应的目标测试版本号,从而将目标实验号和目标测试版本号添加到用户终端请求中,并将其发送到相应的代理服务端,由于A/B测试网关自带流量分发特性,不会产生二次流量,实现对用户终端请求在不同实验间进行灵活分流,在同一测试周期内实现多层实验,且由于每个实验号分别配置不同的实验信息,实验间互不干扰,提高了A/B测试效率。
Description
技术领域
本发明涉及互联网技术领域,更具体的,涉及一种A/B测试方法及装置。
背景技术
A/B测试是为某个测试功能制作两个(A/B)或多个(A/B/n)软件版本,在同一时间维度,分别让组成成分相同或相似的访客群组随机的访问这些软件版本,通过收集各群组的用户体验数据和业务数据,最后分析、评估出最好的软件版本,正式采用。
现有的A/B测试方法,公司通过提供接口,由业务方获取用户数据然后调用接口的方式进行,这样会将原有流量放大一倍,对业务入侵比较明显,支持的测试场景较为单一,导致多业务方需要开发出很多分流系统,针对不同场景测试难以复用。
发明内容
有鉴于此,本发明提供了一种A/B测试方法及装置,网关集成A/B测试实现分流,不会侵入业务,提高了A/B测试效率。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种A/B测试方法,应用于A/B测试网关,所述方法包括:
定时从A/B测试管理后台加载实验配置信息,所述实验配置信息包括代理服务标识、接口URL与实验号之间的绑定关系以及每个实验号对应的实验信息;
根据所述实验配置信息构建分层分流模型,所述分层分流模型包括至少一个域,所述至少一个域根据预设比例共享流量,域中不同层共享该域流量,域中每一层与实验号一一对应,每个实验号对应多个用户分组;
在接收到用户终端请求的情况下,对所述用户终端请求进行解析,得到A/B测试的公参信息,所述公参信息包括终端设备标识、代理服务标识和接口URL;
根据所述分层分流模型中代理服务标识、接口URL与实验号之间的绑定关系,确定所述用户终端请求中的代理服务标识和接口URL所对应的目标实验号;
利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号;
将所述目标实验号和所述目标测试版本号添加到所述用户终端请求中,并将其发送到相应的代理服务端。
可选的,所述实验配置信息还包括白名单,所述白名单存储着终端设备标识与实验号之间的对应关系;在对所述用户终端请求进行解析,得到A/B测试的公参信息之后,所述方法还包括:
判断所述终端设备标识是否在所述白名单中;
若所述终端设备标识在所述白名单中,根据终端设备标识与实验号之间的对应关系确定所述终端设备标识对应的目标实验号;
若所述终端设备标识不在所述白名单中,执行所述根据所述分层分流模型中代理服务标识、接口URL与实验号之间的绑定关系,确定所述用户终端请求中的代理服务标识和接口URL所对应的目标实验号。
可选的,所述实验配置信息还包括定向特征信息和兜底版本号,所述定向特征信息包括APP源、网络运营商、地域和终端类型;所述公参信息还包括APP源、终端IP和终端类型;所述方法还包括:
判断所述公参信息与所述定向特征信息是否匹配;
若匹配,执行所述利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号;
若不匹配,将所述兜底版本号确定为目标测试版本号。
可选的,所述利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号,包括:
利用随机分桶算法,根据所述目标实验号对应的实验信息中的分桶精度,计算所述终端设备标识对应的用户分组标识;
根据所述目标实验号对应的实验信息中的每个测试版本号对应的流量配比,以及用户分组标识与流量配比之间的对应关系,确定所述用户分组标识对应的目标测试版本号。
可选的,所述定时从A/B测试管理后台加载实验配置信息,包括:
构建map副本;
将从A/B测试管理后台加载的实验配置信息存储在所述map副本中;
将内存中的原map替换为所述map副本。
一种A/B测试装置,应用于A/B测试网关,所述装置包括:
配置信息加载单元,用于定时从A/B测试管理后台加载实验配置信息,所述实验配置信息包括代理服务标识、接口URL与实验号之间的绑定关系以及每个实验号对应的实验信息;
分层分流模型构建单元,用于根据所述实验配置信息构建分层分流模型,所述分层分流模型包括至少一个域,所述至少一个域根据预设比例共享流量,域中不同层共享该域流量,域中每一层与实验号一一对应,每个实验号对应多个用户分组;
终端请求解析单元,用于在接收到用户终端请求的情况下,对所述用户终端请求进行解析,得到A/B测试的公参信息,所述公参信息包括终端设备标识、代理服务标识和接口URL;
实验号确定单元,用于根据所述分层分流模型中代理服务标识、接口URL与实验号之间的绑定关系,确定所述用户终端请求中的代理服务标识和接口URL所对应的目标实验号;
测试版本确定单元,用于利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号;
终端请求转发单元,用于将所述目标实验号和所述目标测试版本号添加到所述用户终端请求中,并将其发送到相应的代理服务端。
可选的,所述实验配置信息还包括白名单,所述白名单存储着终端设备标识与实验号之间的对应关系;所述装置还包括:
白名单匹配单元,用于判断所述终端设备标识是否在所述白名单中;若所述终端设备标识在所述白名单中,根据终端设备标识与实验号之间的对应关系确定所述终端设备标识对应的目标实验号;若所述终端设备标识不在所述白名单中,触发所述实验号确定单元。
可选的,所述实验配置信息还包括定向特征信息和兜底版本号,所述定向特征信息包括APP源、网络运营商、地域和终端类型;所述公参信息还包括APP源、终端IP和终端类型;所述装置还包括:
定向特征匹配单元,用于判断所述公参信息与所述定向特征信息是否匹配;若匹配,触发所述测试版本确定单元;若不匹配,将所述兜底版本号确定为目标测试版本号。
可选的,所述测试版本确定单元,具体用于:
利用随机分桶算法,根据所述目标实验号对应的实验信息中的分桶精度,计算所述终端设备标识对应的用户分组标识;
根据所述目标实验号对应的实验信息中的每个测试版本号对应的流量配比,以及用户分组标识与流量配比之间的对应关系,确定所述用户分组标识对应的目标测试版本号。
可选的,所述配置信息加载单元,具体用于:
构建map副本;
将从A/B测试管理后台加载的实验配置信息存储在所述map副本中;
将内存中的原map替换为所述map副本。
相对于现有技术,本发明的有益效果如下:
本发明公开的一种A/B测试方法,应用于A/B测试网关,通过预先配置多个实验号对应的实验信息以及代理服务标识、接口URL与实验号之间的绑定关系,根据实验配置信息构建分层分流模型,A/B测试网关在接收到用户终端请求后,可以根据用户终端请求中的代理服务标识和接口URL为用户终端请求分配目标实验号,并根据预先配置分层分流模型中的目标实验号对应的实验信息,确定用户分组对应的目标测试版本号,从而将目标实验号和目标测试版本号添加到用户终端请求中,并将其发送到相应的代理服务端,由于A/B测试网关自带流量分发特性,不会产生二次流量,实现对用户终端请求在不同实验间进行灵活分流,在同一测试周期内实现多层实验,且由于每个实验号分别配置不同的实验信息,实验间互不干扰,提高了A/B测试效率。对业务方来说,只需要提供不同测试版本的服务即可,A/B测试不会侵入到业务中,提高了A/B测试的可复用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种A/B测试方法的流程示意图;
图2为本发明实施例公开的一种分层分流模型的结构示意图;
图3为本发明实施例公开的一种白名单配置页面示意图;
图4为本发明实施例公开的另一种白名单配置页面示意图;
图5为本发明实施例公开的一种A/B测试实验信息配置页面示意图;
图6为本发明实施例公开的一种A/B测试装置的结构示意图;
图7为本发明实施例公开的一种A/B测试系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例公开了一种A/B测试方法,应用于A/B测试网关,通过Http或者GRPC协议来传递分流信息,A/B测试分流系统工作在业务上游,并且由于A/B测试网关自带流量分发特性,不会产生二次流量。一些业务特征,如终端类型、版本、地域、运营商的筛选能力,统一由A/B测试网关提供。对业务方而言,只需要提供差异化的服务即可,不会侵入到业务当中。请参阅图1,该方法具体包括以下步骤:
S101:定时从A/B测试管理后台加载实验配置信息,所述实验配置信息包括代理服务标识、接口URL与实验号之间的绑定关系以及每个实验号对应的实验信息;
A/B测试管理后台预先生成实验配置信息,该实验配置信息至少包括代理服务标识、接口URL与实验号之间的绑定关系以及每个实验号对应的实验信息。实验信息包括实验名称、测试版本、实验策略、实验描述等信息,其中,实验策略包括分桶精度、策略ID、策略名称、流量比例等信息。
进一步,A/B测试网关在本地构建map副本,将从A/B测试管理后台加载的实验配置信息存储在该map副本中,将内存中的原map替换为该map副本,这在内存中,只是一个变量的引用变更,这种无锁化操作能避免在多线程操作中并发读写引发的并发安全问题。
S102:根据所述实验配置信息构建分层分流模型,所述分层分流模型包括至少一个域,所述至少一个域根据预设比例共享流量,域中不同层共享该域流量,域中每一层与实验号一一对应,每个实验号对应多个用户分组;
分层分流模型如图2所示,分层分流模型包括至少一个域,如图2中的域1和域2,不同域根据预设比例共享100%流量,如图2中域1分流了70%的流量,域2分流了30%的流量。域中不同层共享该域流量,如图2中域1包括A1层、A2层和A3层,具体可以为UI层、推荐算法层、广告算法层、开屏层、首屏层等。不同层之间,每次进入流量会重新打散,保证互相不影响。域中每一层与实验号一一对应,即实验相互之间不存在干扰。每个实验号对应多个用户分组,每个层中使用不同的随机分桶算法,保证流量在不同层中是正交的,也就是说,一个用户在每个层应该分到哪个用户分组中,是相互独立不相关的。
S103:在接收到用户终端请求的情况下,对所述用户终端请求进行解析,得到A/B测试的公参信息,所述公参信息包括终端设备标识、代理服务标识和接口URL;
S104:根据所述分层分流模型中代理服务标识、接口URL与实验号之间的绑定关系,确定所述用户终端请求中的代理服务标识和接口URL所对应的目标实验号;
S105:利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号;
首先根据用户终端请求中的代理服务标识和接口URL所对应的目标实验号,确定目标实验号的实验信息中的随机种子、分桶精度、分组ID、流量配比、兜底ID、实验定向流量特征信息等。
然后利用Hash算法对终端设备标识和随机种子进行hash计算,得到一个hash值,然后通过Jump(流量分桶精度)算法得到一个score值,最后判定score值在流量配比的哪个区间,即可得到分组ID,即得到终端设备标识对应的用户分组。
最后,根据目标实验号对应的实验信息中的每个测试版本号对应的流量配比,以及用户分组标识与流量配比之间的对应关系,确定用户分组标识对应的目标测试版本号。
S106:将所述目标实验号和所述目标测试版本号添加到所述用户终端请求中,并将其发送到相应的代理服务端。
优选的,A/B测试管理后台生成的实验配置信息还包括白名单,A/B测试白名单的配置界面如图3所示,白名单存储着终端设备标识与实验号之间的对应关系,也可以存储用户标识与实验号之间的对应关系,如图4所示的A/B测试白名单的配置界面,还可以存储用户IP地址与实验号之间的对应关系,用于强制使相关用户进行某个实验。
具体的,在对用户终端请求进行解析,得到A/B测试的公参信息之后,判断终端设备标识是否在白名单中;若终端设备标识在白名单中,根据终端设备标识与实验号之间的对应关系确定终端设备标识对应的目标实验号;若终端设备标识不在白名单中,执行上述S104:根据分层分流模型中代理服务标识、接口URL与实验号之间的绑定关系,确定用户终端请求中的代理服务标识和接口URL所对应的目标实验号。
进一步,请参阅图5,A/B测试管理后台生成的实验配置信息中每个实验号对应的实验信息中包括实验名称、定向特征信息、实验策略、实验描述等信息,其中,定向特征信息用于对定向流量特征用户进行配置,定向特征信息包括APP源、网络运营商、地域和终端类型等信息,通过定向特征信息筛选出定向流量特征用户。实验策略包括分桶精度、策略ID(测试版本号)、策略名称(测试版本名称)、流量比例、以及是否作为兜底策略(兜底版本号)等信息。
具体的,在对用户终端请求进行解析,得到A/B测试的公参信息之后,判断该公参信息与定向特征信息是否匹配;若匹配,执行上述S105:利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号;若不匹配,将所述兜底版本号确定为目标测试版本号。
可见,本实施例公开的一种A/B测试方法,应用于A/B测试网关,通过预先配置多个实验号对应的实验信息以及代理服务标识、接口URL与实验号之间的绑定关系,根据实验配置信息构建分层分流模型,A/B测试网关在接收到用户终端请求后,可以根据用户终端请求中的代理服务标识和接口URL为用户终端请求分配目标实验号,并根据预先配置分层分流模型中的目标实验号对应的实验信息,确定用户分组对应的目标测试版本号,从而将目标实验号和目标测试版本号添加到用户终端请求中,并将其发送到相应的代理服务端,由于A/B测试网关自带流量分发特性,不会产生二次流量,实现对用户终端请求在不同实验间进行灵活分流,在同一测试周期内实现多层实验,且由于每个实验号分别配置不同的实验信息,实验间互不干扰,提高了A/B测试效率。对业务方来说,只需要提供不同测试版本的服务即可,A/B测试不会侵入到业务中,提高了A/B测试的可复用性。
基于上述实施例公开的一种A/B测试方法,本实施例对应公开了一种A/B测试装置,应用于A/B测试网关,请参阅图6,所述装置包括:
配置信息加载单元501,用于定时从A/B测试管理后台加载实验配置信息,所述实验配置信息包括代理服务标识、接口URL与实验号之间的绑定关系以及每个实验号对应的实验信息;
分层分流模型构建单元502,用于根据所述实验配置信息构建分层分流模型,所述分层分流模型包括至少一个域,所述至少一个域根据预设比例共享流量,域中不同层共享该域流量,域中每一层与实验号一一对应,每个实验号对应多个用户分组;
终端请求解析单元503,用于在接收到用户终端请求的情况下,对所述用户终端请求进行解析,得到A/B测试的公参信息,所述公参信息包括终端设备标识、代理服务标识和接口URL;
实验号确定单元504,用于根据所述分层分流模型中代理服务标识、接口URL与实验号之间的绑定关系,确定所述用户终端请求中的代理服务标识和接口URL所对应的目标实验号;
测试版本确定单元505,用于利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号;
终端请求转发单元506,用于将所述目标实验号和所述目标测试版本号添加到所述用户终端请求中,并将其发送到相应的代理服务端。
可选的,所述实验配置信息还包括白名单,所述白名单存储着终端设备标识与实验号之间的对应关系;所述装置还包括:
白名单匹配单元,用于判断所述终端设备标识是否在所述白名单中;若所述终端设备标识在所述白名单中,根据终端设备标识与实验号之间的对应关系确定所述终端设备标识对应的目标实验号;若所述终端设备标识不在所述白名单中,触发所述实验号确定单元504。
可选的,所述实验配置信息还包括定向特征信息和兜底版本号,所述定向特征信息包括APP源、网络运营商、地域和终端类型;所述公参信息还包括APP源、终端IP和终端类型;所述装置还包括:
定向特征匹配单元,用于判断所述公参信息与所述定向特征信息是否匹配;若匹配,触发所述测试版本确定单元505;若不匹配,将所述兜底版本号确定为目标测试版本号。
可选的,所述测试版本确定单元505,具体用于:
利用随机分桶算法,根据所述目标实验号对应的实验信息中的分桶精度,计算所述终端设备标识对应的用户分组标识;
根据所述目标实验号对应的实验信息中的每个测试版本号对应的流量配比,以及用户分组标识与流量配比之间的对应关系,确定所述用户分组标识对应的目标测试版本号。
可选的,所述配置信息加载单元501,具体用于:
构建map副本;
将从A/B测试管理后台加载的实验配置信息存储在所述map副本中;
将内存中的原map替换为所述map副本。
本实施例公开的一种A/B测试装置,应用于A/B测试网关,通过预先配置多个实验号对应的实验信息以及代理服务标识、接口URL与实验号之间的绑定关系,根据实验配置信息构建分层分流模型,A/B测试网关在接收到用户终端请求后,可以根据用户终端请求中的代理服务标识和接口URL为用户终端请求分配目标实验号,并根据预先配置分层分流模型中的目标实验号对应的实验信息,确定用户分组对应的目标测试版本号,从而将目标实验号和目标测试版本号添加到用户终端请求中,并将其发送到相应的代理服务端,由于A/B测试网关自带流量分发特性,不会产生二次流量,实现对用户终端请求在不同实验间进行灵活分流,在同一测试周期内实现多层实验,且由于每个实验号分别配置不同的实验信息,实验间互不干扰,提高了A/B测试效率。对业务方来说,只需要提供不同测试版本的服务即可,A/B测试不会侵入到业务中,提高了A/B测试的可复用性。
本实施例还公开了一种A/B测试系统,请参阅图7,A/B测试系统包括展示层、网关层、业务层和存储层,其中,展示层为终端,包括App、Mac、PC、Web、小程序等。网关层为业务服务统一入口,提供统一业务服务注册发现、接口路由、限流、基础鉴权、A/B测集成等功能。业务层是不同业务的微服务。存储层提供DB、cache、HDFS等存储和检索能力。
本实施例公开的一种A/B测试系统能够为业务服务提供差异化A/B测试服务,满足绝大部分实验场景,提供科学的计算能力、高性能、高稳定的服务,在满足业务实验要求同时,尽可能的避免业务服务交叉实验相互干扰,减少业务入侵,降低接入成本,达到高性能、高可用服务标准。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
上述各个实施例之间可任意组合,对所公开的实施例的上述说明,本说明书中各实施例中记载的特征可以相互替换或者组合,使本领域专业技术人员能够实现或使用本申请。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种A/B测试方法,其特征在于,应用于A/B测试网关,所述方法包括:
定时从A/B测试管理后台加载实验配置信息,所述实验配置信息包括代理服务标识、接口URL与实验号之间的绑定关系以及每个实验号对应的实验信息;
根据所述实验配置信息构建分层分流模型,所述分层分流模型包括至少一个域,所述至少一个域根据预设比例共享流量,域中不同层共享该域流量,域中每一层与实验号一一对应,每个实验号对应多个用户分组;
在接收到用户终端请求的情况下,对所述用户终端请求进行解析,得到A/B测试的公参信息,所述公参信息包括终端设备标识、代理服务标识和接口URL;
根据所述分层分流模型中代理服务标识、接口URL与实验号之间的绑定关系,确定所述用户终端请求中的代理服务标识和接口URL所对应的目标实验号;
利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号;
将所述目标实验号和所述目标测试版本号添加到所述用户终端请求中,并将其发送到相应的代理服务端。
2.根据权利要求1所述的方法,其特征在于,所述实验配置信息还包括白名单,所述白名单存储着终端设备标识与实验号之间的对应关系;在对所述用户终端请求进行解析,得到A/B测试的公参信息之后,所述方法还包括:
判断所述终端设备标识是否在所述白名单中;
若所述终端设备标识在所述白名单中,根据终端设备标识与实验号之间的对应关系确定所述终端设备标识对应的目标实验号;
若所述终端设备标识不在所述白名单中,执行所述根据所述分层分流模型中代理服务标识、接口URL与实验号之间的绑定关系,确定所述用户终端请求中的代理服务标识和接口URL所对应的目标实验号。
3.根据权利要求2所述的方法,其特征在于,所述实验配置信息还包括定向特征信息和兜底版本号,所述定向特征信息包括APP源、网络运营商、地域和终端类型;所述公参信息还包括APP源、终端IP和终端类型;所述方法还包括:
判断所述公参信息与所述定向特征信息是否匹配;
若匹配,执行所述利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号;
若不匹配,将所述兜底版本号确定为目标测试版本号。
4.根据权利要求1所述的方法,其特征在于,所述利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号,包括:
利用随机分桶算法,根据所述目标实验号对应的实验信息中的分桶精度,计算所述终端设备标识对应的用户分组标识;
根据所述目标实验号对应的实验信息中的每个测试版本号对应的流量配比,以及用户分组标识与流量配比之间的对应关系,确定所述用户分组标识对应的目标测试版本号。
5.根据权利要求1所述的方法,其特征在于,所述定时从A/B测试管理后台加载实验配置信息,包括:
构建map副本;
将从A/B测试管理后台加载的实验配置信息存储在所述map副本中;
将内存中的原map替换为所述map副本。
6.一种A/B测试装置,其特征在于,应用于A/B测试网关,所述装置包括:
配置信息加载单元,用于定时从A/B测试管理后台加载实验配置信息,所述实验配置信息包括代理服务标识、接口URL与实验号之间的绑定关系以及每个实验号对应的实验信息;
分层分流模型构建单元,用于根据所述实验配置信息构建分层分流模型,所述分层分流模型包括至少一个域,所述至少一个域根据预设比例共享流量,域中不同层共享该域流量,域中每一层与实验号一一对应,每个实验号对应多个用户分组;
终端请求解析单元,用于在接收到用户终端请求的情况下,对所述用户终端请求进行解析,得到A/B测试的公参信息,所述公参信息包括终端设备标识、代理服务标识和接口URL;
实验号确定单元,用于根据所述分层分流模型中代理服务标识、接口URL与实验号之间的绑定关系,确定所述用户终端请求中的代理服务标识和接口URL所对应的目标实验号;
测试版本确定单元,用于利用随机分桶算法,计算所述终端设备标识对应的用户分组,并根据所述目标实验号对应的实验信息确定所述用户分组对应的目标测试版本号;
终端请求转发单元,用于将所述目标实验号和所述目标测试版本号添加到所述用户终端请求中,并将其发送到相应的代理服务端。
7.根据权利要求6所述的装置,其特征在于,所述实验配置信息还包括白名单,所述白名单存储着终端设备标识与实验号之间的对应关系;所述装置还包括:
白名单匹配单元,用于判断所述终端设备标识是否在所述白名单中;若所述终端设备标识在所述白名单中,根据终端设备标识与实验号之间的对应关系确定所述终端设备标识对应的目标实验号;若所述终端设备标识不在所述白名单中,触发所述实验号确定单元。
8.根据权利要求7所述的装置,其特征在于,所述实验配置信息还包括定向特征信息和兜底版本号,所述定向特征信息包括APP源、网络运营商、地域和终端类型;所述公参信息还包括APP源、终端IP和终端类型;所述装置还包括:
定向特征匹配单元,用于判断所述公参信息与所述定向特征信息是否匹配;若匹配,触发所述测试版本确定单元;若不匹配,将所述兜底版本号确定为目标测试版本号。
9.根据权利要求6所述的装置,其特征在于,所述测试版本确定单元,具体用于:
利用随机分桶算法,根据所述目标实验号对应的实验信息中的分桶精度,计算所述终端设备标识对应的用户分组标识;
根据所述目标实验号对应的实验信息中的每个测试版本号对应的流量配比,以及用户分组标识与流量配比之间的对应关系,确定所述用户分组标识对应的目标测试版本号。
10.根据权利要求6所述的装置,其特征在于,所述配置信息加载单元,具体用于:
构建map副本;
将从A/B测试管理后台加载的实验配置信息存储在所述map副本中;
将内存中的原map替换为所述map副本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011190373.1A CN112269743B (zh) | 2020-10-30 | 2020-10-30 | 一种a/b测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011190373.1A CN112269743B (zh) | 2020-10-30 | 2020-10-30 | 一种a/b测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112269743A CN112269743A (zh) | 2021-01-26 |
CN112269743B true CN112269743B (zh) | 2022-04-12 |
Family
ID=74345655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011190373.1A Active CN112269743B (zh) | 2020-10-30 | 2020-10-30 | 一种a/b测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269743B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860554A (zh) * | 2021-02-07 | 2021-05-28 | 杭州弧途科技有限公司 | 基于多种算法策略分桶测试的兼职岗位推荐系统 |
CN113051162B (zh) * | 2021-03-22 | 2024-08-16 | 京东科技控股股份有限公司 | 实验测试方法、装置、计算机系统及可读存储介质 |
CN113064820B (zh) * | 2021-03-26 | 2022-09-16 | 深圳依时货拉拉科技有限公司 | 更新a/b实验sdk的方法、设备和计算机可读存储介质 |
CN113064818B (zh) * | 2021-03-26 | 2022-12-27 | 深圳依时货拉拉科技有限公司 | 解析a/b实验数据的方法、设备和计算机可读存储介质 |
CN113176992B (zh) * | 2021-04-08 | 2022-02-15 | 深圳依时货拉拉科技有限公司 | A/b实验分流方法、装置和计算机可读存储介质 |
CN113965522B (zh) * | 2021-11-11 | 2024-04-05 | 湖南快乐阳光互动娱乐传媒有限公司 | 行为日志分组方法、装置、存储介质和设备 |
CN114095410B (zh) * | 2021-11-11 | 2023-10-31 | 贝壳找房(北京)科技有限公司 | 一种测试实验的分流方法、分流装置和存储介质 |
CN116016361A (zh) * | 2022-12-12 | 2023-04-25 | 深圳依时货拉拉科技有限公司 | A/b实验分流方法、装置、存储介质和计算机设备 |
CN117033946B (zh) * | 2023-09-21 | 2023-12-22 | 深圳依时货拉拉科技有限公司 | Ab实验方法、装置、计算机设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281611A (zh) * | 2013-07-08 | 2015-01-14 | 阿里巴巴集团控股有限公司 | 网站测试系统中的用户流量分配方法及装置 |
CN106856439A (zh) * | 2016-12-07 | 2017-06-16 | 武汉斗鱼网络科技有限公司 | 一种方案测试的方法及服务器 |
WO2018103214A1 (zh) * | 2016-12-07 | 2018-06-14 | 武汉斗鱼网络科技有限公司 | 一种方案测试的方法及服务器 |
CN109947643A (zh) * | 2019-03-01 | 2019-06-28 | 广州华多网络科技有限公司 | 一种基于a/b测试的实验方案的配置方法、装置及设备 |
CN111522735A (zh) * | 2020-03-18 | 2020-08-11 | 北京健康之家科技有限公司 | 测试实验的分流方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161825A1 (en) * | 2009-12-31 | 2011-06-30 | Tierney Chris | Systems and methods for testing multiple page versions across multiple applications |
-
2020
- 2020-10-30 CN CN202011190373.1A patent/CN112269743B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281611A (zh) * | 2013-07-08 | 2015-01-14 | 阿里巴巴集团控股有限公司 | 网站测试系统中的用户流量分配方法及装置 |
CN106856439A (zh) * | 2016-12-07 | 2017-06-16 | 武汉斗鱼网络科技有限公司 | 一种方案测试的方法及服务器 |
WO2018103214A1 (zh) * | 2016-12-07 | 2018-06-14 | 武汉斗鱼网络科技有限公司 | 一种方案测试的方法及服务器 |
CN109947643A (zh) * | 2019-03-01 | 2019-06-28 | 广州华多网络科技有限公司 | 一种基于a/b测试的实验方案的配置方法、装置及设备 |
CN111522735A (zh) * | 2020-03-18 | 2020-08-11 | 北京健康之家科技有限公司 | 测试实验的分流方法及装置 |
Non-Patent Citations (1)
Title |
---|
一文搞懂AB testing的分层分流;Vincent 任;《http://www.woshipm.com/pd/1080730.html/comment-page-1》;20180702;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112269743A (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112269743B (zh) | 一种a/b测试方法及装置 | |
US8065417B1 (en) | Service provider registration by a content broker | |
US10263958B2 (en) | Internet mediation | |
KR101420548B1 (ko) | 오버레이 네트워크에서 통신 피어들의 선택을 지원하는 방법 및 시스템 | |
US10104092B2 (en) | System and method for parallel secure content bootstrapping in content-centric networks | |
CN110601995B (zh) | 在区块链网络中控制流量的方法、装置、存储介质和设备 | |
US10447530B2 (en) | Device metering | |
CN110599142A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
US12052178B2 (en) | Systems and methods for determining a policy that allocates traffic associated with a network protocol type to a network slice | |
WO2021057369A1 (zh) | HttpDNS调度方法、装置、介质及设备 | |
Kong et al. | The evaluation of index poisoning in bittorrent | |
Nwebonyi et al. | Reputation based approach for improved fairness and robustness in P2P protocols | |
US10116535B1 (en) | Monitoring internet usage on home networks of panelist users using a measurement device | |
CN114465791B (zh) | 网管设备中白名单的建立方法、装置、存储介质及处理器 | |
CN110598452B (zh) | 基于区块链的证据信息处理方法、装置、存储介质和设备 | |
CN110708309A (zh) | 反爬虫系统及方法 | |
CN112231566B (zh) | 信息推送方法、装置、系统和可读存储介质 | |
CN115603938A (zh) | 攻击防护方法、终端设备及计算机可读存储介质 | |
CN114666841A (zh) | 一种定向流量的免流方法及免流系统 | |
US7945667B2 (en) | Method and apparatus for inferring the presence of static internet protocol address allocations | |
Picone et al. | Combining geo‐referencing and network coding for distributed large‐scale information management | |
WO2024079164A1 (fr) | Designation d'une entite de confiance dans un espace de donnees | |
CN107948343A (zh) | 一种调度区域的确定方法及系统 | |
CN118827612A (zh) | 业务请求调度方法、电子设备、存储介质及程序产品 | |
CN117113364A (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 | ||
GR01 | Patent grant |