CN114706738A - 客户端自动埋点的方法及装置 - Google Patents
客户端自动埋点的方法及装置 Download PDFInfo
- Publication number
- CN114706738A CN114706738A CN202210163338.3A CN202210163338A CN114706738A CN 114706738 A CN114706738 A CN 114706738A CN 202210163338 A CN202210163338 A CN 202210163338A CN 114706738 A CN114706738 A CN 114706738A
- Authority
- CN
- China
- Prior art keywords
- attribute value
- page
- operation object
- control
- event
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种客户端自动埋点的方法及装置,涉及大数据数据分析技术领域,其中该方法包括:监听用户在客户端页面上的操作事件,确定操作事件对应的操作对象;根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值;判断所述属性值中是否包含预先配置的事件名称;如果所述属性值中包含预先配置的事件名称,则将操作对象的属性值上传至后端服务器。本发明可以降低埋点的开发成本,实现根据业务需求定义事件名称等属性,减少垃圾数据。
Description
技术领域
本发明涉及大数据数据分析技术领域,尤其涉及一种客户端自动埋点的方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着软件开发项目越来越大,系统业务流程多变,项目架构复杂度也随之提升。应用程序(App)客户端繁多,用户网络环境也千变万化,为了对软件产品进行全方位的持续追踪,为了分析用户产生某些动作或者不产生某些动作的深层原因,就需要详细的用户行为数据,对用户行为数据从用户属性、使用行为等多指标、多维度进行全面数据统计分析,通过数据统计分析不断优化软件产品,为软件产品运营和推广决策提供全方位的数据支撑。如果没有准确、全面的用户行为数据作为支撑,在后续分析中可能难以得到准确洞察的分析结果,导致营销闭环中缺少数据依据,精细化运营更难以开展。
埋点(Event Tracking),也称为事件追踪,是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程,可以分为客户端埋点和服务端埋点。客户端埋点,即在客户在操作页面的过程中,产生一系列的动作及轨迹,客户端记录发生的动作行为轨迹数据,通过网络传输到服务器端。目前客户端埋点的方式有三种,分别是代码埋点、全埋点和可视化埋点。
代码埋点,即在某个逻辑直接插入埋点代码,当事件发生时通过预先写好的代码发送采集的用户行为数据。示例性的,图1示出了代码埋点的数据采集过程。参见图1所示,用户操作客户端(点击或浏览页面等),触发对应的业务逻辑代码;客户端将用户行为数据转为埋点元素数据,调用软件开发工具包(Software Development Kit,SDK)埋点方法;SDK埋点方法将用户行为数据保存到本地数据库;客户端读取本地数据库,将采集的用户行为数据规范化上传至后端服务器。
代码埋点需要手写大量埋点代码,埋点代码与原有业务逻辑代码糅杂在一起,影响代码质量及维护成本,开发成本高;对于企业级应用,涉及功能较多,协作方多,效率低;依赖App版本,存在未更新版本的部分用户,导致数据缺失。
全埋点,与代码埋点相比,无需应用程序开发工程师写代码或者只写少量的代码,在编译阶段将埋点逻辑插入到原有的文件中,即可预先自动收集所有或者绝大部分的用户行为数据。参见图2所示,全埋点使用AOP(Aspect Oriented Programming,面向切面编程)技术,或者监听生命周期事件,对页面浏览、按钮点击等采集事件做统一的处理,事件触发后调用SDK埋点方法将采集数据转为埋点模型数据后保存到本地数据库,之后读取本地数据库上传规范采集数据至后端服务器中。以安卓为例,在appliction(属于Android中的一个系统组件,代表应用程序的类)中使用registerActivityLifecycleCallbacks方法监听各个操作页面的生命周期可自动采集页面浏览的数据。针对点击等事件,使用ASM及Gradle插件在编译期间将SDK点击事件逻辑代码注入到原有的点击逻辑中,当用户点击时自动触发采集逻辑。
但是,全埋点只能采集页面或控件原本属性的数据;采集数据量大,占用存储的空间大;还无法按照业务想要的方式对事件命名,难以梳理及加工数据。
可视化埋点,是指用户通过设备连接用户行为分析工具的数据接入管理页面,对可交互且交互后有效果的页面元素,直接在页面上进行操作实现数据埋点的方法。图3示出了可视化埋点的数据采集过程。参见图3,App与服务端可视化工具界面建立连接后,将设备信息上送到服务端,服务端向App发送绘制屏幕请求;App处理绘制请求,生成控件树,将生成的控件树及截图发送到服务端,服务端展示截图、记录控件树,管理员或业务人员将想要的埋点标记出来并对指定事件命名,将事件的标识与参数保存到配置表。配置信息同步到下发到服务端,服务端更新埋点配置信息采集,SDK按照配置信息自动匹配用户行为数据的采集和发送。
可视化埋点同样存在一定的缺陷,无法做到自定义获取数据,仅能通过控件树的信息保存配置,匹配采集时仅能根据控件信息匹配采集事件;当界面为公共界面时,无法仅根据控件信息区分具体的业务功能,即无法对公共界面进行多个事件命名区分,并且,可视化界面部署到服务端,与服务端有交互,增加开发难度及成本。
由上可见,现有的三种埋点方式均各有其缺点,并且,大型的应用软件包含的业务需求复杂多变,单一的埋点方式并不满足,通常需要几种埋点组合的方式才能实现。而不同埋点方式,采集的数据格式是不一样的,上传到服务端的数据格式也不一样,无法满足服务端要求统一上传的格式。并且,不同的埋点方式,开发成本也不一样。如何能够实现埋点投入低成本,根据业务需求定义事件名称等自定义属性,根据采集数据能够回溯用户轨迹,以及减少垃圾数据,是当前亟待解决的问题。
发明内容
本发明实施例提供一种客户端自动埋点的方法,用以降低埋点的开发成本,实现根据业务需求定义事件名称等属性,减少垃圾数据,该方法包括:
监听用户在客户端页面上的操作事件,确定操作事件对应的操作对象;
根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值;
判断所述属性值中是否包含预先配置的事件名称;
如果所述属性值中包含预先配置的事件名称,则将操作对象的属性值上传至后端服务器。
在本发明实施例的一种实现方式中,所述操作对象包括页面和控件,在根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的系统属性值之前,所述方法还包括:
在页面生命周期方法中插入预先编写的第一采集代码;
利用AOP技术在控件点击的onClick事件中插入预先编写的第二采集代码;
根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值,包括:
当所述操作对象为页面时,根据页面的实例,利用第一采集代码读取页面的属性值;
当所述操作对象为控件时,根据控件的实例,利用第二采集代码读取控件的属性值。
在本发明实施例的一种实现方式中,所述操作对象包括页面和控件,在根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值之前,所述方法还包括:
接收开发人员配置的操作对象的自定义属性值;其中,页面的自定义属性值包括页面事件名称和页面ID,控件的自定义属性值包括控件事件名称和控件所在页面的页面ID;
根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值,包括:
根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的系统属性值和/或自定义属性值;其中,页面的系统属性值包括页面类名、上一页面类名、页面路径、页面宽高、页面屏幕横竖屏方向和页面标题;控件的系统属性值包括控件ID、控件内容、控件路径、控件类型和控件所在页面的页面类名。
在本发明实施例的一种实现方式中,在接收开发人员配置的操作对象的自定义属性值之后,所述方法还包括:
根据操作对象的自定义属性值和系统属性值生成配置信息表;
判断所述属性值中是否包含预先配置的事件名称,包括:
根据配置信息表判断所述属性值中是否包含预先配置的事件名称。
在本发明实施例的一种实现方式中,在判断所述属性值中是否包含预先配置的事件名称之后,所述方法还包括:
如果所述属性值中不包含所述操作事件的事件名称,则将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配;
如果读取的操作对象的属性值与配置信息表中操作对象的属性值匹配成功,则将配置信息表中相应操作对象的属性值与读取的操作对象的属性值合并后,上传至后端服务器。
在本发明实施例的一种实现方式中,将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配,包括:
当操作对象为页面时,根据读取的页面类名、页面标题、上一页面类名与配置信息表中操作对象的属性值进行匹配;
当操作对象为控件时,根据读取的控件所在页面的页面类名、所在页面的页面标题、所在页面的上一页面类名以及控件内容与配置信息表中操作对象的属性值进行匹配。
在本发明实施例的一种实现方式中,在将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配之后,所述方法还包括:
如果读取的操作对象的属性值与配置信息表中操作对象的属性值匹配失败,则将本次操作事件确定为不予上传事件。
本发明实施例还提供一种客户端自动埋点的装置,用以降低埋点的开发成本,实现根据业务需求定义事件名称等属性,减少垃圾数据,该装置包括:
监听模块,用于监听用户在客户端页面上的操作事件,确定操作事件对应的操作对象;
读取模块,用于根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值;
判断模块,用于判断所述属性值中是否包含预先配置的事件名称;
通信模块,用于当所述属性值中包含预先配置的事件名称时,将操作对象的属性值上传至后端服务器。
在本发明实施例的一种实现方式中,所述操作对象包括页面和控件,所述装置还包括代码插入模块,用于:
在页面生命周期方法中插入预先编写的第一采集代码;
利用AOP技术在控件点击的onClick事件中插入预先编写的第二采集代码;
读取模块,用于:
当所述操作对象为页面时,根据页面的实例,利用第一采集代码读取页面的属性值;
当所述操作对象为控件时,根据控件的实例,利用第二采集代码读取控件的属性值。
在本发明实施例的一种实现方式中,所述操作对象包括页面和控件,所述通信模块,还用于:
接收开发人员配置的操作对象的自定义属性值;其中,页面的自定义属性值包括页面事件名称和页面ID,控件的自定义属性值包括控件事件名称和控件所在页面的页面ID;
读取模块,用于:
根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的系统属性值和/或自定义属性值;其中,页面的系统属性值包括页面类名、上一页面类名、页面路径、页面宽高、页面屏幕横竖屏方向和页面标题;控件的系统属性值包括控件ID、控件内容、控件路径、控件类型和控件所在页面的页面类名。
在本发明实施例的一种实现方式中,所述装置还包括:
配置模块,用于根据操作对象的自定义属性值和系统属性值生成配置信息表;
判断模块,用于:
根据配置信息表判断所述属性值中是否包含预先配置的事件名称。
在本发明实施例的一种实现方式中,所述装置还包括:
匹配模块,用于当所述属性值中不包含所述操作事件的事件名称时,将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配;
通信模块,还用于读取的操作对象的属性值与配置信息表中操作对象的属性值匹配成功,则将配置信息表中相应操作对象的属性值与读取的操作对象的属性值合并后,上传至后端服务器。
在本发明实施例的一种实现方式中,匹配模块,用于:
当操作对象为页面时,根据读取的页面类名、页面标题、上一页面类名与配置信息表中操作对象的属性值进行匹配;
当操作对象为控件时,根据读取的控件所在页面的页面类名、所在页面的页面标题、所在页面的上一页面类名以及控件内容与配置信息表中操作对象的属性值进行匹配。
在本发明实施例的一种实现方式中,所述装置还包括:
确定模块,用于当读取的操作对象的属性值与配置信息表中操作对象的属性值匹配失败时,将本次操作事件确定为不予上传事件。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述客户端自动埋点的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述客户端自动埋点的方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述客户端自动埋点的方法。
本发明实施例中,监听用户在客户端页面上的操作事件,并确定操作事件对应的操作对象,利用预先插入的采集代码读取操作对象的属性值,当属性值中包含预先配置的事件名称时,将操作对象的属性值上传至后端服务器,这样,可以通过少量的采集代码埋点即可实现自动采集操作对象的属性值,减少了所需埋点的代码的数量,避免埋点代码与正常业务逻辑混杂一起,从而减少了开发成本;此外,通过预先配置操作事件的事件名称等属性值,将属性值中包含事件名称的操作事件的属性值上传,实现了准确识别采集事件,提升采集数据识别率,同时限制了所需采集的操作事件的范围,快速筛选出所需采集数据,减少冗余数据,减轻后端服务器的压力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为现有技术中一种代码埋点的数据采集过程的示意图;
图2为现有技术中一种全埋点的数据采集过程的示意图;
图3为现有技术中一种可视化埋点的数据采集过程的示意图;
图4为本发明实施例中一种客户端自动埋点的方法的流程图;
图5为本发明实施例中一种客户端自动埋点的方法的另一种流程图;
图6为本发明实施例中一种客户端自动埋点的方法的另一种流程图;
图7为本发明实施例中一种客户端自动埋点的方法的另一种流程图;
图8为本发明实施例中一种客户端自动埋点的方法的另一种流程图;
图9为本发明实施例中一种客户端自动埋点的装置的结构示意图;
图10为本发明实施例中一种计算机设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
首先需要说明的是,本发明技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
本发明实施例提供了一种客户端自动埋点的方法,如图4所示,该方法包括如下步骤401至步骤404:
步骤401、监听用户在客户端页面上的操作事件,确定操作事件对应的操作对象。
其中,操作对象包括页面和控件,操作事件包括页面的打开与关闭,以及控件的点击或曝光,分别称为页面浏览事件和控件点击事件。
步骤402、根据操作对象的实例,利用预先插入的采集代码读取操作对象的属性值。
为了分别实现对于页面和控件的属性值读取,本发明实施例中,在根据操作对象的实例,利用预先插入的采集代码读取操作对象的系统属性值之前,还在页面生命周期方法中插入预先编写的第一采集代码;利用AOP技术在控件点击的onClick事件中插入预先编写的第二采集代码。
其中,实例是对象的具体表示,用来模拟现实世界中存在的、具体的或原型的东西。实例即代表的是应用、页面、控件等对象的本身,标识一个对象。onClick移动应用开发中点击时发生的一种事件。
页面生命周期方法是可以单独注册的,与业务功能代码分离,因此,在页面生命周期方法中插入第一采集代码,不会对业务功能代码的实现产生影响。
在第一采集代码和第二采集代码布设好后,根据操作对象的不同,分别利用不同的采集代码读取操作对象的属性值。具体的,当页面打开或关闭时,确定操作对象为页面,触发页面生命周期方法,根据页面的实例,利用第一采集代码读取页面的属性值;用户点击或控件曝光时,确定操作对象为控件,自动触发onClick事件,在onClick事件中插入的第二采集代码,持有当前点击控件实例的引用,根据控件的实例,利用第二采集代码读取控件的属性值。
属性值,分为自定义属性值和系统属性值。自定义属性值由开发人员配置。具体的,如图5所示,在执行步骤402根据操作对象的实例,利用预先插入的采集代码读取操作对象的属性值之前,还可以执行如下步骤501:
步骤501、接收开发人员配置的操作对象的自定义属性值。
其中,页面的自定义属性值包括页面事件名称和页面ID,控件的自定义属性值包括控件事件名称和控件所在页面的页面ID。
当步骤501执行完之后,步骤402可以执行为如下步骤4021:
步骤4021、根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的系统属性值和/或自定义属性值。
页面及控件都分别具有公共的基类,事件属性统一定义在基类中,开发人员在开发具体功能时,可以在相应的基类中添加或修改页面或控件的自定义属性值。
系统属性值为一般页面或控件在开发中均会设置的属性值,其中,页面的系统属性值包括页面类名、上一页面类名、页面路径、页面宽高、页面屏幕横竖屏方向和页面标题;控件的系统属性值包括控件ID、控件内容、控件路径、控件类型和控件所在页面的页面类名。
考虑到一些操作对象,如存量的页面或者集成某些第三方SDK的界面来说,不一定存在自定义属性值,因此,根据操作对象的实例,利用预先插入的采集代码读取的属性值中,包含系统属性值,可能包含自定义属性值,也可能不包含自定义属性值。
需要说明的是,如果页面或控件中存在某一自定义属性值与系统属性值的属性名称相同,则以自定义属性值为准。
步骤403、判断属性值中是否包含预先配置的事件名称。
在本发明实施例的另一种实现方式中,为了方便判断读取的操作对象的属性值中判断是否包含预先配置的事件名称,如图6所示,在执行步骤501接收开发人员配置的操作对象的自定义属性值之后,还可以执行如下步骤601:
步骤601、根据操作对象的自定义属性值和系统属性值生成配置信息表。
该配置信息表中包含所有操作对象及对应的自定义属性值和系统属性值。
在执行步骤601之后,步骤403执行为如下步骤4031:
步骤4031、根据配置信息表判断属性值中是否包含预先配置的事件名称。
该配置信息表可以由后端服务器生成后下发至客户端,客户端将读取的属性值与配置信息表中的事件名称等属性进行比对,从而判断属性值中是否包含预先配置的事件名称。
步骤404、如果属性值中包含预先配置的事件名称,则将操作对象的属性值上传至后端服务器。
除了上传操作对象的属性值之外,还可以根据开发人员的设置,上传属性值之外的其他与操作事件相关的数据,例如操作事件的发生时间、发生地点等。
考虑到每次采集到操作对象的属性值后都实时将数据上传至后端服务器,这样操作较为频繁,会占用较多的传输资源,本发明实施例中,可以先将采集的属性值存储在本地数据库中,后续统一上传至后端服务器。
在另一种实现方式中,如图7所示,在执行步骤403之后,还可以执行如下步骤701和步骤702:
步骤701、如果属性值中不包含操作事件的事件名称,则将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配;
步骤702、如果读取的操作对象的属性值与配置信息表中操作对象的属性值匹配成功,则将配置信息表中相应操作对象的属性值与读取的操作对象的属性值合并后,上传至后端服务器。
具体的,当操作对象为页面时,根据读取的页面类名、页面标题、上一页面类名与配置信息表中操作对象的属性值进行匹配。
当操作对象为控件时,根据读取的控件所在页面的页面类名、所在页面的页面标题、所在页面的上一页面类名以及控件内容与配置信息表中操作对象的属性值进行匹配。
由于可能存在一些想要采集数据的操作对象未配置自定义属性值,但该部分操作对象在埋点采集范围之内,在这种情况下,可以将获取到的操作对象的系统属性值与配置信息表做相关映射,以页面为例,将读取的操作对象的系统属性值匹配相同页面类名、相同页面标题、相同上一页面类名的配置信息表中操作对象属性值。
如果能够匹配成功,则将配置信息表中匹配到事件名称作为本次操作事件的事件名称,将配置信息表中相应操作对象的属性值与读取的操作对象的属性值合并后,上传至后端服务器。
在另一种实现方式中,如图8所示,在执行步骤701如果属性值中不包含操作事件的事件名称,则将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配之后,还可以执行如下步骤801:
步骤801、如果读取的操作对象的属性值与配置信息表中操作对象的属性值匹配失败,则将本次操作事件确定为不予上传事件。
配置信息表中包含了开发人员配置的想要采集的操作事件的属性值,如果读取的操作对象的属性值与配置信息表中操作对象的属性值匹配失败,则表明本次操作事件在埋点采集范围之外,因此将本次操作事件确定为不予上传事件。
本发明实施例中,监听用户在客户端页面上的操作事件,并确定操作事件对应的操作对象,利用预先插入的采集代码读取操作对象的属性值,当属性值中包含预先配置的事件名称时,将操作对象的属性值上传至后端服务器,这样,可以通过少量的采集代码埋点即可实现自动采集操作对象的属性值,减少了所需埋点的代码的数量,避免埋点代码与正常业务逻辑混杂一起,从而减少了开发成本;此外,通过预先配置操作事件的事件名称等属性值,将属性值中包含事件名称的操作事件的属性值上传,实现了准确识别采集事件,提升采集数据识别率,同时限制了所需采集的操作事件的范围,快速筛选出所需采集数据,减少冗余数据,减轻后端服务器的压力。
本发明实施例中还提供了一种客户端自动埋点的装置,如下面的实施例所述。由于该装置解决问题的原理与客户端自动埋点的方法相似,因此该装置的实施可以参见客户端自动埋点的方法的实施,重复之处不再赘述。
如图9所示,该装置900包括监听模块901、读取模块902、判断模块903和通信模块904。
其中,监听模块901,用于监听用户在客户端页面上的操作事件,确定操作事件对应的操作对象;
读取模块902,用于根据操作对象的实例,利用预先插入的采集代码读取操作对象的属性值;
判断模块903,用于判断属性值中是否包含预先配置的事件名称;
通信模块904,用于当属性值中包含操作事件的事件名称时,将操作对象的属性值上传至后端服务器。
在本发明实施例的一种实现方式中,操作对象包括页面和控件,装置还包括代码插入模块,用于:
在页面生命周期方法中插入预先编写的第一采集代码;
利用AOP技术在控件点击的onClick事件中插入预先编写的第二采集代码;
读取模块,用于:
当操作对象为页面时,根据页面的实例,利用第一采集代码读取页面的属性值;
当操作对象为控件时,根据控件的实例,利用第二采集代码读取控件的属性值。
在本发明实施例的一种实现方式中,操作对象包括页面和控件,通信模块,还用于:
接收开发人员配置的操作对象的自定义属性值;其中,页面的自定义属性值包括页面事件名称和页面ID,控件的自定义属性值包括控件事件名称和控件所在页面的页面ID;
读取模块,用于:
根据操作对象的实例,利用预先插入的采集代码读取操作对象的系统属性值和/或自定义属性值;其中,页面的系统属性值包括页面类名、上一页面类名、页面路径、页面宽高、页面屏幕横竖屏方向和页面标题;控件的系统属性值包括控件ID、控件内容、控件路径、控件类型和控件所在页面的页面类名。
在本发明实施例的一种实现方式中,装置还包括:
配置模块,用于根据操作对象的自定义属性值和系统属性值生成配置信息表;
判断模块,用于:
根据配置信息表判断属性值中是否包含预先配置的事件名称。
在本发明实施例的一种实现方式中,装置还包括:
匹配模块,用于当属性值中不包含操作事件的事件名称时,将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配;
通信模块,还用于读取的操作对象的属性值与配置信息表中操作对象的属性值匹配成功,则将配置信息表中相应操作对象的属性值与读取的操作对象的属性值合并后,上传至后端服务器。
在本发明实施例的一种实现方式中,匹配模块,用于:
当操作对象为页面时,根据读取的页面类名、页面标题、上一页面类名与配置信息表中操作对象的属性值进行匹配;
当操作对象为控件时,根据读取的控件所在页面的页面类名、所在页面的页面标题、所在页面的上一页面类名以及控件内容与配置信息表中操作对象的属性值进行匹配。
在本发明实施例的一种实现方式中,装置还包括:
确定模块,用于当读取的操作对象的属性值与配置信息表中操作对象的属性值匹配失败时,将本次操作事件确定为不予上传事件。
本发明实施例中,监听用户在客户端页面上的操作事件,并确定操作事件对应的操作对象,利用预先插入的采集代码读取操作对象的属性值,当属性值中包含预先配置的事件名称时,将操作对象的属性值上传至后端服务器,这样,可以通过少量的采集代码埋点即可实现自动采集操作对象的属性值,减少了所需埋点的代码的数量,避免埋点代码与正常业务逻辑混杂一起,从而减少了开发成本;此外,通过预先配置操作事件的事件名称等属性值,将属性值中包含事件名称的操作事件的属性值上传,实现了准确识别采集事件,提升采集数据识别率,同时限制了所需采集的操作事件的范围,快速筛选出所需采集数据,减少冗余数据,减轻后端服务器的压力。
本发明实施例还提供一种计算机设备,图10为本发明实施例中计算机设备的示意图,该计算机设备能够实现上述实施例中的客户端自动埋点的方法中全部步骤,该计算机设备具体包括如下内容:
处理器(processor)1001、存储器(memory)1002、通信接口(CommunicationsInterface)1003和通信总线1004;
其中,所述处理器1001、存储器1002、通信接口1003通过所述通信总线1004完成相互间的通信;所述通信接口1003用于实现相关设备之间的信息传输;
所述处理器1001用于调用所述存储器1002中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的客户端自动埋点的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述客户端自动埋点的方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述客户端自动埋点的方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种客户端自动埋点的方法,其特征在于,所述方法包括:
监听用户在客户端页面上的操作事件,确定操作事件对应的操作对象;
根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值;
判断所述属性值中是否包含预先配置的事件名称;
如果所述属性值中包含预先配置的事件名称,则将操作对象的属性值上传至后端服务器。
2.根据权利要求1所述的方法,其特征在于,所述操作对象包括页面和控件,在根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的系统属性值之前,所述方法还包括:
在页面生命周期方法中插入预先编写的第一采集代码;
利用AOP技术在控件点击的onClick事件中插入预先编写的第二采集代码;
根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值,包括:
当所述操作对象为页面时,根据页面的实例,利用第一采集代码读取页面的属性值;
当所述操作对象为控件时,根据控件的实例,利用第二采集代码读取控件的属性值。
3.根据权利要求1所述的方法,其特征在于,所述操作对象包括页面和控件,在根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值之前,所述方法还包括:
接收开发人员配置的操作对象的自定义属性值;其中,页面的自定义属性值包括页面事件名称和页面ID,控件的自定义属性值包括控件事件名称和控件所在页面的页面ID;
根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值,包括:
根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的系统属性值和/或自定义属性值;其中,页面的系统属性值包括页面类名、上一页面类名、页面路径、页面宽高、页面屏幕横竖屏方向和页面标题;控件的系统属性值包括控件ID、控件内容、控件路径、控件类型和控件所在页面的页面类名。
4.根据权利要求3所述的方法,其特征在于,在接收开发人员配置的操作对象的自定义属性值之后,所述方法还包括:
根据操作对象的自定义属性值和系统属性值生成配置信息表;
判断所述属性值中是否包含预先配置的事件名称,包括:
根据配置信息表判断所述属性值中是否包含预先配置的事件名称。
5.根据权利要求4所述的方法,其特征在于,在判断所述属性值中是否包含预先配置的事件名称之后,所述方法还包括:
如果所述属性值中不包含所述操作事件的事件名称,则将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配;
如果读取的操作对象的属性值与配置信息表中操作对象的属性值匹配成功,则将配置信息表中相应操作对象的属性值与读取的操作对象的属性值合并后,上传至后端服务器。
6.根据权利要求5所述的方法,其特征在于,将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配,包括:
当操作对象为页面时,根据读取的页面类名、页面标题、上一页面类名与配置信息表中操作对象的属性值进行匹配;
当操作对象为控件时,根据读取的控件所在页面的页面类名、所在页面的页面标题、所在页面的上一页面类名以及控件内容与配置信息表中操作对象的属性值进行匹配。
7.根据权利要求5或6所述的方法,其特征在于,在将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配之后,所述方法还包括:
如果读取的操作对象的属性值与配置信息表中操作对象的属性值匹配失败,则将本次操作事件确定为不予上传事件。
8.一种客户端自动埋点的装置,其特征在于,所述装置包括:
监听模块,用于监听用户在客户端页面上的操作事件,确定操作事件对应的操作对象;
读取模块,用于根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的属性值;
判断模块,用于判断所述属性值中是否包含预先配置的事件名称;
通信模块,用于当所述属性值中包含预先配置的事件名称时,将操作对象的属性值上传至后端服务器。
9.根据权利要求8所述的装置,其特征在于,所述操作对象包括页面和控件,所述装置还包括代码插入模块,用于:
在页面生命周期方法中插入预先编写的第一采集代码;
利用AOP技术在控件点击的onClick事件中插入预先编写的第二采集代码;
读取模块,用于:
当所述操作对象为页面时,根据页面的实例,利用第一采集代码读取页面的属性值;
当所述操作对象为控件时,根据控件的实例,利用第二采集代码读取控件的属性值。
10.根据权利要求8所述的装置,其特征在于,所述操作对象包括页面和控件,所述通信模块,还用于:
接收开发人员配置的操作对象的自定义属性值;其中,页面的自定义属性值包括页面事件名称和页面ID,控件的自定义属性值包括控件事件名称和控件所在页面的页面ID;
读取模块,用于:
根据所述操作对象的实例,利用预先插入的采集代码读取操作对象的系统属性值和/或自定义属性值;其中,页面的系统属性值包括页面类名、上一页面类名、页面路径、页面宽高、页面屏幕横竖屏方向和页面标题;控件的系统属性值包括控件ID、控件内容、控件路径、控件类型和控件所在页面的页面类名。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
配置模块,用于根据操作对象的自定义属性值和系统属性值生成配置信息表;
判断模块,用于:
根据配置信息表判断所述属性值中是否包含预先配置的事件名称。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
匹配模块,用于当所述属性值中不包含所述操作事件的事件名称时,将读取的操作对象的属性值与配置信息表中操作对象的属性值进行匹配;
通信模块,还用于读取的操作对象的属性值与配置信息表中操作对象的属性值匹配成功,则将配置信息表中相应操作对象的属性值与读取的操作对象的属性值合并后,上传至后端服务器。
13.根据权利要求12所述的装置,其特征在于,匹配模块,用于:
当操作对象为页面时,根据读取的页面类名、页面标题、上一页面类名与配置信息表中操作对象的属性值进行匹配;
当操作对象为控件时,根据读取的控件所在页面的页面类名、所在页面的页面标题、所在页面的上一页面类名以及控件内容与配置信息表中操作对象的属性值进行匹配。
14.根据权利要求12或13所述的装置,其特征在于,所述装置还包括:
确定模块,用于当读取的操作对象的属性值与配置信息表中操作对象的属性值匹配失败时,将本次操作事件确定为不予上传事件。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210163338.3A CN114706738A (zh) | 2022-02-22 | 2022-02-22 | 客户端自动埋点的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210163338.3A CN114706738A (zh) | 2022-02-22 | 2022-02-22 | 客户端自动埋点的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114706738A true CN114706738A (zh) | 2022-07-05 |
Family
ID=82166658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210163338.3A Pending CN114706738A (zh) | 2022-02-22 | 2022-02-22 | 客户端自动埋点的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706738A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328781A (zh) * | 2022-08-15 | 2022-11-11 | 杭州比智科技有限公司 | 一种基于web端的无侵入埋点数据收集方法及系统 |
-
2022
- 2022-02-22 CN CN202210163338.3A patent/CN114706738A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328781A (zh) * | 2022-08-15 | 2022-11-11 | 杭州比智科技有限公司 | 一种基于web端的无侵入埋点数据收集方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103150249B (zh) | 一种自动化测试的方法和系统 | |
EP2228726B1 (en) | A method and system for task modeling of mobile phone applications | |
CN112835560A (zh) | Web多终端低代码智能软件开发平台 | |
CN111124906A (zh) | 基于动态埋点的跟踪方法、编译方法、装置和电子设备 | |
CN111427561A (zh) | 业务代码的生成方法、装置、计算机设备和存储介质 | |
CN108845940A (zh) | 一种企业级信息系统自动化功能测试方法和系统 | |
CN107480036A (zh) | iOS移动应用的自动测试方法、装置、存储介质及终端 | |
US20060020931A1 (en) | Method and apparatus for managing complex processes | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN112017007A (zh) | 用户行为数据的处理方法及装置、计算机设备、存储介质 | |
CN114398293A (zh) | 接口测试用例生成方法、电子设备和存储介质 | |
CN117931620A (zh) | 一种降低智能终端系统测试技术门槛的自动化测试方法 | |
CN115857886A (zh) | 基层政务应用的低代码开发平台 | |
CN114706738A (zh) | 客户端自动埋点的方法及装置 | |
CN114356704A (zh) | 一种面向云网端流式数据的软件定义方法和系统 | |
CN110362767B (zh) | 埋点处理方法、装置、系统及计算机可读存储介质 | |
CN111338609B (zh) | 信息获取方法、装置、存储介质及终端 | |
CN111258893A (zh) | 随机组装交易路径的移动端应用自动化测试装置 | |
CN113220561A (zh) | 一种测试用例管理方法、装置、设备及介质 | |
CN116361137A (zh) | 业务调用链追踪方法、装置、电子设备和可读存储介质 | |
CN115291938A (zh) | 用于电子证据分析的组件配置方法及系统 | |
CN113515715B (zh) | 埋点事件编码的生成方法、处理方法及相关设备 | |
CN113867714A (zh) | 一种适配多语言的自动代码生成方法 | |
CN108762745B (zh) | 业务的脚本生成方法及装置 | |
CN113010434A (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 |