CN110908880B - 埋点代码注入方法、事件上报方法及其相关设备 - Google Patents
埋点代码注入方法、事件上报方法及其相关设备 Download PDFInfo
- Publication number
- CN110908880B CN110908880B CN201911060651.9A CN201911060651A CN110908880B CN 110908880 B CN110908880 B CN 110908880B CN 201911060651 A CN201911060651 A CN 201911060651A CN 110908880 B CN110908880 B CN 110908880B
- Authority
- CN
- China
- Prior art keywords
- buried point
- event
- target
- point
- class
- 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
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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
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
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种埋点代码注入方法、事件上报方法及其相关设备。
背景技术
随着互联网技术的快速发展,各种基于互联网的应用程序(Application,简称App)应运而生,为了整体上验证应用程序的业务逻辑是否顺畅,以及功能的使用情况等,需要通过在应用程序中加入埋点获取应用程序的数据指标进行验证。比如,在开发游戏程序时,需要在该游戏程序上线前的阶段,加入埋点,用于统计用户的行为,比如,在游戏商店的页面中,有10种商品,通过加入埋点,来统计这10种商品的购买数量,通过埋点统计的数据可了解哪种商品卖得更好,对游戏程序做出优化调整。因此,通过埋点,可以了解用户对当前应用程序功能的使用情况,可以更好的优化和改进应用程序。
然而,由于在实际开发的过程中,会有大量的埋点需求,几十到上百个,而且埋点也更加的复杂和细节化,比如抽奖统计,不仅要统计抽奖的次数,可能还需要统计在点击抽奖之前用户从哪个页面点击进来的、抽奖花钱总数、以及如果抽奖失败了,失败的原因等。因此,相关技术中,将不同埋点定义在应用程序的各个功能模块以进行各类数据的统计,但是,将埋点定义在不同的模块中导致埋点代码的查找不便,增加阅读代码的时间,尤其是当需求变更时,会导致当前埋点不适合定义在当前模块中,需重新定义埋点位置,降低了开发效率。
发明内容
本申请的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本申请的第一个目的在于提出一种埋点代码注入方法,该方法通过对埋点需求进行分析,重新设计其实现结构,使其形成独立的功能模块,并通过预先将每个埋点分别定义成一个类,将这些埋点类统一定义于一个代理类中,通过在该代理类中调用埋点类,保持了接口的统一性,提高了添加、修改以及理解埋点的效率。
本申请的第二个目的在于提出一种事件上报方法。
本申请的第三个目的在于提出一种埋点代码注入装置。
本申请的第四个目的在于提出一种事件上报装置。
本申请的第五个目的在于提出一种电子设备。
本申请的第六个目的在于提出一种计算机可读存储介质。
本申请的第七个目的在于提出另一种电子设备。
本申请的第八个目的在于提出另一种计算机可读存储介质。
为达上述目的,本申请第一方面实施例提出了一种埋点代码注入方法,包括:根据埋点需求获取对应埋点的埋点代码;所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于所述代理类中;根据埋点需求,确定在目标项目中能够获取埋点需求的目标位置;将对应埋点的埋点代码注入至目标项目的目标位置。
本申请实施例的埋点代码注入方法,根据埋点需求获取对应埋点的埋点代码;所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于所述代理类中;根据埋点需求,确定在目标项目中能够获取埋点需求的目标位置;将对应埋点的埋点代码注入至目标项目的目标位置。该方法通过对埋点需求进行分析,由预先定义的代理类和预先定义的埋点类来生成对应的埋点代码,进而将该埋点代码注入到相应位置上,在本申请中,通过重新设计埋点的实现结构,使其形成独立的功能模块,并通过预先将每个埋点分别定义成一个类,将这些埋点类统一定义于一个代理类中,通过在该代理类中调用埋点类,保持了接口的统一性,这样,若想要找某个埋点类,直接去找该代理类即可,提高了添加、修改以及理解埋点的效率。
根据本申请的一个实施例,根据埋点需求获取对应埋点的埋点代码,包括:
根据埋点需求,从预先定义的代理类中获取对应的目标埋点类;根据埋点需求,从对应的目标埋点类中获取对应的目标参数;根据代理类、对应的目标埋点类和对应的目标参数,生成对应埋点的埋点代码。
根据本申请的一个实施例,所述埋点代码注入方法还包括:预先定义代理类;根据所述目标项目的业务需求,预先在所述代理类中定义对应的所有埋点类;在所述所有埋点类中,定义各埋点类的所有参数。
为达上述目的,本申请第二方面实施例提出了一种事件上报方法,包括:在触发预先设定有埋点的事件时,获取所述事件;提取所述事件的总统计信息;所述总统计信息是基于所述事件对应的埋点代码而获得,其中,所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,所述埋点类被定义于所述代理类中;根据所述埋点所注入的场景,确定所述埋点下待上传的目标参数;根据所述埋点下待上传的目标参数和所述事件的总统计信息,生成对应的待上报事件统计信息;上报所述事件以及所述待上报事件统计信息。
本申请实施例的事件上报方法,在触发预先设定有埋点的事件时,获取所述事件;提取所述事件的总统计信息;所述总统计信息是基于所述事件对应的埋点代码而获得,其中,所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,所述埋点类被定义于所述代理类中;根据所述埋点所注入的场景,确定所述埋点下待上传的目标参数;根据所述埋点下待上传的目标参数和所述事件的总统计信息,生成对应的待上报事件统计信息;上报所述事件以及所述待上报事件统计信息。该方法通过预先将每个埋点分别定义成一个类,将这些埋点类统一定义于一个代理类中,进而通过预先定义的代理类和预先定义的埋点类来生成对应的埋点代码,可以提高添加、修改以及理解埋点代码的效率,并且,通过在该代理类中调用埋点类,保持了接口的统一性这样,若想要找某个埋点类,直接去找该代理类即可。另外,根据埋点所注入的场景,初始化不同的参数值,确定埋点下待上传的目标参数,并根据埋点下待上传的目标参数和事件的总统计信息,生成对应的待上报事件的统计信息。由此,避免了上报其他行为无关的参数上报,提高了事件上报的准确性。
根据本申请的一个实施例,事件上报方法还包括:根据所述埋点的类型确定事件上报时机;在当前状态满足所述事件上报时机时,执行所述提取所述事件的总统计信息的步骤。
根据本申请的一个实施例,根据所述埋点下待上传的目标参数和所述事件的总统计信息,生成对应的待上报事件统计信息,包括:从所述事件的总统计信息中,获取所述目标参数对应的统计信息;将所述埋点下除所述目标参数之外的其他参数所对应的统计信息设置为目标阈值;根据所述目标参数对应的统计信息和所述其他参数所对应的统计信息,生成对应的待上报事件统计信息。
根据本申请的一个实施例,所述目标阈值为数字0或字符“空”。
为达上述目的,本申请第三方面实施例提出了一种埋点代码注入装置,包括:埋点代码获取模块,用于根据埋点需求获取对应埋点的埋点代码;所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,所述埋点类被定义于所述代理类中;埋点注入位置确定模块,用于根据所述埋点需求,确定在目标项目中能够获取所述埋点需求的目标位置;埋点注入模块,用于将所述对应埋点的埋点代码注入至所述目标项目的所述目标位置。
本申请实施例的埋点代码注入装置,根据埋点需求获取对应埋点的埋点代码;所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于所述代理类中;根据埋点需求,确定在目标项目中能够获取埋点需求的目标位置;将对应埋点的埋点代码注入至目标项目的目标位置。该装置可实现通过对埋点需求进行分析,由预先定义的代理类和预先定义的埋点类来生成对应的埋点代码,进而将该埋点代码注入到相应位置上,在本申请中,通过重新设计埋点的实现结构,使其形成独立的功能模块,并通过预先将每个埋点分别定义成一个类,将这些埋点类统一定义于一个代理类中,保持了接口的统一性,这样,若想要找某个埋点类,直接去找该代理类即可,提高了添加、修改以及理解埋点的效率。
根据本申请的一个实施例,埋点代码获取模块具体用于:根据埋点需求,从所述预先定义的代理类中获取对应的目标埋点类;根据所述埋点需求,从所述对应的目标埋点类中获取对应的目标参数;根据所述代理类、所述对应的目标埋点类和所述对应的目标参数,生成对应埋点的埋点代码。
根据本申请的一个实施例,所述埋点代码注入装置还包括:预定义模块,用于预先定义代理类,并根据所述目标项目的业务需求,预先在所述代理类中定义对应的所有埋点类,以及在所述所有埋点类中,定义各埋点类的所有参数。
为达上述目的,本申请第四方面实施例提出了一种事件上报装置,包括:事件获取模块,用于在触发预先设定有埋点的事件时,获取所述事件;提取模块,用于提取所述事件的总统计信息;所述总统计信息是基于所述事件对应的埋点代码而获得,其中,所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,所述埋点类被定义于所述代理类中;待上传参数确定模块,用于根据所述埋点所注入的场景,确定所述埋点下待上传的目标参数;待上报事件统计信息生成模块,用于根据所述埋点下待上传的目标参数和所述事件的总统计信息,生成对应的待上报事件统计信息;上报模块,用于上报所述事件以及所述待上报事件统计信息。
本申请实施例的事件上报装置,在触发预先设定有埋点的事件时,获取所述事件;提取所述事件的总统计信息;所述总统计信息是基于所述事件对应的埋点代码而获得,其中,所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,所述埋点类被定义于所述代理类中;根据所述埋点所注入的场景,确定所述埋点下待上传的目标参数;根据所述埋点下待上传的目标参数和所述事件的总统计信息,生成对应的待上报事件统计信息;上报所述事件以及所述待上报事件统计信息。该装置通过预先将每个埋点分别定义成一个类,将这些埋点类统一定义于一个代理类中,进而通过预先定义的代理类和预先定义的埋点类来生成对应的埋点代码,可以提高添加、修改以及理解埋点代码的效率,并且,通过在该代理类中调用埋点类,保持了接口的统一性这样,若想要找某个埋点类,直接去找该代理类即可。另外,根据埋点所注入的场景,初始化不同的参数值,确定埋点下待上传的目标参数,并根据埋点下待上传的目标参数和事件的总统计信息,生成对应的待上报事件的统计信息。由此,避免其它与上报行为无关的参数上报,提高了事件上报的准确性。
根据本申请的一个实施例,所述事件上报装置还包括:事件上报时机确定模块,用于根据所述埋点的类型确定事件上报时机;其中,所述提取模块具体用于:在当前状态满足所述事件上报时机时,提取所述事件的总统计信息。
根据本申请的一个实施例,待上报事件统计信息生成模块具体用于:从所述事件的总统计信息中,获取所述目标参数对应的统计信息;将所述埋点下除所述目标参数之外的其他参数所对应的统计信息设置为目标阈值;根据所述目标参数对应的统计信息和所述其他参数所对应的统计信息,生成对应的待上报事件统计信息。
根据本申请的一个实施例,目标阈值为数字0或字符“空”。
为达上述目的,本申请第五方面实施例提出了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请第一方面实施例所述的埋点代码注入方法。
为达上述目的,本申请第六方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请第一方面实施例所述的埋点代码注入方法。
为达上述目的,本申请第七方面实施例提出了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请第二方面实施例所述的事件上报方法。
为达上述目的,本申请第八方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请第二方面实施例所述的事件上报方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本申请一个实施例的埋点代码注入方法的流程示意图。
图2是根据本申请一个实施例的埋点类代码示意图。
图3是根据本申请一个实施例的代理类和埋点类结构示意图。
图4是根据本申请另一个实施例的埋点代码注入方法的流程示意图。
图5是根据本申请一个实施例的不同的场景位置代码示意图。
图6是根据本申请一个实施例的事件上报方法的流程示意图。
图7是根据本申请一个实施例的埋点待上传参数代码示意图。
图8是根据本申请另一个实施例的代理类和埋点类结构示意图。
图9是根据本申请一个实施例的埋点代码注入装置的结构示意图。
图10是根据本申请另一个实施例的埋点代码注入装置的结构示意图。
图11是根据本申请一个实施例的事件上报装置的结构示意图。
图12是根据本申请另一个实施例的事件上报装置的结构示意图。
图13示出了适于用来实现本申请实施方式的示例性电子设备的框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的埋点代码注入方法、事件上报方法、装置、电子设备和计算机可读存储介质。
图1是根据本申请一个实施例的埋点代码注入方法的流程图。
如图1所示,该埋点代码注入方法包括以下步骤:
步骤101,根据埋点需求获取对应埋点的埋点代码;埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于代理类中。
在本申请实施例中,埋点需求可理解为在应用程序中该埋点所实现的具体数据指标统计的功能,比如,游戏中钻石消耗的统计、金币消耗的统计、抽奖情况的统计以及视频广告观看情况的统计等。
其中,每个埋点可具有一个唯一标识,通常称该标识为“事件”,事件的名称通常和埋点需求相关。每个事件中可包含一个或多个参数,每个参数代表不同的含义,用于统计不同的数据。在本申请实施例中,可将每个埋点分别定义成一个类,作为埋点类,类的名称可为事件的名称,类中的成员可为事件中的参数。作为一种示例,可根据目标项目的业务需求,定义对应的所有埋点类;在所有埋点类中,定义各埋点类的所有参数。比如,游戏类应用中的道具购买,该道具购买可包括皮肤、关卡、武器等道具购买,可基于以上购买道具的类型和数据定义埋点类和埋点类的所有参数。由此,通过查找埋点类即可查找到该埋点,并且可使该埋点类中的参数的调用和设置更加方便,结构更加清晰、合理、易于理解。
举例而言,如图2所示,iOSDiamondCost是埋点类的事件名,通过事件名可知,该埋点用于统计钻石消耗,其中,参数Scene表示消耗的场景、参数Clothid表示服装ID、参数Furid表示家具ID、参数Chatwith表示和谁聊天、参数Topicid表示聊天话题ID。
另外,在本申请实施例中,由于埋点类数量较多,放在不同的类中调用,不方便查找,因此,为了提供统一的访问接口,可预先定义一个代理类,将埋点类统一定义于该代理类中,这样,通过访问统一的代理接口,即可查找或调用到需要的埋点类,保证了接口的一致性,还可提高添加、修改以及理解埋点的效率。比如,调用iOSDiamondCost(钻石消耗)埋点事件,不直接调用该埋点事件,而是通过访问代理类,在代理类中进行调用该埋点事件。其中,需要说明的是,每个应用程序中只有一个代理类,代理类中包括多个埋点类,每个埋点类可包括一个或多个参数。
举例而言,如图3所示,为预先设计的一个埋点实现结构,其中,定义了一个统一代理类,该代理类中定义了:钻石消耗、金币消耗、流量统计等埋点类型,每个埋点类包括多个参数。比如,若需要统计钻石消耗的数据,则可从代理类中调取对应的钻石消耗类这个埋点类,参数包含:消耗的数量,消耗具体道具的类型,消耗的场景(即从哪个页面进入到当前的页面),消耗类型的ID,消耗当前的时间,网络状态等。
可以理解,不同的埋点需求对应的埋点代码不同,可选地,如图4所示,可根据埋点需求,从预先定义的代理类中获取对应的目标埋点类,并从该目标埋点类中获取对应的目标参数,之后,根据代理类、对应的目标埋点类和对应的目标参数,生成对应埋点的埋点代码。具体步骤如下:
步骤401,根据埋点需求,从预先定义的代理类中获取对应的目标埋点类。
不难理解,每个埋点具有一个唯一标识,该标识为事件,事件的名字通常和埋点需求相关。比如,事件名称与埋点需求一致。因此,在本申请实施例中,通过查看代理类中的每个埋点类的事件名称即可获取该埋点类对应的埋点需求,当该埋点需求与所述埋点需求一致时,对应的埋点类作为目标埋点类。比如,对于统计游戏中钻石消耗的埋点需求,与代理类中的钻石消耗埋点类的需求一致,代理类中的钻石消耗埋点类即为目标埋点类。
步骤402,根据埋点需求,从对应的目标埋点类中获取对应的目标参数。
在本申请实施例中,每个埋点类可包括一个或多个参数,每个参数代表不同的含义,从对应的目标埋点类中的一个或多个参数中获取对应该埋点需求的参数,作为目标参数。比如,对于统计钻石消耗的数量,可从钻石消耗埋点类中的多个参数中,将用于统计钻石消耗数量的参数,作为目标参数。
步骤403,根据代理类、对应的目标埋点类和对应的目标参数,生成对应埋点的埋点代码。
进一步地,根据埋点需求,在预先定义的代理中获取到对应的目标埋点类,之后,将与埋点需求对应的目标参数在目标埋点类中进行配置,生成对应埋点的埋点代码。
步骤102,根据埋点需求,确定在目标项目中能够获取埋点需求的目标位置。
步骤103,将对应埋点的埋点代码注入至目标项目的目标位置。
不难理解的是,不同埋点类所对应的埋点需求不同,作为一种示例,获取目标项目中埋点类所对应的埋点需求,当目标项目中埋点类对应的埋点需求与所述埋点代码对应的埋点需求一致时,将目标项目中埋点类的位置作为目标位置,并将所述埋点代码注入至目标项目的目标位置。
举例而言,比如,简要代码如图5所示,对于统计钻石消耗(DiamondCost)的场景,包括ABCD四个场景,根据埋点需求,在不同的场景位置加入不同的埋点代码,以进行相关数据的统计。
本申请实施例的埋点代码注入方法,根据埋点需求获取对应埋点的埋点代码;所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于所述代理类中;根据埋点需求,确定在目标项目中能够获取埋点需求的目标位置;将对应埋点的埋点代码注入至目标项目的目标位置。该方法通过对埋点需求进行分析,由预先定义的代理类和预先定义的埋点类来生成对应的埋点代码,进而将该埋点代码注入到相应位置上,在本申请中,通过重新设计埋点的实现结构,使其形成独立的功能模块,并通过预先预先将每个埋点分别定义成一个类,将这些埋点类统一定义于一个代理类中,通过在该代理类中调用埋点类,保持了接口的统一性,这样,若想要找某个埋点类,直接去找该代理类即可,提高了添加、修改以及理解埋点的效率。
在本申请实施例中,在应用程序中设置埋点用于数据统计,进一步地,将统计的数据进行上报,以便于对统计的数据进行分析,对应用程序做出优化调整。如图6所示,具体步骤如下:
步骤601,在触发预先设定有埋点的事件时,获取事件。
在本申请实施例中,当触发预先设定有埋点的事件时,可通过预设函数获取该事件。比如,在预先设定钻石消耗埋点的事件中,当花费钻石购买道具时,触发该事件,可对事件进行监听,通过监听函数获取该事件。其中,预设函数可以是但不限于监听函数。
步骤602,提取事件的总统计信息;总统计信息是基于事件对应的埋点代码而获得,其中,埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于代理类中。
进一步地,获取到预先设定有埋点的事件后,该事件对应的埋点代码中的不同的参数对应着不同的统计数据信息,可对事件中的埋点代码中参数对应的统计信息进行提取,以获取事件的总统计信息。其中,可以理解,埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于代理类中。
举例而言,比如,在用户花钱购买道具后,触发预先设定的钻石消耗埋点事件,对该事件对应的埋点代码中的统计信息进行提取,获取钻石消耗的总统计信息。比如,消耗的数量,消耗具体道具的类型,消耗的场景(即从哪个页面进入到当前的页面),消耗类型的ID,消耗当前的时间,网络状态等。
步骤603,根据埋点所注入的场景,确定埋点下待上传的目标参数。
在本申请实施例中,由于每次事件上报并不需要上报该事件所有的统计信息,比如,购买了衣服,却同时上报了家具的ID,或者,成功购买了却上报失败的原因,导致事件上报的数据混淆。因此,为了提高事件上报的准确性,根据埋点所注入的场景,对上报事件统计信息进行区分,确定埋点下待上传的目标参数。比如,钻石消耗事件中,scene=A时,只上报服装的ID,scene=B时,只上报家具的ID。
步骤604,根据埋点下待上传的目标参数和事件的总统计信息,生成对应的待上报事件统计信息。
为了避免其它与上报行为无关的参数上报,可选地,从事件的总统计信息中,获取目标参数对应的统计信息;将埋点下除目标参数之外的其他参数所对应的统计信息设置为目标阈值;根据目标参数对应的统计信息和其他参数所对应的统计信息,生成对应的待上报事件统计信息。
也就是说,根据目标参数,在总统计信息中获取到与该目标参数对应的统计信息,将目标参数之外的其他参数对应的统计信息设置目标阈值,比如,目标阈值设为0或者字符“空”,之后,根据目标参数对应的统计信息和设置了目标阈值的统计信息,生成对应的待上报事件统计信息。
举例而言,如图7所示,除了scene(一定要上报的参数),其它的参数默认设置为0,通过switch判断,并根据scene初始化不同的值。由此,避免了其它与上报行为无关的参数上报。
步骤605,上报事件以及待上报事件统计信息。
进一步地,对事件以及待上报事件统计信息进行上报,比如,通过ReportData(iOSDiamondCost,params)函数将钻石消耗事件和钻石事件的统计信息上报到服务器。
为了提高本申请的可用性以及可行性,可选地,在本申请的一个实施例中,可根据埋点的类型确定事件上报时机,在当前状态满足事件上报时机时,执行所述提取事件的总统计信息的步骤;或者,在当前状态满足事件上报时机时,直接执行所述上报事件以及待上报事件统计信息。也就是说,可根据埋点的类型确定事件上报时机,在当前状态满足事件上报时机时,可开始提取事件的总统计信息,进而从该事件的总统计信息筛选出待上报事件统计信息,进而上报事件以及待上报事件统计信息;或者,事先就得到待上报事件统计信息,这样在监控到当前状态满足事件上报时机时,可直接将事先得到的待上报事件统计信息和事件进行上报即可。
可以理解,埋点的类型的不同,则该埋点所对应的事件的上报时机也会不同。例如,对于统计购买道具成功的埋点事件,其上报时机则是在道具购买成功时;而对于统计购买道具失败原因的埋点事件,其上报时机则是在道具购买失败时。
本申请实施例的事件上报方法,在触发预先设定有埋点的事件时,获取事件;提取事件的总统计信息;总统计信息是基于事件对应的埋点代码而获得,其中,埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于代理类中;根据埋点所注入的场景,确定埋点下待上传的目标参数;根据埋点下待上传的目标参数和事件的总统计信息,生成对应的待上报事件统计信息;上报事件以及待上报事件统计信息。该方法通过预先将每个埋点分别定义成一个类,将这些埋点类统一定义于一个代理类中,进而通过预先定义的代理类和预先定义的埋点类来生成对应的埋点代码,可以提高添加、修改以及理解埋点代码的效率,并且,通过在该代理类中调用埋点类,保持了接口的统一性这样,若想要找某个埋点类,直接去找该代理类即可。另外,根据埋点所注入的场景,初始化不同的参数值,确定埋点下待上传的目标参数,并根据埋点下待上传的目标参数和事件的总统计信息,生成对应的待上报事件的统计信息。由此,避免了上报其他行为无关的参数上报,提高了事件上报的准确性。
为了更好地说明上述实施例,举例进行说明,如图8所示,在预先定义的代理类ReportProxy中,预先定义埋点类DiamondCost,并在埋点类DiamondCost中并定义scene、clothid、furid、num等参数。其中,scene设置8个场景(8个场景均可以进入到具体购买的界面),根据埋点需求,分别将埋点代码加入到对应的场景位置。比如,在购买衣服和家具时,可在相应的位置加入clothid和furid埋点代码,来记录衣服和家具的ID以及价格。作为一种示例,在购买衣服前设置一个弹窗,该弹窗里显示了衣服的具体价格以及名字等信息,可将埋点加在该弹窗的位置,以获取该衣服的ID和价格。之后,在购买成功时,调用ReportData上报函数将数据上报到服务器,其中,在上报函数中,可根据scene进行判断,当scene为3、5、6时,只上报衣服ID(clothid),其它参数设置为0,当scene为4、7时,只上报家具ID(furid),其它参数设置为0。
与上述几种实施例提供的埋点代码注入方法相对应,本申请的一种实施例还提供一种埋点代码注入装置,由于本申请实施例提供的埋点代码注入装置与上述几种实施例提供的埋点代码注入方法相对应,因此在前述埋点代码注入方法的实施方式也适用于本实施例提供的埋点代码注入装置,在本实施例中不再详细描述。图9为根据本申请一个实施例的埋点代码注入装置的结构示意图。如图9所示,该埋点代码注入装置包括:埋点代码获取模块910、埋点注入位置确定模块920、埋点注入模块930。
其中,埋点代码获取模块910,用于根据埋点需求获取对应埋点的埋点代码;埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于代理类中;埋点注入位置确定模块920,用于根据埋点需求,确定在目标项目中能够获取埋点需求的目标位置;埋点注入模块930,用于将对应埋点的埋点代码注入至目标项目的目标位置。
作为本申请实施例的一种可能实现方式,埋点代码获取模块910具体用于:根据埋点需求,从预先定义的代理类中获取对应的目标埋点类;根据埋点需求,从对应的目标埋点类中获取对应的目标参数;根据代理类、对应的目标埋点类和对应的目标参数,生成对应埋点的埋点代码。
作为本申请实施例的一种可能实现方式,如图10所示,在图9所示基础上,埋点代码注入装置还包括:预定义模块940。
具体地,预定义模块940用于预先定义代理类,并根据目标项目的业务需求,预先在代理类中定义对应的所有埋点类,以及在所有埋点类中,定义各埋点类的所有参数。
本申请实施例的埋点代码注入装置,根据埋点需求获取对应埋点的埋点代码;所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于所述代理类中;根据埋点需求,确定在目标项目中能够获取埋点需求的目标位置;将对应埋点的埋点代码注入至目标项目的目标位置。该装置可实现通过对埋点需求进行分析,由预先定义的代理类和预先定义的埋点类来生成对应的埋点代码,进而将该埋点代码注入到相应位置上,在本申请中,通过重新设计埋点的实现结构,使其形成独立的功能模块,并通过预先将每个埋点分别定义成一个类,将这些埋点类统一定义于一个代理类中,通过在该代理类中调用埋点类,保持了接口的统一性,这样,若想要找某个埋点类,直接去找该代理类即可,提高了添加、修改以及理解埋点的效率。
与上述几种实施例提供的事件上报方法相对应,本申请的一种实施例还提供一种事件上报装置,由于本申请实施例提供的事件上报装置与上述几种实施例提供的事件上报方法相对应,因此在前述事件上报方法的实施方式也适用于本实施例提供的事件上报装置,在本实施例中不再详细描述。图11为根据本申请一个实施例的事件上报装置的结构示意图。如图11所示,该事件上报装置包括:事件获取模块1110、提取模块1120、待上传参数确定模块1130、待上报事件统计信息生成模块1140、上报模块1150。
其中,事件获取模块1110,用于在触发预先设定有埋点的事件时,获取事件;提取模块1120,用于提取事件的总统计信息;总统计信息是基于事件对应的埋点代码而获得,其中,埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于代理类中;待上传参数确定模块1130,用于根据埋点所注入的场景,确定埋点下待上传的目标参数;待上报事件统计信息生成模块1140,用于根据埋点下待上传的目标参数和所述事件的总统计信息,生成对应的待上报事件统计信息;上报模块1150,用于上报事件以及待上报事件统计信息。
作为本申请实施例的一种可能实现方式,如图12所示,在图11所示基础上,事件上报装置还包括:事件上报时机确定模块1160。
其中,事件上报时机确定模块1160,用于根据所述埋点的类型确定事件上报时机;提取模块1120具体用于:在当前状态满足所述事件上报时机时,提取事件的总统计信息。
作为本申请实施例的一种可能实现方式,待上报事件统计信息生成模块1140具体用于:从事件的总统计信息中,获取目标参数对应的统计信息;将埋点下除目标参数之外的其他参数所对应的统计信息设置为目标阈值;根据目标参数对应的统计信息和其他参数所对应的统计信息,生成对应的待上报事件统计信息。
作为本申请实施例的一种可能实现方式,目标阈值为数字0或字符“空”。
本申请实施例的事件上报装置,在触发预先设定有埋点的事件时,获取事件;提取事件的总统计信息;总统计信息是基于事件对应的埋点代码而获得,其中,埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,埋点类被定义于所述代理类中;根据埋点所注入的场景,确定埋点下待上传的目标参数;根据埋点下待上传的目标参数和事件的总统计信息,生成对应的待上报事件统计信息;上报事件以及待上报事件统计信息。该方法通过预先将每个埋点分别定义成一个类,将这些埋点类统一定义于一个代理类中,进而通过预先定义的代理类和预先定义的埋点类来生成对应的埋点代码,可以提高添加、修改以及理解埋点代码的效率,并且,通过在该代理类中调用埋点类,保持了接口的统一性这样,若想要找某个埋点类,直接去找该代理类即可。另外,根据埋点所注入的场景,初始化不同的参数值,确定埋点下待上传的目标参数,并根据埋点下待上传的目标参数和事件的总统计信息,生成对应的待上报事件的统计信息。由此,避免其它与上报行为无关的参数上报,提高了事件上报的准确性。
为了实现上述实施例,本申请实施例还提出一种电子设备,包括处理器和存储器及存储在存储器上并可在处理器上运行的计算机程序;其中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现如上述实施例所描述的埋点代码注入方法。
图13示出了适于用来实现本申请实施方式的示例性电子设备的框图。图13显示的电子设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图13所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及***组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
电子设备12典型地包括多种计算机***可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器29。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***44可以用于读写不可移动的、非易失性磁介质(图13未显示,通常称为“硬盘驱动器”)。尽管图13中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc ReadOnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc ReadOnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多数量据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请图1所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元16通过运行存储在***存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现如上述实施例的埋点代码注入方法。
为了实现上述实施例,本申请实施例还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的埋点代码注入方法。
为了实现上述实施例,本申请实施例还提出另一种电子设备,包括处理器和存储器及存储在存储器上并可在处理器上运行的计算机程序;其中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现如上述实施例所描述的事件上报方法。
为了实现上述实施例,本申请实施例还提出另一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的事件上报方法。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (16)
1.一种埋点代码注入方法,其特征在于,包括:
根据埋点需求从预先定义的代理类中获取对应的目标埋点类,根据所述埋点需求从所述目标埋点类中确定目标参数,根据所述目标埋点类、所述目标参数和所述代理类生成对应埋点的埋点代码;所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,每个埋点具有一个唯一标识,所述标识为事件,将所述每个埋点分别定义成一个埋点类,所有埋点类被定义于所述代理类中;
根据所述埋点需求,确定在目标项目中能够获取所述埋点需求的目标位置;
将所述对应埋点的埋点代码注入至所述目标项目的所述目标位置。
2.根据权利要求1所述的方法,其特征在于,还包括:
预先定义代理类;
根据所述目标项目的业务需求,预先在所述代理类中定义对应的所有埋点类;
在所述所有埋点类中,定义各埋点类的所有参数。
3.一种事件上报方法,其特征在于,包括:
在触发预先设定有埋点的事件时,获取所述事件;
提取所述事件的总统计信息;所述总统计信息是基于所述事件对应的如权利要求1或2所述埋点代码注入方法生成的埋点代码而获得;
根据所述埋点所注入的场景,确定所述埋点下待上传的目标参数;
根据所述埋点下待上传的目标参数和所述事件的总统计信息,生成对应的待上报事件统计信息;
上报所述事件以及所述待上报事件统计信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述埋点的类型确定事件上报时机;
在当前状态满足所述事件上报时机时,执行所述提取所述事件的总统计信息的步骤。
5.根据权利要求3或4所述的方法,其特征在于,根据所述埋点下待上传的目标参数和所述事件的总统计信息,生成对应的待上报事件统计信息,包括:
从所述事件的总统计信息中,获取所述目标参数对应的统计信息;
将所述埋点下除所述目标参数之外的其他参数所对应的统计信息设置为目标阈值;
根据所述目标参数对应的统计信息和所述其他参数所对应的统计信息,生成对应的待上报事件统计信息。
6.根据权利要求5所述的方法,其特征在于,所述目标阈值为数字0或字符“空”。
7.一种埋点代码注入装置,其特征在于,包括:
埋点代码获取模块,用于根据埋点需求从预先定义的代理类中获取对应的目标埋点类,根据所述埋点需求从所述目标埋点类中确定目标参数,根据所述目标埋点类、所述目标参数和所述代理类生成对应埋点的埋点代码;所述埋点代码是通过预先定义的代理类和预先定义的埋点类而生成的,其中,每个埋点具有一个唯一标识,所述标识为事件,将所述每个埋点分别定义成一个埋点类,所有埋点类被定义于所述代理类中;
埋点注入位置确定模块,用于根据所述埋点需求,确定在目标项目中能够获取所述埋点需求的目标位置;
埋点注入模块,用于将所述对应埋点的埋点代码注入至所述目标项目的所述目标位置。
8.根据权利要求7所述的装置,其特征在于,还包括:
预定义模块,用于预先定义代理类,并根据所述目标项目的业务需求,预先在所述代理类中定义对应的所有埋点类,以及在所述所有埋点类中,定义各埋点类的所有参数。
9.一种事件上报装置,其特征在于,包括:
事件获取模块,用于在触发预先设定有埋点的事件时,获取所述事件;
提取模块,用于提取所述事件的总统计信息;所述总统计信息是基于所述事件对应的如权利要求1或2所述埋点代码注入方法生成的埋点代码而获得;
待上传参数确定模块,用于根据所述埋点所注入的场景,确定所述埋点下待上传的目标参数;
待上报事件统计信息生成模块,用于根据所述埋点下待上传的目标参数和所述事件的总统计信息,生成对应的待上报事件统计信息;
上报模块,用于上报所述事件以及所述待上报事件统计信息。
10.根据权利要求9所述的装置,其特征在于,还包括:
事件上报时机确定模块,用于根据所述埋点的类型确定事件上报时机;
其中,所述提取模块具体用于:在当前状态满足所述事件上报时机时,提取所述事件的总统计信息。
11.根据权利要求9或10所述的装置,其特征在于,所述待上报事件统计信息生成模块具体用于:
从所述事件的总统计信息中,获取所述目标参数对应的统计信息;
将所述埋点下除所述目标参数之外的其他参数所对应的统计信息设置为目标阈值;
根据所述目标参数对应的统计信息和所述其他参数所对应的统计信息,生成对应的待上报事件统计信息。
12.根据权利要求11所述的装置,其特征在于,所述目标阈值为数字0或字符“空”。
13.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1或2所述的埋点代码注入方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1或2所述的埋点代码注入方法。
15.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求3-6中任一项所述的事件上报方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求3-6中任一项所述的事件上报方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911060651.9A CN110908880B (zh) | 2019-11-01 | 2019-11-01 | 埋点代码注入方法、事件上报方法及其相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911060651.9A CN110908880B (zh) | 2019-11-01 | 2019-11-01 | 埋点代码注入方法、事件上报方法及其相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110908880A CN110908880A (zh) | 2020-03-24 |
CN110908880B true CN110908880B (zh) | 2023-10-13 |
Family
ID=69815907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911060651.9A Active CN110908880B (zh) | 2019-11-01 | 2019-11-01 | 埋点代码注入方法、事件上报方法及其相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908880B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639007B (zh) * | 2020-05-29 | 2024-05-03 | 北京金山云网络技术有限公司 | 一种数据处理方法、装置、终端及计算机可读存储介质 |
CN112115041B (zh) * | 2020-08-06 | 2023-08-22 | 北京水滴科技集团有限公司 | 应用程序的动态埋点方法、装置、存储介质及计算机设备 |
CN112306803A (zh) * | 2020-10-29 | 2021-02-02 | 金蝶云科技有限公司 | 一种性能监控方法及相关设备 |
CN113641345A (zh) * | 2021-08-13 | 2021-11-12 | 网易(杭州)网络有限公司 | 基于映射配置的埋点方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014138354A1 (en) * | 2013-03-08 | 2014-09-12 | Insyde Software Corp. | A method and device to perform event thresholding in a firmware environment utilizing a scalable sliding time window |
CN106844217A (zh) * | 2017-01-26 | 2017-06-13 | 网易(杭州)网络有限公司 | 对应用的控件进行埋点的方法及装置、可读存储介质 |
CN108551411A (zh) * | 2018-04-28 | 2018-09-18 | 努比亚技术有限公司 | 数据采集方法、移动终端及计算机可读存储介质 |
CN109960633A (zh) * | 2019-03-28 | 2019-07-02 | 深圳市跃动运营科技有限公司 | 一种数据可视化埋点方法、存储介质及智能终端 |
CN110263070A (zh) * | 2019-05-30 | 2019-09-20 | 北京创鑫旅程网络技术有限公司 | 事件上报方法及装置 |
-
2019
- 2019-11-01 CN CN201911060651.9A patent/CN110908880B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014138354A1 (en) * | 2013-03-08 | 2014-09-12 | Insyde Software Corp. | A method and device to perform event thresholding in a firmware environment utilizing a scalable sliding time window |
CN106844217A (zh) * | 2017-01-26 | 2017-06-13 | 网易(杭州)网络有限公司 | 对应用的控件进行埋点的方法及装置、可读存储介质 |
CN108551411A (zh) * | 2018-04-28 | 2018-09-18 | 努比亚技术有限公司 | 数据采集方法、移动终端及计算机可读存储介质 |
CN109960633A (zh) * | 2019-03-28 | 2019-07-02 | 深圳市跃动运营科技有限公司 | 一种数据可视化埋点方法、存储介质及智能终端 |
CN110263070A (zh) * | 2019-05-30 | 2019-09-20 | 北京创鑫旅程网络技术有限公司 | 事件上报方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110908880A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908880B (zh) | 埋点代码注入方法、事件上报方法及其相关设备 | |
CN103984626B (zh) | 一种生成测试用例脚本的方法及装置 | |
CN108804299A (zh) | 应用程序异常处理方法及装置 | |
CN112363943A (zh) | 一种埋点设置方法、装置、计算机设备和存储介质 | |
CN112199296B (zh) | 页面测试方法、装置、计算机设备和存储介质 | |
US9021312B1 (en) | Method and apparatus for visual pattern analysis to solve product crashes | |
CN108111364B (zh) | 一种业务***的测试方法及装置 | |
CN114490375A (zh) | 应用程序的性能测试方法、装置、设备及存储介质 | |
CN110618904A (zh) | 卡顿检测方法和装置 | |
CN108966340A (zh) | 一种设备定位方法及装置 | |
CN108520063B (zh) | 事件日志的处理方法、装置及终端设备 | |
CN107250979B (zh) | 应用事件跟踪 | |
CN112988586A (zh) | 一种控件测试方法、装置、电子设备及存储介质 | |
CN111581518A (zh) | 信息推送方法和装置 | |
CN113254315B (zh) | 埋点信息的上报方法、埋点方法、装置、介质、电子设备 | |
CN111459547B (zh) | 一种函数调用链路的展示方法和装置 | |
CN114911479A (zh) | 基于配置化的界面生成方法、装置、设备及存储介质 | |
CN108415746A (zh) | 应用界面的显示方法、装置、存储介质及电子设备 | |
CN110221952B (zh) | 业务数据的处理方法及装置、业务数据处理*** | |
US20160041900A1 (en) | Testing integrated business systems | |
CN106802856A (zh) | 游戏应用程序的性能测试方法、服务器和游戏应用客户端 | |
CN115437903A (zh) | 接口测试方法、装置、设备、存储介质及程序 | |
CN110569184A (zh) | 一种测试方法及终端设备 | |
CN110837433A (zh) | 性能优化方法、装置及电子设备 | |
US11966320B1 (en) | Techniques for capturing software application session replay data from devices |
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 |