CN113064818A - 解析a/b实验数据的方法、设备和计算机可读存储介质 - Google Patents
解析a/b实验数据的方法、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN113064818A CN113064818A CN202110326517.XA CN202110326517A CN113064818A CN 113064818 A CN113064818 A CN 113064818A CN 202110326517 A CN202110326517 A CN 202110326517A CN 113064818 A CN113064818 A CN 113064818A
- Authority
- CN
- China
- Prior art keywords
- experiment
- type
- configuration statement
- current flow
- experiment configuration
- 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.)
- Granted
Links
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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
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)
- Stored Programmes (AREA)
Abstract
本申请涉及计算机软件领域,提供了解析A/B实验数据的方法、装置、设备和计算机可读存储介质,以满足对标签的多样化需求和降低A/B测试配置平台一方的成本。所述方法包括:通过A/B测试配置平台接收A/B实验用户自定义的标签及其相关属性;校验根据A/B实验用户自定义的标签及其相关属性生成的统一格式的A/B实验配置语句;若校验通过,则根据标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于校验通过的A/B实验配置语句的解析器对当前流量和校验通过的A/B实验配置语句解析;根据解析器返回的结果,确定当前流量是否为A/B实验需要的流量。本申请的技术方案既满足了A/B实验配置用户对标签的多样化需求,又降低了A/B测试配置平台一方的维护成本。
Description
技术领域
本发明涉及计算机软件领域,特别涉及一种解析A/B实验数据的方法、设备和计算机可读存储介质。
背景技术
A/B测试(A/B Test)又称A/B实验,其基本原理是为Web(网页)或App(应用程序)的界面或流程制作两个(A/B)或多个(A/B/n)版本。在同一时间维度,分别让属性相同或相似的访客群组随机访问这些版本,收集各群组的用户体验数据和业务数据,最后分析评估出最佳版本正式采用。
大致而言,A/B实验数据包括A/B实验涉及的流量和配置中的数据。A/B实验涉及的和配置即A/B实验配置,是一种事先对即将进行的实验设定多个分组,并且通过特定的标签属性,限制该实验只接收符合该标签属性的流量,对该流量进行分流,进而观察比较多个分组的不同点。现有技术在解析A/B实验数据时,是将流量中标签的属性解析出来,然后,将这些标签的属性与A/B实验配置平台提供的标签的属性匹配,匹配成功,则流量通过,分配至相应的实验组。
然而,上述现有解析A/B实验数据的方法中存在的问题在于,现实场景中流量的标签是多种多样的,意味着业务方可能需要多种标签,而A/B测试配置平台提供的标签却是有限的,不仅无法满足业务方的需求,而且每当业务方在进行A/B实验配置而需要一种新的标签时,A/B测试配置平台需要升级其A/B实验配置的版本,这对A/B测试配置平台一方也是一种成本的高企。
发明内容
本申请提供一种解析A/B实验数据的方法、装置、设备和计算机可读存储介质,以满足A/B实验配置用户对标签的多样化需求,并降低A/B测试配置平台一方的成本。
一方面,本申请提供了一种解析A/B实验数据的方法,包括:
通过A/B测试配置平台接收A/B实验用户自定义的标签及其相关属性;
校验根据所述A/B实验用户自定义的标签及其相关属性生成的A/B实验配置语句,所述统一格式的A/B实验配置语句包含标签属性值的类型、关系运算符、逻辑运算符和关联关系;
若所述校验通过,则根据所述标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于所述校验通过的A/B实验配置语句的解析器对当前流量和所述校验通过的A/B实验配置语句解析,所述解析器为由所述关系运算符和关联关系确定的解析器中的一种解析器;
根据所述解析器返回的结果,确定所述当前流量是否为A/B实验需要的流量。
另一方面,本申请提供了一种解析A/B实验数据的装置,包括:
接收模块,用于通过A/B测试配置平台接收A/B实验用户自定义的标签及其相关属性;
校验模块,用于校验根据所述A/B实验用户自定义的标签及其相关属性生成的A/B实验配置语句,所述统一格式的A/B实验配置语句包含标签属性值的类型、关系运算符、逻辑运算符和关联关系;
第一确定模块,用于若所述校验通过,则根据所述标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于所述校验通过的A/B实验配置语句的解析器对当前流量和所述校验通过的A/B实验配置语句解析,所述解析器为由所述关系运算符和关联关系确定的解析器中一种解析器;
第二确定模块,用于根据所述解析器返回的结果,确定所述当前流量是否为A/B实验需要的流量。
第三方面,本申请提供了一种设备,所述设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述解析A/B实验数据的方法的技术方案的步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述解析A/B实验数据的方法的技术方案的步骤。
从上述本申请提供的技术方案可知,一方面,用户可以通过A/B测试配置平台输入其自定义的标签及其属性,则不再受限于A/B测试配置平台提供的标签,满足了A/B实验配置用户对标签的多样化需求;另一方面,可以根据标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于校验通过的A/B实验配置语句的解析器对当前流量和校验通过的A/B实验配置语句解析,由于解析器是根据关系运算符和关联关系确定的解析器中任意一种解析器,而根据关系运算符和关联关系确定的解析器已经穷尽全部七种解析器,相当于可以动态解析A/B实验中流量的标签是否满足A/B实验配置的要求,而无需A/B测试配置平台频频升级A/B实验配置的版本,从而客观上降低了A/B测试配置平台一方的维护成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的解析A/B实验数据的方法的流程图;
图2是本申请实施例提供的对算术表达式进行校验的流程示意图;
图3是本申请实施例提供的解析A/B实验数据的装置的结构示意图;
图4是本申请实施例提供的设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。
本申请提出了一种解析A/B实验数据的方法,如附图1所示,其主要包括步骤S101至S104,详述如下:
步骤S101:通过A/B测试配置平台接收A/B实验用户自定义的标签及其相关属性。
在本申请实施例中,A/B实验用户是业务方,也就是需要借助A/B测试配置平台进行A/B实验的商家。与现有技术由A/B测试配置平台提供固定的几个标签(或者应业务方的要求临时增加标签)不同,本申请实施例中,是由A/B测试配置平台给出的Web页面提供标签输入接口,由用户输入自定义的标签及其相关属性。
步骤S102:校验根据A/B实验用户自定义的标签及其相关属性生成的统一格式的A/B实验配置语句,其中,统一格式的A/B实验配置语句包含标签属性值的类型、关系运算符、逻辑运算符和关联关系。
在本申请实施例中,A/B测试配置平台提供了一套语法规则,根据该语法规则,一条A/B实验配置语句应该包含属性名称、类型、属性值、算术表达式、关系运算符、逻辑运算符和关联关系等7个子表达式,即:
属性名称 | , | 类型 | , | 属性值 | , | 算术表达式 | , | 关系运算符 | , | 逻辑运算符 | , | 关联关系 | ; |
各子表达式说明如下:
属性名称:属性名称是对A/B实验配置的唯一性标识,其需满足以下的条件:所有的属性名称都应该以字母(A-Z或者a-z)、美元符($)或者下划线(_)开始,首字符之后可以是字母(A-Z或者a-z)、美元符($)、下划线(_)或数字的任何字符组合,分号、冒号、类型关键字、关系运算符、逻辑运算符和关联关系符不能用作属性名称,并且属性名称对大小写敏感(即相同的字母但大小写不同的话,标识不同的属性名称);
类型:分为基本类型、引用类型和集合类型,其中,基本类型包括整数(long)、浮点数(double)、字符(char)和布尔(bool);引用类型包括String、Date、DateTime和Time,集合类型必须由List、Map、Set、Stack和Queue之一与基本类型或引用类型两者之一组成,并且List、Map、Set、Stack和Queue与基本类型或引用类型之间通过中划线连接,还要符合List、Map、Set、Stack和Queue在前,而基本类型或引用类型在后的原则,例如List-int;
属性值:属性值应与类型相对应;
算术表达式:使用中缀表达式表示,算术运算符之间的参数变量使用占位符表示,依次从0开始,例如{0}+{1}-{2};
关系运算符:包括==、!=、>、<、>=和<=等几种格式;
逻辑运算符:包括&&(逻辑“与”)和||(逻辑“或”);
关联关系:包括1-1、1-N、N-N和N-1等,分别表示流量属性标签的属性值和A/B实验配置中属性值都是1个、流量属性标签的属性值和A/B实验配置中属性值分别为1个和N个、流量属性标签的属性值和A/B实验配置中属性值分别为N个和N个以及流量属性标签的属性值和A/B实验配置中属性值分别为N个和1个。
若根据上述语法规则以及A/B实验用户自定义的标签及其相关属性生成了一条统一格式的A/B实验配置语句,则校验根据A/B实验用户自定义的标签及其相关属性生成的统一格式的A/B实验配置语句主要是从如下三个方面校验:
一:对同一个A/B实验的A/B实验配置语句校验,若同一个A/B实验,根据A/B实验用户自定义的标签及其相关属性生成的A/B实验配置语句中不存在相同的属性名称,则确定该A/B实验配置语句符合不可重复性要求,否则,确定该A/B实验配置语句不符合不可重复性要求,然而,需要说明的是,若是不同A/B实验的A/B实验配置语句,则其可以存在相同的属性名称;
二:按照A/B实验配置语句的结束符,校验A/B实验配置的数量与A/B实验配置语句的数量是否相等,若相等,则确定A/B实验配置语句符合等同性要求,每一条A/B实验配置语句均以分号(即;)结束,因此,可根据A/B实验配置语句的结束符,校验一个A/B实验的A/B实验配置的数量与A/B实验配置语句的数量是否相等;
三:根据预设的子表达式的格式要求,校验符合等同性要求和不可重复性要求的A/B实验配置语句中每一个子表达式,若符合等同性要求和不可重复性要求的A/B实验配置语句中每一个子表达式符合预设的子表达式的格式要求,则确定对根据A/B实验用户自定义的标签及其相关属性生成的A/B实验配置语句校验通过。
对于上述第三方面的校验,预设的子表达式包括前述实施例提及的属性名称、类型、属性值、算术表达式、关系运算符、逻辑运算符和关联关系等7个子表达式,对符合等同性要求和不可重复性要求的A/B实验配置语句中每一个子表达式的校验具体如下:
1)属性名称的校验:具体校验方法为使用[$_A-Za-z][$_A-Za-z0-9]+这一正则表达式对属性名称进行匹配,若符合规范,再考察属性名称中是否存在分号、冒号、类型关键字、关系运算符、逻辑运算符和关联关系符等关键字,若不存在,则对属性名称的校验通过;
2)类型的校验:对类型的校验主要是通过中划线判定为是基本类型或引用类型还是集合类型,具体地,若类型包含中划线,则考察该类型是否由List、Map、Set、Stack和Queue之一与基本类型或引用类型两者之一组成,并且List、Map、Set、Stack和Queue与基本类型或引用类型之间是否通过中划线连接以及List、Map、Set、Stack和Queue是否在前、而基本类型或引用类型是否在后,若考察结果为是,则确定类型为集合类型;若类型不包含中划线,并且其包含整数(long)、浮点数(double)、字符(char)和布尔(bool)中的一种,则确定类型为基本类型;若类型不包含中划线,并且其包含String、Date、DateTime和Time中的一种,则确定类型为引用类型;
3)属性值的校验:属性值的校验是通过类型并结合属性值的格式来实现,具体而言,若类型为引用类型中的String,则属性值可以为任意格式,若类型为基本类型中的long类型,则使用^[0-9]*$这一正则表达式对属性值进行校验,若类型为基本类型中的double类型,则使用^(-?\d+)(\-\d+)?$这一正则表达式对属性值进行校验,若类型为基本类型中的char类型,则使用^{1,1}$这一正则表达式对属性值进行校验,若类型为基本类型中的布尔类型,则使用逻辑“1”为真、逻辑“0”为假对属性值进行校验,等等;
4)算术表达式的校验:若一个算术表达式能够成功地被转换成后缀表达式,则该算术表达式为符合语法规则的算术表达式,否则不符合,算术表达式转为后缀表达式的逻辑如附图2所示;
5)关系运算符的校验:主要是校验其是否为==、!=、>、<、>=和<=等6种格式之一;
6)逻辑运算符的校验:主要是校验其是否为&&(逻辑“与”)和||(逻辑“或”)两种格式之一;
7)关联关系的校验:主要是校验其是否为1-1、1-N、N-N和N-1等4种格式之一。
步骤S103:若校验通过,则根据标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于校验通过的A/B实验配置语句的解析器对当前流量和校验通过的A/B实验配置语句解析,其中,解析器为由关系运算符和关联关系确定的解析器中的一种解析器。
需要说明的是,在本申请实施例中,由关系运算符和关联关系确定的解析器可以穷尽全部七种解析器,根据标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于校验通过的A/B实验配置语句的解析器对当前流量和校验通过的A/B实验配置语句解析,可以是调用七种解析器中的一种解析器来对当前流量和校验通过的A/B实验配置语句解析,具体而言,包括如下步骤S1031和步骤S1032:
步骤S1031:若标签属性值的类型为基本类型或引用类型并且关联关系为1-1或1-N,则调用1对1型解析器或1对多型解析器对当前流量和校验通过的A/B实验配置语句解析,其中,N为大于1的自然数,n为自然数。
由于n为自然数,因此,1对n型解析器实际包含了1对1型解析器和1对多型解析器。具体地,若标签属性值的类型为基本类型或引用类型并且关联关系为1-1或1-N,则调用1对1型解析器或1对多型解析器对当前流量和校验通过的A/B实验配置语句解析可以是:若关联关系为1-1,则调用1对1型解析器对当前流量和校验通过的A/B实验配置语句解析;若关联关系为1-N并且逻辑运算符为逻辑“与”,则调用第一1对多型解析器对当前流量和校验通过的A/B实验配置语句解析;若关联关系为1-N并且逻辑运算符为逻辑“或”,则调用第二1对多型解析器对当前流量和校验通过的A/B实验配置语句解析。
步骤S1032:若标签属性值的类型为集合类型并且关联关系为N-1或N-N,则调用多对1或多对多型解析器对当前流量和校验通过的A/B实验配置语句解析。
具体地,若标签属性值的类型为集合类型并且关联关系为N-1或N-N,则调用多对1或多对多型解析器对当前流量和校验通过的A/B实验配置语句解析可以是:若关联关系为N-1并且逻辑运算符为逻辑“与”,则调用第一多对1型解析器对当前流量和校验通过的A/B实验配置语句解析;若关联关系为N-1并且逻辑运算符为逻辑“或”,则调用第二多对1型解析器对当前流量和校验通过的A/B实验配置语句解析;若关联关系为N-N并且逻辑运算符为逻辑“与”,则调用第一多对多型解析器对当前流量和校验通过的A/B实验配置语句解析;若关联关系为N-N并且逻辑运算符为逻辑“或”,则调用第二多对多型解析器对当前流量和校验通过的A/B实验配置语句解析。
上述实施例中,解析器对当前流量和校验通过的A/B实验配置语句解析主要包括:使用解析器对当前流量中标签的属性值和校验通过的A/B实验配置语句中属性值进行解析,若当前流量中标签的属性值和校验通过的A/B实验配置语句中属性值满足关系运算符定义的关系,则解析器返回校验通过的A/B实验配置语句为逻辑“真”的结果,否则,返回逻辑“假”的结果,详细说明如下:
1)调用1对1型解析器对当前流量和校验通过的A/B实验配置语句解析,若仅一条当前流量中标签的属性值与校验通过的A/B实验配置语句中属性值满足关系运算符中定义的关系(==、!=、<、>、<=或>=),并且当前流量中标签的属性值与校验通过的A/B实验配置语句中属性值均仅为一条时,则该校验通过的A/B实验配置语句为逻辑“真”(解析器返回逻辑“真”的结果),否则为逻辑“假”(解析器返回逻辑“假”的结果);
2)调用第一1对多型解析器对当前流量和校验通过的A/B实验配置语句解析,若多条当前流量中标签的属性值与一条校验通过的A/B实验配置语句中属性值均满足关系运算符中定义的关系(==、!=、<、>、<=或>=),则该校验通过的A/B实验配置语句为逻辑“真”(解析器返回逻辑“真”的结果),否则为逻辑“假”(解析器返回逻辑“假”的结果);
3)调用第二1对多型解析器对当前流量和校验通过的A/B实验配置语句解析,若多条当前流量中只要存在一条当前流量的标签的属性值与一条校验通过的A/B实验配置语句中属性值满足关系运算符中定义的关系(==、!=、<、>、<=或>=),则该校验通过的A/B实验配置语句为逻辑“真”(解析器返回逻辑“真”的结果),否则为逻辑“假”(解析器返回逻辑“假”的结果);
4)调用第一多对1型解析器对当前流量和所述校验通过的A/B实验配置语句解析,若仅一条当前流量的标签的属性值与多条校验通过的A/B实验配置语句中属性值均满足关系运算符中定义的关系(==、!=、<、>、<=或>=),则该校验通过的A/B实验配置语句为逻辑“真”(解析器返回逻辑“真”的结果),否则为逻辑“假”(解析器返回逻辑“假”的结果);
5)调用第二多对1型解析器对当前流量和校验通过的A/B实验配置语句解析,若一条当前流量中标签的属性值与多条校验通过的A/B实验配置语句中任意一条A/B实验配置语句的属性值满足关系运算符中定义的关系(==、!=、<、>、<=或>=),则该校验通过的A/B实验配置语句为逻辑“真”(解析器返回逻辑“真”的结果),否则为逻辑“假”(解析器返回逻辑“假”的结果);
6)调用第一多对多型解析器对当前流量和校验通过的A/B实验配置语句解析,若多条当前流量中标签的属性值与多条校验通过的A/B实验配置语句的属性值均满足关系运算符中定义的关系(==、!=、<、>、<=或>=),则该校验通过的A/B实验配置语句为逻辑“真”(解析器返回逻辑“真”的结果),否则为逻辑“假”(解析器返回逻辑“假”的结果);
7)调用第二多对多型解析器对当前流量和校验通过的A/B实验配置语句解析,若多条当前流量中任意一条流量的标签的属性值与多条校验通过的A/B实验配置语句中任意一条A/B实验配置语句的属性值满足关系运算符中定义的关系(==、!=、<、>、<=或>=),则该校验通过的A/B实验配置语句为逻辑“真”(解析器返回逻辑“真”的结果),否则为逻辑“假”(解析器返回逻辑“假”的结果)。
步骤S104:根据解析器返回的结果,确定当前流量是否为A/B实验需要的流量。
具体而言,若解析器返回校验通过的A/B实验配置语句为逻辑“真”,则确定当前流量为A/B实验需要的流量;若解析器返回校验通过的A/B实验配置语句为逻辑“假”,则确定当前流量不是A/B实验需要的流量。
从上述附图1示例的解析A/B实验数据的方法可知,一方面,用户可以通过A/B测试配置平台输入其自定义的标签及其属性,则不再受限于A/B测试配置平台提供的标签,满足了A/B实验配置用户对标签的多样化需求;另一方面,可以根据标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于校验通过的A/B实验配置语句的解析器对当前流量和校验通过的A/B实验配置语句解析,由于解析器是根据关系运算符和关联关系确定的解析器中任意一种解析器,而根据关系运算符和关联关系确定的解析器已经穷尽全部七种解析器,相当于可以动态解析A/B实验中流量的标签是否满足A/B实验配置的要求,而无需A/B测试配置平台频频升级A/B实验配置的版本,从而客观上降低了A/B测试配置平台一方的维护成本。
请参阅附图3,是本申请实施例提供的一种解析A/B实验数据的装置,主要包括接收模块301、校验模块302、第一确定模块303和第二确定模块304,详述如下:
接收模块301,用于通过A/B测试配置平台接收A/B实验用户自定义的标签及其相关属性;
校验模块302,用于校验根据A/B实验用户自定义的标签及其相关属性生成的统一格式的A/B实验配置语句,其中,统一格式的A/B实验配置语句包含标签属性值的类型、关系运算符、逻辑运算符和关联关系;
第一确定模块303,用于若校验通过,则根据标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于校验通过的A/B实验配置语句的解析器对当前流量和校验通过的A/B实验配置语句解析,其中,解析器为由关系运算符和关联关系确定的解析器中一种解析器;
第二确定模块304,用于根据解析器返回的结果,确定当前流量是否为A/B实验需要的流量。
可选地,附图3示例的校验模块302可以包括重复性校验单元、等同性校验单元和子表达式校验单元,其中:
重复性校验单元,用于对同一个A/B实验的A/B实验配置语句校验,若A/B实验配置语句中不存在相同的属性名称,则确定A/B实验配置语句符合不可重复性要求;
等同性校验单元,用于按照A/B实验配置语句的结束符,校验A/B实验配置的数量与A/B实验配置语句的数量是否相等,若相等,则确定A/B实验配置语句符合等同性要求;
子表达式校验单元,用于根据预设的子表达式的格式要求,校验符合等同性要求和不可重复性要求的A/B实验配置语句中每一个子表达式,若符合等同性要求和不可重复性要求的A/B实验配置语句中每一个子表达式符合预设的子表达式的格式要求,则确定对根据A/B实验用户自定义的标签及其相关属性生成的A/B实验配置语句校验通过。
可选地,附图3示例的第一确定模块303可以包括第一解析器调用单元和第二解析器调用单元,其中:
第一解析器调用单元,用于若标签属性值的类型为基本类型或引用类型并且关联关系为1-1或1-N,则调用1对1型解析器或1对多型解析器对当前流量和校验通过的A/B实验配置语句解析,其中,N为大于1的自然数;
第二解析器调用单元,用于若标签属性值的类型为集合类型并且关联关系为N-1或N-N,则调用多对1或多对多型解析器对当前流量和校验通过的A/B实验配置语句解析。
可选地,上述第一解析器调用单元可以包括第一调用单元、第二调用单元和第三调用单元,其中:
第一调用单元,用于若关联关系为1-1,则调用1对1型解析器对当前流量和校验通过的A/B实验配置语句解析;
第二调用单元,用于若关联关系为1-N并且逻辑运算符为逻辑“与”,则调用第一1对多型解析器对当前流量和校验通过的A/B实验配置语句解析;
第三调用单元,用于若关联关系为1-N并且逻辑运算符为逻辑“或”,则调用第二1对多型解析器对当前流量和校验通过的A/B实验配置语句解析。
可选地,上述第二解析器调用单元可以包括第四调用单元、第五调用单元、第六调用单元和第七调用单元,其中:
第四调用单元,用于若关联关系为N-1并且逻辑运算符为逻辑“与”,则调用第一多对1型解析器对当前流量和校验通过的A/B实验配置语句解析;
第五调用单元,用于若关联关系为N-1并且逻辑运算符为逻辑“或”,则调用第二多对1型解析器对当前流量和校验通过的A/B实验配置语句解析;
第六调用单元,用于若关联关系为N-N并且逻辑运算符为逻辑“与”,则调用第一多对多型解析器对当前流量和校验通过的A/B实验配置语句解析;
第七调用单元,用于若关联关系为N-N并且逻辑运算符为逻辑“或”,则调用第二多对多型解析器对当前流量和校验通过的A/B实验配置语句解析。
可选地,附图3示例的第一确定模块303可以包括解析单元和结果返回单元,其中:
解析单元,用于使用解析器对当前流量中标签的属性值和校验通过的A/B实验配置语句中属性值进行解析;
结果返回单元,用于若当前流量中标签的属性值和校验通过的A/B实验配置语句中属性值满足关系运算符定义的关系,则解析器返回校验通过的A/B实验配置语句为逻辑“真”的结果,否则,返回逻辑“假”的结果。
可选地,附图3示例的第二确定模块304可以包括第一确定单元和第二确定单元,其中:
第一确定单元,用于若解析器返回校验通过的A/B实验配置语句为逻辑“真”,则确定当前流量为A/B实验需要的流量;
第二确定单元,用于若解析器返回校验通过的A/B实验配置语句为逻辑“假”,则确定当前流量不是A/B实验需要的流量。
从上述附图3示例的解析A/B实验数据的装置可知,一方面,用户可以通过A/B测试配置平台输入其自定义的标签及其属性,则不再受限于A/B测试配置平台提供的标签,满足了A/B实验配置用户对标签的多样化需求;另一方面,可以根据标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于校验通过的A/B实验配置语句的解析器对当前流量和校验通过的A/B实验配置语句解析,由于解析器是根据关系运算符和关联关系确定的解析器中任意一种解析器,而根据关系运算符和关联关系确定的解析器已经穷尽全部七种解析器,相当于可以动态解析A/B实验中流量的标签是否满足A/B实验配置的要求,而无需A/B测试配置平台频频升级A/B实验配置的版本,从而客观上降低了A/B测试配置平台一方的维护成本。
图4是本申请一实施例提供的设备的结构示意图。如图4所示,该实施例的设备4主要包括:处理器40、存储器41以及存储在存储器41中并可在处理器40上运行的计算机程序42,例如解析A/B实验数据的方法的程序。处理器40执行计算机程序42时实现上述解析A/B实验数据的方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,处理器40执行计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图3所示接收模块301、校验模块302、第一确定模块303和第二确定模块304的功能。
示例性地,解析A/B实验数据的方法的计算机程序42主要包括:通过A/B测试配置平台接收A/B实验用户自定义的标签及其相关属性;校验根据A/B实验用户自定义的标签及其相关属性生成的统一格式的A/B实验配置语句,其中,统一格式的A/B实验配置语句包含标签属性值的类型、关系运算符、逻辑运算符和关联关系;若校验通过,则根据标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于校验通过的A/B实验配置语句的解析器对当前流量和校验通过的A/B实验配置语句解析,其中,解析器为由关系运算符和关联关系确定的解析器中一种解析器;根据解析器返回的结果,确定当前流量是否为A/B实验需要的流量。
计算机程序42可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器41中,并由处理器40执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序42在设备4中的执行过程。例如,计算机程序42可以被分割成接收模块301、校验模块302、第一确定模块303和第二确定模块304(虚拟装置中的模块)的功能,各模块具体功能如下:接收模块301,用于通过A/B测试配置平台接收A/B实验用户自定义的标签及其相关属性;校验模块302,用于校验根据A/B实验用户自定义的标签及其相关属性生成的统一格式的A/B实验配置语句,其中,统一格式的A/B实验配置语句包含标签属性值的类型、关系运算符、逻辑运算符和关联关系;第一确定模块303,用于若校验通过,则根据标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于校验通过的A/B实验配置语句的解析器对当前流量和校验通过的A/B实验配置语句解析,其中,解析器为由关系运算符和关联关系确定的解析器中一种解析器;第二确定模块304,用于根据解析器返回的结果,确定当前流量是否为A/B实验需要的流量。
设备4可包括但不仅限于处理器40、存储器41。本领域技术人员可以理解,图4仅仅是设备4的示例,并不构成对设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器41可以是设备4的内部存储单元,例如设备4的硬盘或内存。存储器41也可以是设备4的外部存储设备,例如设备4上配备的插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器41还可以既包括设备4的内部存储单元也包括外部存储设备。存储器41用于存储计算机程序以及设备所需的其他程序和数据。存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即,将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非临时性计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,解析A/B实验数据的方法的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤,即,通过A/B测试配置平台接收A/B实验用户自定义的标签及其相关属性;校验根据A/B实验用户自定义的标签及其相关属性生成的统一格式的A/B实验配置语句,其中,统一格式的A/B实验配置语句包含标签属性值的类型、关系运算符、逻辑运算符和关联关系;若校验通过,则根据标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于校验通过的A/B实验配置语句的解析器对当前流量和校验通过的A/B实验配置语句解析,其中,解析器为由关系运算符和关联关系确定的解析器中一种解析器;根据解析器返回的结果,确定当前流量是否为A/B实验需要的流量。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。非临时性计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读内存(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,非临时性计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,非临时性计算机可读介质不包括电载波信号和电信信号。以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种解析A/B实验数据的方法,其特征在于,所述方法包括:
通过A/B测试配置平台接收A/B实验用户自定义的标签及其相关属性;
校验根据所述A/B实验用户自定义的标签及其相关属性生成的统一格式的A/B实验配置语句,所述统一格式的A/B实验配置语句包含标签属性值的类型、关系运算符、逻辑运算符和关联关系;
若所述校验通过,则根据所述标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于所述校验通过的A/B实验配置语句的解析器对当前流量和所述校验通过的A/B实验配置语句解析,所述解析器为由所述关系运算符和关联关系确定的解析器中的一种解析器;
根据所述解析器返回的结果,确定所述当前流量是否为A/B实验需要的流量。
2.如权利要求1所述解析A/B实验数据的方法,其特征在于,所述校验根据所述A/B实验用户自定义的标签及其相关属性生成的统一格式的A/B实验配置语句,包括:
对同一个A/B实验的所述A/B实验配置语句校验,若所述A/B实验配置语句中不存在相同的属性名称,则确定所述A/B实验配置语句符合不可重复性要求;
按照所述A/B实验配置语句的结束符,校验A/B实验配置的数量与所述A/B实验配置语句的数量是否相等,若相等,则确定所述A/B实验配置语句符合等同性要求;
根据预设的子表达式的格式要求,校验所述符合等同性要求和不可重复性要求的A/B实验配置语句中每一个子表达式,若所述符合等同性要求和不可重复性要求的A/B实验配置语句中每一个子表达式符合所述预设的子表达式的格式要求,则确定对根据所述A/B实验用户自定义的标签及其相关属性生成的A/B实验配置语句校验通过。
3.如权利要求1所述解析A/B实验数据的方法,其特征在于,所述根据所述标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于所述校验通过的A/B实验配置语句的解析器对当前流量和所述校验通过的A/B实验配置语句解析,包括:
若所述标签属性值的类型为基本类型或引用类型并且所述关联关系为1-1或1-N,则调用1对1型解析器或1对多型解析器对当前流量和所述校验通过的A/B实验配置语句解析,所述N为大于1的自然数;
若所述标签属性值的类型为集合类型并且所述关联关系为N-1或N-N,则调用多对1或多对多型解析器对当前流量和所述校验通过的A/B实验配置语句解析。
4.如权利要求3所述解析A/B实验数据的方法,其特征在于,所述若所述标签属性值的类型为基本类型或引用类型并且所述关联关系为1-N,则调用1对1型解析器或1对多型解析器对当前流量和所述校验通过的A/B实验配置语句解析,包括:
若所述关联关系为1-1,则调用1对1型解析器对当前流量和所述校验通过的A/B实验配置语句解析;
若所述关联关系为1-N并且所述逻辑运算符为逻辑“与”,则调用第一1对多型解析器对当前流量和所述校验通过的A/B实验配置语句解析;
若所述关联关系为1-N并且所述逻辑运算符为逻辑“或”,则调用第二1对多型解析器对当前流量和所述校验通过的A/B实验配置语句解析。
5.如权利要求3所述解析A/B实验数据的方法,其特征在于,所述若所述标签属性值的类型为集合类型并且所述关联关系为N-1或N-N,则调用多对1或多对多型解析器对当前流量和所述校验通过的A/B实验配置语句解析,包括:
若所述关联关系为N-1并且所述逻辑运算符为逻辑“与”,则调用第一多对1型解析器对当前流量和所述校验通过的A/B实验配置语句解析;
若所述关联关系为N-1并且所述逻辑运算符为逻辑“或”,则调用第二多对1型解析器对当前流量和所述校验通过的A/B实验配置语句解析;
若所述关联关系为N-N并且所述逻辑运算符为逻辑“与”,则调用第一多对多型解析器对当前流量和所述校验通过的A/B实验配置语句解析;
若所述关联关系为N-N并且所述逻辑运算符为逻辑“或”,则调用第二多对多型解析器对当前流量和所述校验通过的A/B实验配置语句解析。
6.如权利要求1所述解析A/B实验数据的方法,其特征在于,所述对当前流量和所述校验通过的A/B实验配置语句解析,包括:
使用所述解析器对所述当前流量中标签的属性值和所述校验通过的A/B实验配置语句中属性值进行解析;
若所述当前流量中标签的属性值和所述校验通过的A/B实验配置语句中属性值满足所述关系运算符定义的关系,则所述解析器返回所述校验通过的A/B实验配置语句为逻辑“真”的结果,否则,返回逻辑“假”的结果。
7.如权利要求6所述解析A/B实验数据的方法,其特征在于,所述根据所述解析器返回的结果,确定所述当前流量是否为A/B实验需要的流量,包括:
若所述解析器返回所述校验通过的A/B实验配置语句为逻辑“真”,则确定所述当前流量为所述A/B实验需要的流量;
若所述解析器返回所述校验通过的A/B实验配置语句为逻辑“假”,则确定所述当前流量不是所述A/B实验需要的流量。
8.一种解析A/B实验数据的装置,其特征在于,所述装置包括:
接收模块,用于通过A/B测试配置平台接收A/B实验用户自定义的标签及其相关属性;
校验模块,用于校验根据所述A/B实验用户自定义的标签及其相关属性生成的统一格式的A/B实验配置语句,所述统一格式的A/B实验配置语句包含标签属性值的类型、关系运算符、逻辑运算符和关联关系;
第一确定模块,用于若所述校验通过,则根据所述标签属性值的类型、关系运算符、逻辑运算符和关联关系,调用相应于所述校验通过的A/B实验配置语句的解析器对当前流量和所述校验通过的A/B实验配置语句解析,所述解析器为由所述关系运算符和关联关系确定的解析器中一种解析器;
第二确定模块,用于根据所述解析器返回的结果,确定所述当前流量是否为A/B实验需要的流量。
9.一种设备,所述设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110326517.XA CN113064818B (zh) | 2021-03-26 | 2021-03-26 | 解析a/b实验数据的方法、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110326517.XA CN113064818B (zh) | 2021-03-26 | 2021-03-26 | 解析a/b实验数据的方法、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113064818A true CN113064818A (zh) | 2021-07-02 |
CN113064818B CN113064818B (zh) | 2022-12-27 |
Family
ID=76564076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110326517.XA Active CN113064818B (zh) | 2021-03-26 | 2021-03-26 | 解析a/b实验数据的方法、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064818B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105373480A (zh) * | 2015-12-15 | 2016-03-02 | 广州唯品会信息科技有限公司 | 优化ABTest系统分流的方法及系统 |
US20180020065A1 (en) * | 2016-07-13 | 2018-01-18 | Adobe Systems Incorporated | Facilitating consistent a/b testing assignment |
CN109308255A (zh) * | 2017-07-28 | 2019-02-05 | 北京京东尚科信息技术有限公司 | 一种用于a/b测试实验的方法和装置 |
CN109710511A (zh) * | 2018-12-04 | 2019-05-03 | 北京达佳互联信息技术有限公司 | Ab测试方法、装置、服务器及存储介质 |
CN111522735A (zh) * | 2020-03-18 | 2020-08-11 | 北京健康之家科技有限公司 | 测试实验的分流方法及装置 |
CN111639027A (zh) * | 2020-05-25 | 2020-09-08 | 北京百度网讯科技有限公司 | 一种测试方法、装置及电子设备 |
CN112269743A (zh) * | 2020-10-30 | 2021-01-26 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种a/b测试方法及装置 |
-
2021
- 2021-03-26 CN CN202110326517.XA patent/CN113064818B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105373480A (zh) * | 2015-12-15 | 2016-03-02 | 广州唯品会信息科技有限公司 | 优化ABTest系统分流的方法及系统 |
US20180020065A1 (en) * | 2016-07-13 | 2018-01-18 | Adobe Systems Incorporated | Facilitating consistent a/b testing assignment |
CN109308255A (zh) * | 2017-07-28 | 2019-02-05 | 北京京东尚科信息技术有限公司 | 一种用于a/b测试实验的方法和装置 |
CN109710511A (zh) * | 2018-12-04 | 2019-05-03 | 北京达佳互联信息技术有限公司 | Ab测试方法、装置、服务器及存储介质 |
CN111522735A (zh) * | 2020-03-18 | 2020-08-11 | 北京健康之家科技有限公司 | 测试实验的分流方法及装置 |
CN111639027A (zh) * | 2020-05-25 | 2020-09-08 | 北京百度网讯科技有限公司 | 一种测试方法、装置及电子设备 |
CN112269743A (zh) * | 2020-10-30 | 2021-01-26 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种a/b测试方法及装置 |
Non-Patent Citations (1)
Title |
---|
张梓轩等: "A/B测试原理在新闻生产中的运用及其对新闻业融合转型的潜在影响", 《中国出版》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113064818B (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109683953B (zh) | 一种基于可视化界面进行配置文件处理的方法及装置 | |
US8762962B2 (en) | Methods and apparatus for automatic translation of a computer program language code | |
CN112035359B (zh) | 程序测试方法、装置、电子设备及存储介质 | |
CN110445860B (zh) | 一种报文发送方法、装置、终端设备及存储介质 | |
CN112015430A (zh) | JavaScript代码翻译方法、装置、计算机设备及存储介质 | |
CN109614327B (zh) | 用于输出信息的方法和装置 | |
CN101751281A (zh) | 编译器生成系统和方法 | |
CN112084179B (zh) | 一种数据处理的方法、装置、设备及存储介质 | |
CN110795697A (zh) | 逻辑表达式的获取方法、装置、存储介质以及电子装置 | |
CN111488573A (zh) | 链接库检测方法、装置、电子设备和计算机可读存储介质 | |
CN112147983B (zh) | 一种车辆诊断方法、装置、电子设备及存储介质 | |
CN111367791B (zh) | 一种生成测试用例的方法、装置、介质和电子设备 | |
CN113760729A (zh) | 一种代码检测方法和装置 | |
CN116431520A (zh) | 测试场景确定方法、装置、电子设备和存储介质 | |
CN109684198B (zh) | 待测试数据获取方法、装置、介质、电子设备 | |
CN112948400B (zh) | 一种数据库管理方法、数据库管理装置及终端设备 | |
CN114139161A (zh) | 一种批量检测漏洞的方法、装置、电子设备及介质 | |
CN113064818B (zh) | 解析a/b实验数据的方法、设备和计算机可读存储介质 | |
CN117435189A (zh) | 金融系统接口的测试用例分析方法、装置、设备及介质 | |
CN112835810A (zh) | 一种基于日志分析的接口测试方法及装置 | |
CN117056347A (zh) | Sql语句永真式注入检测方法、装置、计算机设备及存储介质 | |
CN116204428A (zh) | 一种测试用例生成方法和装置 | |
CN113419964B (zh) | 一种测试案例生成方法、装置、计算机设备及存储介质 | |
CN114358596A (zh) | 指标计算方法及装置 | |
CN113934430A (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 |